2003-03-31 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / dbus / dbus-bus.c
index c3978db..d65a3f0 100644 (file)
@@ -117,7 +117,11 @@ bus_data_free (void *data)
   BusData *bd = data;
 
   if (bd->connection)
-    *bd->connection = NULL;
+    {
+      _DBUS_LOCK (bus);
+      *bd->connection = NULL;
+      _DBUS_UNLOCK (bus);
+    }
   
   dbus_free (bd->base_service);
   dbus_free (bd);
@@ -221,10 +225,18 @@ dbus_bus_get (DBusBusType  type,
 
   value = _dbus_getenv (name);
 
-  if (!value)
+  if (type == DBUS_BUS_SYSTEM &&
+      (value == NULL || *value == '\0'))
+    {
+      /* Use default system bus address if none set */
+      value = "unix:path=" DBUS_SYSTEM_BUS_PATH;
+    }
+  
+  if (value == NULL || *value == '\0')
     {
       dbus_set_error (error, DBUS_ERROR_FAILED,
-                     "Could not get bus daemon address.");
+                     "Environment variable %s not set, address of message bus unknown",
+                      name);
       _DBUS_UNLOCK (bus);
       
       return NULL;