[libsoup] SoupConnection: don't listen to SoupSocket::disconnected
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup] SoupConnection: don't listen to SoupSocket::disconnected
- Date: Fri, 2 Nov 2012 19:31:13 +0000 (UTC)
commit 3294110d20c189805940996623d6a35fe8cfa9ad
Author: Dan Winship <danw gnome org>
Date: Thu Sep 27 21:39:43 2012 -0400
SoupConnection: don't listen to SoupSocket::disconnected
No one except SoupConnection ever calls soup_socket_disconnect() any
more, so we don't need to listen to SoupSocket::disconnected to know
when it happens.
libsoup/soup-connection.c | 19 +------------------
1 files changed, 1 insertions(+), 18 deletions(-)
---
diff --git a/libsoup/soup-connection.c b/libsoup/soup-connection.c
index 1889a94..2caded1 100644
--- a/libsoup/soup-connection.c
+++ b/libsoup/soup-connection.c
@@ -422,12 +422,6 @@ proxy_socket_event (SoupSocket *socket,
soup_connection_event (conn, event, connection);
}
-static void
-socket_disconnected (SoupSocket *sock, gpointer conn)
-{
- soup_connection_disconnect (conn);
-}
-
typedef struct {
SoupConnection *conn;
SoupConnectionCallback callback;
@@ -445,9 +439,6 @@ socket_connect_finished (SoupSocket *socket, guint status, gpointer user_data)
g_signal_handler_disconnect (socket, data->event_id);
if (SOUP_STATUS_IS_SUCCESSFUL (status)) {
- g_signal_connect (priv->socket, "disconnected",
- G_CALLBACK (socket_disconnected), data->conn);
-
if (priv->ssl && !priv->proxy_uri) {
soup_connection_event (data->conn,
G_SOCKET_CLIENT_TLS_HANDSHAKED,
@@ -668,9 +659,6 @@ soup_connection_connect_sync (SoupConnection *conn, GCancellable *cancellable)
}
if (SOUP_STATUS_IS_SUCCESSFUL (status)) {
- g_signal_connect (priv->socket, "disconnected",
- G_CALLBACK (socket_disconnected), conn);
-
if (!priv->ssl || !priv->proxy_uri) {
soup_connection_event (conn,
G_SOCKET_CLIENT_COMPLETE,
@@ -820,14 +808,9 @@ soup_connection_disconnect (SoupConnection *conn)
soup_connection_set_state (conn, SOUP_CONNECTION_DISCONNECTED);
if (priv->socket) {
- /* Set the socket to NULL at the beginning to avoid reentrancy
- * issues. soup_socket_disconnect() could trigger a reentrant
- * call unref'ing and disconnecting the socket twice.
- */
SoupSocket *socket = priv->socket;
+
priv->socket = NULL;
- g_signal_handlers_disconnect_by_func (socket,
- socket_disconnected, conn);
soup_socket_disconnect (socket);
g_object_unref (socket);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]