+ } else if (dbus_message_is_signal (message, AVAHI_DBUS_NAME, "StateChanged")) {
+ printf ("server statehcange\n");
+ } else if (dbus_message_is_signal (message, AVAHI_DBUS_INTERFACE_ENTRY_GROUP, "StateChanged")) {
+ const char *path;
+ AvahiEntryGroup *n, *group = NULL;
+ path = dbus_message_get_path (message);
+
+ for (n = client->groups; n != NULL; n = n->groups_next)
+ {
+ if (strcmp (n->path, path) == 0)
+ {
+ group = n;
+ break;
+ }
+ }
+
+ if (group == NULL)
+ {
+ fprintf (stderr, "Received state change for unknown EntryGroup object (%s)\n", path);
+ } else {
+ int state;
+ DBusError error;
+ dbus_error_init (&error);
+ dbus_message_get_args (message, &error, DBUS_TYPE_INT32, &state, DBUS_TYPE_INVALID);
+ if (dbus_error_is_set (&error))
+ {
+ fprintf (stderr, "internal error parsing entrygroup statechange for %s\n", group->path);
+ goto out;
+ }
+ printf ("statechange (%s) to %d\n", group->path, state);
+ avahi_entry_group_state_change (group, state);
+ }
+ } else if (dbus_message_is_signal (message, AVAHI_DBUS_INTERFACE_DOMAIN_BROWSER, "ItemNew")) {
+ return avahi_domain_browser_event (client, AVAHI_BROWSER_NEW, message);
+ } else if (dbus_message_is_signal (message, AVAHI_DBUS_INTERFACE_DOMAIN_BROWSER, "ItemRemove")) {
+ return avahi_domain_browser_event (client, AVAHI_BROWSER_REMOVE, message);
+ } else if (dbus_message_is_signal (message, AVAHI_DBUS_INTERFACE_SERVICE_TYPE_BROWSER, "ItemNew")) {
+ return avahi_service_type_browser_event (client, AVAHI_BROWSER_NEW, message);
+ } else if (dbus_message_is_signal (message, AVAHI_DBUS_INTERFACE_SERVICE_TYPE_BROWSER, "ItemRemove")) {
+ return avahi_service_type_browser_event (client, AVAHI_BROWSER_REMOVE, message);