X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=sidebyside;f=avahi-client%2Fclient.c;h=49c82d53d086cc8061eee0069f2be1868f891473;hb=c3d36ee186b5fb24480590080215f7e14ee0f6a6;hp=2ef1bf6cebb5dc5e1c28bc01dc806729ce341695;hpb=3ec12a8ec9c7a517cda0e9be8c36766ffc7a1029;p=catta diff --git a/avahi-client/client.c b/avahi-client/client.c index 2ef1bf6..49c82d5 100644 --- a/avahi-client/client.c +++ b/avahi-client/client.c @@ -197,27 +197,23 @@ avahi_client_new (AvahiClientCallback callback, void *user_data) AvahiClient *tmp = NULL; DBusError error; - tmp = g_new (AvahiClient, 1); + dbus_error_init (&error); - if (tmp == NULL) + if (!(tmp = malloc(sizeof(AvahiClient)))) goto fail; AVAHI_LLIST_HEAD_INIT(AvahiEntryGroup, tmp->groups); AVAHI_LLIST_HEAD_INIT(AvahiDomainBrowser, tmp->domain_browsers); AVAHI_LLIST_HEAD_INIT(AvahiServieTypeBrowser, tmp->service_type_browsers); - - dbus_error_init (&error); - + tmp->bus = dbus_bus_get (DBUS_BUS_SYSTEM, &error); - dbus_connection_setup_with_g_main (tmp->bus, NULL); - if (dbus_error_is_set (&error)) { fprintf(stderr, "Error getting system d-bus: %s\n", error.message); - dbus_error_free (&error); goto fail; } + dbus_connection_setup_with_g_main (tmp->bus, NULL); dbus_connection_set_exit_on_disconnect (tmp->bus, FALSE); if (!dbus_connection_add_filter (tmp->bus, filter_func, tmp, NULL)) @@ -236,7 +232,6 @@ avahi_client_new (AvahiClientCallback callback, void *user_data) if (dbus_error_is_set (&error)) { fprintf (stderr, "Error adding filter match: %s\n", error.message); - dbus_error_free (&error); goto fail; } @@ -251,7 +246,6 @@ avahi_client_new (AvahiClientCallback callback, void *user_data) if (dbus_error_is_set (&error)) { fprintf (stderr, "Error adding filter match: %s\n", error.message); - dbus_error_free (&error); goto fail; } @@ -265,6 +259,10 @@ avahi_client_new (AvahiClientCallback callback, void *user_data) fail: free (tmp); + + if (dbus_error_is_set(&error)) + dbus_error_free(&error); + return NULL; }