2003-02-16 Anders Carlsson <andersca@codefactory.se>
authorAnders Carlsson <andersca@codefactory.se>
Sun, 16 Feb 2003 12:57:26 +0000 (12:57 +0000)
committerAnders Carlsson <andersca@codefactory.se>
Sun, 16 Feb 2003 12:57:26 +0000 (12:57 +0000)
* dbus/dbus-auth.c: (client_try_next_mechanism):
Plug a leak.

* dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
Return TRUE if there's no thread implementation around.

* glib/dbus-gmain.c: (free_source),
(dbus_connection_hookup_with_g_main):
Make sure to remove the GSource when the connection is finalized.

ChangeLog
dbus/dbus-auth.c
dbus/dbus-threads.c
glib/dbus-gmain.c

index 662ce24..ec0bb11 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
 
+       * dbus/dbus-auth.c: (client_try_next_mechanism):
+       Plug a leak.
+       
+       * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
+       Return TRUE if there's no thread implementation around.
+       
+       * glib/dbus-gmain.c: (free_source),
+       (dbus_connection_hookup_with_g_main):
+       Make sure to remove the GSource when the connection is finalized.
+       
+2003-02-16  Anders Carlsson  <andersca@codefactory.se>
+
        * bus/dispatch.c: (bus_dispatch_message_handler):
        * dbus/dbus-errors.h:
        Return an error if someone tries to send a message to a service
index 8125a8e..dca83ba 100644 (file)
@@ -939,6 +939,8 @@ client_try_next_mechanism (DBusAuth *auth)
   _dbus_verbose ("Trying mechanism %s\n",
                  auth->mech->mechanism);
 
+  _dbus_string_free (&auth_command);
+  
   return TRUE;
 }
 
index 4df2e34..0b39224 100644 (file)
@@ -166,7 +166,7 @@ dbus_condvar_wait_timeout (DBusCondVar               *cond,
   if (cond && mutex && thread_functions.condvar_wait)
     return (* thread_functions.condvar_wait_timeout) (cond, mutex, timeout_milliseconds);
   else
-    return FALSE;
+    return TRUE;
 }
 
 /**
index 857ee37..f8355a3 100644 (file)
@@ -36,6 +36,8 @@ struct _DBusGSource
   GHashTable *watches;
 };
 
+static int connection_slot = -1;
+
 static gboolean dbus_connection_prepare  (GSource     *source,
                                          gint        *timeout);
 static gboolean dbus_connection_check    (GSource     *source);
@@ -206,6 +208,12 @@ remove_timeout (DBusTimeout *timeout,
   g_source_remove (timeout_tag);
 }
 
+static void
+free_source (GSource *source)
+{
+  g_source_destroy (source);
+}
+
 void
 dbus_connection_hookup_with_g_main (DBusConnection *connection)
 {
@@ -228,4 +236,11 @@ dbus_connection_hookup_with_g_main (DBusConnection *connection)
                                         NULL, NULL);
 
   g_source_attach (source, NULL);
+
+  if (connection_slot == -1 )
+    connection_slot = dbus_connection_allocate_data_slot ();
+
+  dbus_connection_set_data (connection, connection_slot, source,
+                           (DBusFreeFunction)free_source);
+  
 }