Free priv->read_buf. From Tambet. (soup_socket_connect): Make sure that
authorDan Winship <danw@src.gnome.org>
Fri, 5 Aug 2005 14:59:35 +0000 (14:59 +0000)
committerDan Winship <danw@src.gnome.org>
Fri, 5 Aug 2005 14:59:35 +0000 (14:59 +0000)
* libsoup/soup-socket.c (finalize): Free priv->read_buf. From
Tambet.
(soup_socket_connect): Make sure that get_iochannel() gets called
if the connect succeeds right away, or the socket will fail on
the first read or write. [#312540]

ChangeLog
libsoup/soup-socket.c

index 22c087d..d976a94 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-08-05  Dan Winship  <danw@novell.com>
+
+       * libsoup/soup-socket.c (finalize): Free priv->read_buf. From
+       Tambet.
+       (soup_socket_connect): Make sure that get_iochannel() gets called
+       if the connect succeeds right away, or the socket will fail on
+       the first read or write. [#312540]
+
 2005-08-01  Dan Winship  <danw@novell.com>
 
        * configure.in: drop version back down to 2.2.5 and
index 3d5bc34..77a83f1 100644 (file)
@@ -139,6 +139,9 @@ finalize (GObject *object)
        if (priv->watch)
                g_source_remove (priv->watch);
 
+       if (priv->read_buf)
+               g_byte_array_free (priv->read_buf, TRUE);
+
        g_mutex_free (priv->addrlock);
        g_mutex_free (priv->iolock);
 
@@ -552,7 +555,8 @@ soup_socket_connect (SoupSocket *sock, SoupAddress *remote_addr)
                        SOUP_CLOSE_SOCKET (priv->sockfd);
                        priv->sockfd = -1;
                }
-       }
+       } else
+               get_iochannel (priv);
 
  done:
        if (priv->non_blocking) {
@@ -560,10 +564,8 @@ soup_socket_connect (SoupSocket *sock, SoupAddress *remote_addr)
                return SOUP_STATUS_CONTINUE;
        } else if (SOUP_IS_INVALID_SOCKET (priv->sockfd))
                return SOUP_STATUS_CANT_CONNECT;
-       else {
-               get_iochannel (priv);
+       else
                return SOUP_STATUS_OK;
-       }
 }
 
 static gboolean