commit 6035f4d038710b56d213d9775bfa0fb6c273c0af Author: Tim Waugh Date: Tue Jan 25 17:38:26 2011 +0000 Fixes for AvahiClient callback (bug #672143). diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c index ff88c9e..dea2323 100644 --- a/scheduler/dirsvc.c +++ b/scheduler/dirsvc.c @@ -1440,8 +1440,7 @@ ldap_disconnect(LDAP *ld) /* I - LDAP handle */ void cupsdStartAvahiClient(void) { - if ((!AvahiCupsClient) && - (!AvahiCupsClientConnecting || !(*AvahiCupsClientConnecting))) + if (!AvahiCupsClient && !AvahiCupsClientConnecting) { if (!AvahiCupsPollHandle) AvahiCupsPollHandle = avahi_cups_poll_new (); @@ -3319,7 +3318,7 @@ avahi_client_cb (AvahiClient *client, * Avahi client started successfully. */ AvahiCupsClient = client; - AvahiCupsClientConnecting = NULL; + AvahiCupsClientConnecting = 0; cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client started"); cupsdUpdateDNSSDName (); @@ -3338,7 +3337,7 @@ avahi_client_cb (AvahiClient *client, /* * No Avahi daemon, client is waiting. */ - AvahiCupsClientConnecting = &client; + AvahiCupsClientConnecting = 1; cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client connecting"); break; @@ -3346,15 +3345,17 @@ avahi_client_cb (AvahiClient *client, /* * Avahi client failed, close it to allow a clean restart. */ - cupsdLogMessage (CUPSD_LOG_ERROR, "Avahi client failed, closing client to allow a clean restart"); + cupsdLogMessage (CUPSD_LOG_ERROR, + "Avahi client failed, " + "closing client to allow a clean restart"); for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers); printer; printer = (cupsd_printer_t *)cupsArrayNext(Printers)) dnssdDeregisterPrinter (printer); - avahi_client_free(AvahiCupsClient); - AvahiCupsClientConnecting = NULL; + avahi_client_free(client); + AvahiCupsClientConnecting = 0; AvahiCupsClient = NULL; break; diff --git a/scheduler/dirsvc.h b/scheduler/dirsvc.h index 68e14a0..0cc5e38 100644 --- a/scheduler/dirsvc.h +++ b/scheduler/dirsvc.h @@ -163,7 +163,7 @@ VAR AvahiCupsPoll *AvahiCupsPollHandle VALUE(NULL); /* AvahiCupsPoll object */ VAR AvahiClient *AvahiCupsClient VALUE(NULL); /* AvahiClient object */ -VAR AvahiClient **AvahiCupsClientConnecting VALUE(NULL); +VAR int AvahiCupsClientConnecting VALUE(0); /* AvahiClient object (waiting) */ VAR AvahiEntryGroup *AvahiWebIFGroup VALUE(NULL); /* Web interface entry group */