summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2005-10-24 22:41:39 +0000
committerLennart Poettering <lennart@poettering.net>2005-10-24 22:41:39 +0000
commitf17d2832301b0f2fcd50fdcc6fec77666178158f (patch)
tree1f221330303258df9897b794df536672c9ef3fd0 /examples
parent71a48fcf258fbff06507d111b9c790a6d94a95f7 (diff)
* add new entry group state AVAHI_ENTRY_GROUP_FAILURE
* pass error code alongside entry gorup state changes over DBUS * add new server state AVAHI_SERVER_FAILURE * pass error code alongside server state changes over DBUS * fix client-publish-service * rename error code AVAHI_ERR_LOCAL_COLLISION to AVAHI_ERR_COLLISION * update TODO git-svn-id: file:///home/lennart/svn/public/avahi/trunk@854 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'examples')
-rw-r--r--examples/client-publish-service.c85
-rw-r--r--examples/core-publish-service.c116
2 files changed, 129 insertions, 72 deletions
diff --git a/examples/client-publish-service.c b/examples/client-publish-service.c
index bb895ce..d99c46b 100644
--- a/examples/client-publish-service.c
+++ b/examples/client-publish-service.c
@@ -47,22 +47,36 @@ static void entry_group_callback(AvahiEntryGroup *g, AvahiEntryGroupState state,
/* Called whenever the entry group state changes */
- if (state == AVAHI_ENTRY_GROUP_ESTABLISHED)
- /* The entry group has been established successfully */
- fprintf(stderr, "Service '%s' successfully established.\n", name);
-
- else if (state == AVAHI_ENTRY_GROUP_COLLISION) {
- char *n;
+ switch (state) {
+ case AVAHI_ENTRY_GROUP_ESTABLISHED :
+ /* The entry group has been established successfully */
+ fprintf(stderr, "Service '%s' successfully established.\n", name);
+ break;
+
+ case AVAHI_ENTRY_GROUP_COLLISION : {
+ char *n;
+
+ /* A service name collision happened. Let's pick a new name */
+ n = avahi_alternative_service_name(name);
+ avahi_free(name);
+ name = n;
+
+ fprintf(stderr, "Service name collision, renaming service to '%s'\n", name);
+
+ /* And recreate the services */
+ create_services(avahi_entry_group_get_client(g));
+ break;
+ }
- /* A service name collision happened. Let's pick a new name */
- n = avahi_alternative_service_name(name);
- avahi_free(name);
- name = n;
+ case AVAHI_ENTRY_GROUP_FAILURE :
- fprintf(stderr, "Service name collision, renaming service to '%s'\n", name);
+ /* Some kind of failure happened while we were registering our services */
+ avahi_simple_poll_quit(simple_poll);
+ break;
- /* And recreate the services */
- create_services(avahi_entry_group_get_client(g));
+ case AVAHI_ENTRY_GROUP_UNCOMMITED:
+ case AVAHI_ENTRY_GROUP_REGISTERING:
+ ;
}
}
@@ -111,7 +125,6 @@ static void create_services(AvahiClient *c) {
fail:
avahi_simple_poll_quit(simple_poll);
- return;
}
static void client_callback(AvahiClient *c, AvahiClientState state, void * userdata) {
@@ -119,25 +132,35 @@ static void client_callback(AvahiClient *c, AvahiClientState state, void * userd
/* Called whenever the client or server state changes */
- if (state == AVAHI_CLIENT_S_RUNNING) {
+ switch (state) {
+ case AVAHI_CLIENT_S_RUNNING:
- /* The server has startup successfully and registered its host
- * name on the network, so it's time to create our services */
- if (group)
- create_services(c);
-
- } else if (state == 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);
-
- } else if (state == AVAHI_CLIENT_DISCONNECTED) {
+ /* The server has startup successfully and registered its host
+ * name on the network, so it's time to create our services */
+ if (!group)
+ create_services(c);
+ break;
- fprintf(stderr, "Server connection terminated.\n");
- avahi_simple_poll_quit(simple_poll);
+ 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_DISCONNECTED:
+
+ fprintf(stderr, "Server connection terminated.\n");
+ avahi_simple_poll_quit(simple_poll);
+
+ break;
+
+ case AVAHI_CLIENT_S_FAILURE:
+ case AVAHI_CLIENT_S_INVALID:
+ case AVAHI_CLIENT_S_REGISTERING:
+ ;
}
}
diff --git a/examples/core-publish-service.c b/examples/core-publish-service.c
index 0d8c04c..dc5170b 100644
--- a/examples/core-publish-service.c
+++ b/examples/core-publish-service.c
@@ -47,22 +47,38 @@ static void entry_group_callback(AvahiServer *s, AvahiSEntryGroup *g, AvahiEntry
/* Called whenever the entry group state changes */
- if (state == AVAHI_ENTRY_GROUP_ESTABLISHED)
- /* The entry group has been established successfully */
- fprintf(stderr, "Service '%s' successfully established.\n", name);
-
- else if (state == AVAHI_ENTRY_GROUP_COLLISION) {
- char *n;
-
- /* A service name collision happened. Let's pick a new name */
- n = avahi_alternative_service_name(name);
- avahi_free(name);
- name = n;
+ switch (state) {
+
+ case AVAHI_ENTRY_GROUP_ESTABLISHED:
+
+ /* The entry group has been established successfully */
+ fprintf(stderr, "Service '%s' successfully established.\n", name);
+ break;
+
+ case AVAHI_ENTRY_GROUP_COLLISION: {
+ char *n;
+
+ /* A service name collision happened. Let's pick a new name */
+ n = avahi_alternative_service_name(name);
+ avahi_free(name);
+ name = n;
+
+ fprintf(stderr, "Service name collision, renaming service to '%s'\n", name);
+
+ /* And recreate the services */
+ create_services(s);
+ break;
+ }
+
+ case AVAHI_ENTRY_GROUP_FAILURE :
- fprintf(stderr, "Service name collision, renaming service to '%s'\n", name);
+ /* Some kind of failure happened while we were registering our services */
+ avahi_simple_poll_quit(simple_poll);
+ break;
- /* And recreate the services */
- create_services(s);
+ case AVAHI_ENTRY_GROUP_UNCOMMITED:
+ case AVAHI_ENTRY_GROUP_REGISTERING:
+ ;
}
}
@@ -111,7 +127,6 @@ static void create_services(AvahiServer *s) {
fail:
avahi_simple_poll_quit(simple_poll);
- return;
}
static void server_callback(AvahiServer *s, AvahiServerState state, void * userdata) {
@@ -119,35 +134,54 @@ static void server_callback(AvahiServer *s, AvahiServerState state, void * userd
/* Called whenever the server state changes */
- if (state == AVAHI_SERVER_RUNNING) {
- /* The serve has startup successfully and registered its host
- * name on the network, so it's time to create our services */
-
- if (group)
- create_services(s);
-
- } else if (state == AVAHI_SERVER_COLLISION) {
- char *n;
- int r;
-
- /* A host name collision happened. Let's pick a new name for the server */
- n = avahi_alternative_host_name(avahi_server_get_host_name(s));
- fprintf(stderr, "Host name collision, retrying with '%s'\n", n);
- r = avahi_server_set_host_name(s, n);
- avahi_free(n);
-
- if (r < 0) {
- fprintf(stderr, "Failed to set new host name: %s\n", avahi_strerror(r));
+ switch (state) {
+
+ case AVAHI_SERVER_RUNNING:
+ /* The serve has startup successfully and registered its host
+ * name on the network, so it's time to create our services */
+
+ if (group)
+ create_services(s);
+
+ break;
+
+ case AVAHI_SERVER_COLLISION: {
+ char *n;
+ int r;
+
+ /* A host name collision happened. Let's pick a new name for the server */
+ n = avahi_alternative_host_name(avahi_server_get_host_name(s));
+ fprintf(stderr, "Host name collision, retrying with '%s'\n", n);
+ r = avahi_server_set_host_name(s, n);
+ avahi_free(n);
+
+ if (r < 0) {
+ fprintf(stderr, "Failed to set new host name: %s\n", avahi_strerror(r));
+
+ avahi_simple_poll_quit(simple_poll);
+ return;
+ }
+
+ /* 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:
+
+ /* Terminate on failure */
+
+ fprintf(stderr, "Server failure: %s\n", avahi_strerror(avahi_server_errno(s)));
avahi_simple_poll_quit(simple_poll);
- return;
- }
+ break;
- /* 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);
+ case AVAHI_SERVER_INVALID:
+ case AVAHI_SERVER_REGISTERING:
+ ;
}
}