this state would follow only on a AVAHI_SERVER_COLLISION state. However, this
is not true, hence we need to handle this state transition, too. Mostly the
same as we already handle AVAHI_SERVER_COLLISION.
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1258
941a03a8-eaeb-0310-b9a0-
b1bbd8fe43fe
}
case AVAHI_CLIENT_S_COLLISION:
+ case AVAHI_CLIENT_S_REGISTERING:
/* Remove our entry */
avahi_entry_group_reset(data->object);
break;
case AVAHI_CLIENT_CONNECTING:
- case AVAHI_CLIENT_S_REGISTERING:
/* Ignore */
break;
}
}
case AVAHI_CLIENT_S_COLLISION:
+ case AVAHI_CLIENT_S_REGISTERING:
/* Remove our entry */
avahi_entry_group_reset(sdref->entry_group);
break;
case AVAHI_CLIENT_CONNECTING:
- case AVAHI_CLIENT_S_REGISTERING:
/* Ignore */
break;
}
if (config->verbose)
fprintf(stderr, "Host name conflict\n");
+
+ /* Fall through */
+ case AVAHI_CLIENT_S_REGISTERING:
+
if (entry_group) {
avahi_entry_group_free(entry_group);
entry_group = NULL;
if (config->verbose)
fprintf(stderr, "Waiting for daemon ...\n");
+
break;
- case AVAHI_CLIENT_S_REGISTERING:
;
}
}
case AVAHI_ENTRY_GROUP_FAILURE :
+ fprintf(stderr, "Entry group failure: %s\n", avahi_strerror(avahi_client_errno(avahi_entry_group_get_client(g))));
+
/* Some kind of failure happened while we were registering our services */
avahi_simple_poll_quit(simple_poll);
break;
create_services(c);
break;
+ case AVAHI_CLIENT_FAILURE:
+
+ fprintf(stderr, "Client failure: %s\n", avahi_strerror(avahi_client_errno(c)));
+ avahi_simple_poll_quit(simple_poll);
+
+ break;
+
case AVAHI_CLIENT_S_COLLISION:
/* Let's drop our registered services. When the server is back
* in AVAHI_SERVER_RUNNING state we will register them
* again with the new host name. */
- if (group)
- avahi_entry_group_reset(group);
- break;
- case AVAHI_CLIENT_FAILURE:
+ case AVAHI_CLIENT_S_REGISTERING:
+
+ /* The server records are now being established. This
+ * might be caused by a host name change. We need to wait
+ * for our own records to register until the host name is
+ * properly esatblished. */
- fprintf(stderr, "Client failure: %s\n", avahi_strerror(avahi_client_errno(c)));
- avahi_simple_poll_quit(simple_poll);
+ if (group)
+ avahi_entry_group_reset(group);
break;
case AVAHI_CLIENT_CONNECTING:
- case AVAHI_CLIENT_S_REGISTERING:
;
}
}
case AVAHI_ENTRY_GROUP_FAILURE :
+ fprintf(stderr, "Entry group failure: %s\n", avahi_strerror(avahi_server_errno(s)));
+
/* Some kind of failure happened while we were registering our services */
avahi_simple_poll_quit(simple_poll);
break;
return;
}
- /* Let's drop our registered services. When the server is back
+ }
+
+ /* Fall through */
+
+ case AVAHI_SERVER_REGISTERING:
+
+ /* Let's drop our registered services. When the server is back
* in AVAHI_SERVER_RUNNING state we will register them
* again with the new host name. */
if (group)
avahi_s_entry_group_reset(group);
break;
- }
case AVAHI_SERVER_FAILURE:
break;
case AVAHI_SERVER_INVALID:
- case AVAHI_SERVER_REGISTERING:
;
}
}