[libsoup] soup-socket: fix disconnecting with iostream based sockets
- From: Marc-Andre Lureau <malureau src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup] soup-socket: fix disconnecting with iostream based sockets
- Date: Fri, 20 Feb 2015 23:18:10 +0000 (UTC)
commit b7bef5dad4bd336ba7985b219f67a7d72cfe091d
Author: Marc-André Lureau <marcandre lureau gmail com>
Date: Tue Feb 17 18:55:30 2015 +0100
soup-socket: fix disconnecting with iostream based sockets
Rely on priv->conn to decide whether to call disconnect_internal() or
not.
https://bugzilla.gnome.org/show_bug.cgi?id=744186
libsoup/soup-socket.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/libsoup/soup-socket.c b/libsoup/soup-socket.c
index 818ac99..0881ef4 100644
--- a/libsoup/soup-socket.c
+++ b/libsoup/soup-socket.c
@@ -188,8 +188,10 @@ disconnect_internal (SoupSocket *sock, gboolean close)
SoupSocketPrivate *priv = SOUP_SOCKET_GET_PRIVATE (sock);
g_clear_object (&priv->gsock);
- if (priv->conn && close)
+ if (priv->conn && close) {
g_io_stream_close (priv->conn, NULL, NULL);
+ g_clear_object (&priv->conn);
+ }
if (priv->read_src) {
g_source_destroy (priv->read_src);
@@ -211,7 +213,7 @@ soup_socket_finalize (GObject *object)
g_warning ("Disposing socket %p during connect", object);
g_object_unref (priv->connect_cancel);
}
- if (priv->gsock && priv->close_on_dispose) {
+ if (priv->conn && priv->close_on_dispose) {
if (priv->clean_dispose)
g_warning ("Disposing socket %p while still connected", object);
disconnect_internal (SOUP_SOCKET (object), TRUE);
@@ -1536,7 +1538,7 @@ soup_socket_disconnect (SoupSocket *sock)
g_cancellable_cancel (priv->connect_cancel);
return;
} else if (g_mutex_trylock (&priv->iolock)) {
- if (priv->gsock)
+ if (priv->conn)
disconnect_internal (sock, TRUE);
else
already_disconnected = TRUE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]