From 35368fcb20a354bc30826a38069b7efcc837b618 Mon Sep 17 00:00:00 2001 From: Trent Lloyd Date: Mon, 19 Sep 2005 04:01:15 +0000 Subject: * Fix error handling in avahi-client so that it actually reports the error from avahi_client_new, before the ret_error was left untouched. * In the case of a NO_DAEMON error, free the dbus error so that the NO_DAEMON error takes precidence. git-svn-id: file:///home/lennart/svn/public/avahi/trunk@601 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-client/client.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/avahi-client/client.c b/avahi-client/client.c index 93d768a..cbc3004 100644 --- a/avahi-client/client.c +++ b/avahi-client/client.c @@ -233,6 +233,7 @@ static int get_server_state(AvahiClient *client, int *ret_error) { client_set_state(client, (AvahiServerState) state); + *ret_error = AVAHI_OK; return AVAHI_OK; fail: @@ -363,6 +364,10 @@ AvahiClient *avahi_client_new(const AvahiPoll *poll_api, AvahiClientCallback cal if (!(dbus_bus_name_has_owner(client->bus, AVAHI_DBUS_NAME, &error)) || dbus_error_is_set(&error)) { + /* We free the error so its not set, that way the fail target + * will return the NO_DAEMON error rather than a DBUS error */ + dbus_error_free (&error); + if (ret_error) *ret_error = AVAHI_ERR_NO_DAEMON; -- cgit