client->state = state;
switch (client->state) {
- case AVAHI_CLIENT_DISCONNECTED:
case AVAHI_CLIENT_FAILURE:
if (client->bus) {
dbus_connection_disconnect(client->bus);
/* dbus_message_get_path (message), */
/* dbus_message_get_member (message)); */
- if (client->state == AVAHI_CLIENT_DISCONNECTED)
+ if (client->state == AVAHI_CLIENT_FAILURE)
goto fail;
if (dbus_message_is_signal(message, DBUS_INTERFACE_LOCAL, "Disconnected")) {
/* The DBUS server died or kicked us */
- client_set_state(client, AVAHI_CLIENT_DISCONNECTED);
+ avahi_client_set_errno(client, AVAHI_ERR_DISCONNECTED);
+ client_set_state(client, AVAHI_CLIENT_FAILURE);
} if (dbus_message_is_signal(message, DBUS_INTERFACE_DBUS, "NameOwnerChanged")) {
char *name, *old, *new;
goto fail;
}
- if (strcmp(name, AVAHI_DBUS_NAME) == 0)
+ if (strcmp(name, AVAHI_DBUS_NAME) == 0) {
/* Regardless if the server lost or acquired its name or
* if the name was transfered: our services are no longer
* available, so we disconnect ourselves */
-
- client_set_state(client, AVAHI_CLIENT_DISCONNECTED);
+
+ avahi_client_set_errno(client, AVAHI_ERR_DISCONNECTED);
+ client_set_state(client, AVAHI_CLIENT_FAILURE);
+ }
} else if (dbus_message_is_signal (message, AVAHI_DBUS_INTERFACE_SERVER, "StateChanged")) {
int32_t state;
client->error = AVAHI_OK;
client->callback = callback;
client->userdata = userdata;
- client->state = AVAHI_CLIENT_DISCONNECTED;
+ client->state = AVAHI_CLIENT_FAILURE;
client->host_name = NULL;
client->host_name_fqdn = NULL;
const char* avahi_client_get_version_string (AvahiClient *client) {
assert(client);
- if (client->state == AVAHI_CLIENT_DISCONNECTED) {
+ if (client->state == AVAHI_CLIENT_FAILURE) {
avahi_client_set_errno(client, AVAHI_ERR_BAD_STATE);
return NULL;
}
const char* avahi_client_get_domain_name (AvahiClient *client) {
assert(client);
- if (client->state == AVAHI_CLIENT_DISCONNECTED) {
+ if (client->state == AVAHI_CLIENT_FAILURE) {
avahi_client_set_errno(client, AVAHI_ERR_BAD_STATE);
return NULL;
}
const char* avahi_client_get_host_name (AvahiClient *client) {
assert(client);
- if (client->state == AVAHI_CLIENT_DISCONNECTED) {
+ if (client->state == AVAHI_CLIENT_FAILURE) {
avahi_client_set_errno(client, AVAHI_ERR_BAD_STATE);
return NULL;
}
const char* avahi_client_get_host_name_fqdn (AvahiClient *client) {
assert(client);
- if (client->state == AVAHI_CLIENT_DISCONNECTED) {
+ if (client->state == AVAHI_CLIENT_FAILURE) {
avahi_client_set_errno(client, AVAHI_ERR_BAD_STATE);
return NULL;
}
DBusError error;
assert(client);
- if (client->state == AVAHI_CLIENT_DISCONNECTED) {
+ if (client->state == AVAHI_CLIENT_FAILURE) {
avahi_client_set_errno(client, AVAHI_ERR_BAD_STATE);
return AVAHI_SERVICE_COOKIE_INVALID;
}