Upstream CUPS issue when building with out dnssd/avahi https://www.cups.org/str.php?L4408+P-1+S-2+C0+I0+E0+Q Upstream-Status: Backport [STR #4402] Signed-off-by: Saul Wold --- a/scheduler/dirsvc.c 2014-03-05 13:11:32.000000000 -0800 +++ b/shceduler/dirsvc.c 2014-05-19 11:33:51.743124614 -0700 @@ -50,6 +50,9 @@ static void update_lpd(int onoff); static void update_smb(int onoff); +static void deregister_all_printers(int from_callback); +static void register_all_printers(int from_callback); + #if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) # ifdef __APPLE__ @@ -60,12 +63,10 @@ # ifdef HAVE_AVAHI static void dnssdClientCallback(AvahiClient *c, AvahiClientState state, void *userdata); # endif /* HAVE_AVAHI */ -static void dnssdDeregisterAllPrinters(int from_callback); static void dnssdDeregisterInstance(cupsd_srv_t *srv, int from_callback); static void dnssdDeregisterPrinter(cupsd_printer_t *p, int clear_name, int from_callback); static const char *dnssdErrorString(int error); static void dnssdFreeTxtRecord(cupsd_txt_t *txt); -static void dnssdRegisterAllPrinters(int from_callback); # ifdef HAVE_DNSSD static void dnssdRegisterCallback(DNSServiceRef sdRef, DNSServiceFlags flags, @@ -241,7 +242,7 @@ * Register the individual printers */ - dnssdRegisterAllPrinters(0); + register_all_printers(0); } @@ -259,7 +260,7 @@ * De-register the individual printers */ - dnssdDeregisterAllPrinters(0); + deregister_all_printers(0); /* * Shut down browsing sockets... @@ -579,7 +580,7 @@ * Register the individual printers */ - dnssdRegisterAllPrinters(1); + register_all_printers(1); break; case AVAHI_CLIENT_FAILURE: @@ -591,7 +592,7 @@ * Unregister everything and close the client... */ - dnssdDeregisterAllPrinters(1); + deregister_all_printers(1); dnssdDeregisterInstance(&WebIFSrv, 1); avahi_client_free(DNSSDClient); DNSSDClient = NULL; @@ -631,28 +632,6 @@ /* - * 'dnssdDeregisterAllPrinters()' - Deregister all printers. - */ - -static void -dnssdDeregisterAllPrinters( - int from_callback) /* I - Deregistering because of callback? */ -{ - cupsd_printer_t *p; /* Current printer */ - - - if (!DNSSDMaster) - return; - - for (p = (cupsd_printer_t *)cupsArrayFirst(Printers); - p; - p = (cupsd_printer_t *)cupsArrayNext(Printers)) - if (!(p->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_SCANNER))) - dnssdDeregisterPrinter(p, 1, from_callback); -} - - -/* * 'dnssdDeregisterInstance()' - Deregister a DNS-SD service instance. */ @@ -858,27 +837,6 @@ /* - * 'dnssdRegisterAllPrinters()' - Register all printers. - */ - -static void -dnssdRegisterAllPrinters(int from_callback) /* I - Called from callback? */ -{ - cupsd_printer_t *p; /* Current printer */ - - - if (!DNSSDMaster) - return; - - for (p = (cupsd_printer_t *)cupsArrayFirst(Printers); - p; - p = (cupsd_printer_t *)cupsArrayNext(Printers)) - if (!(p->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_SCANNER))) - dnssdRegisterPrinter(p, from_callback); -} - - -/* * 'dnssdRegisterCallback()' - DNSServiceRegister callback. */ @@ -1813,6 +1771,61 @@ } +/* + * 'deregister_all_printers()' - Deregister all printers. + */ + +static void +deregister_all_printers( + int from_callback) /* I - Deregistering because of callback? */ +{ + cupsd_printer_t *p; /* Current printer */ + + +#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) + if (!DNSSDMaster) + return; +#endif /* HAVE_DNSSD || HAVE_AVAHI */ + + for (p = (cupsd_printer_t *)cupsArrayFirst(Printers); + p; + p = (cupsd_printer_t *)cupsArrayNext(Printers)) + if (!(p->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_SCANNER))) +#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) + dnssdDeregisterPrinter(p, 1, from_callback); +#else + cupsdDeregisterPrinter(p, 1); +#endif /* HAVE_DNSSD || HAVE_AVAHI */ +} + + +/* + * 'register_all_printers()' - Register all printers. + */ + +static void +register_all_printers(int from_callback) /* I - Called from callback? */ +{ + cupsd_printer_t *p; /* Current printer */ + + +#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) + if (!DNSSDMaster) + return; +#endif /* HAVE_DNSSD || HAVE_AVAHI */ + + for (p = (cupsd_printer_t *)cupsArrayFirst(Printers); + p; + p = (cupsd_printer_t *)cupsArrayNext(Printers)) + if (!(p->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_SCANNER))) +#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) + dnssdRegisterPrinter(p, from_callback); +#else + cupsdRegisterPrinter(p); +#endif /* HAVE_DNSSD || HAVE_AVAHI */ +} + + /* * End of "$Id: dirsvc.c 11688 2014-03-05 21:11:32Z msweet $". */