Some fixes for the AvahiClient callback (bug #672143).

This commit is contained in:
Tim Waugh 2011-01-25 17:40:34 +00:00
parent 852d6ef4ae
commit 04a43d9470
2 changed files with 76 additions and 72 deletions

View File

@ -1,6 +1,6 @@
diff -up cups-1.4.5/backend/dnssd.c.avahi cups-1.4.5/backend/dnssd.c diff -up cups-1.4.6/backend/dnssd.c.avahi cups-1.4.6/backend/dnssd.c
--- cups-1.4.5/backend/dnssd.c.avahi 2010-12-31 10:31:00.333635888 +0000 --- cups-1.4.6/backend/dnssd.c.avahi 2011-01-25 13:26:16.607114570 +0000
+++ cups-1.4.5/backend/dnssd.c 2010-12-31 10:31:07.791916045 +0000 +++ cups-1.4.6/backend/dnssd.c 2011-01-25 13:26:16.633115058 +0000
@@ -15,14 +15,21 @@ @@ -15,14 +15,21 @@
* *
* Contents: * Contents:
@ -824,9 +824,9 @@ diff -up cups-1.4.5/backend/dnssd.c.avahi cups-1.4.5/backend/dnssd.c
/* /*
* 'sigterm_handler()' - Handle termination signals... * 'sigterm_handler()' - Handle termination signals...
*/ */
diff -up cups-1.4.5/config.h.in.avahi cups-1.4.5/config.h.in diff -up cups-1.4.6/config.h.in.avahi cups-1.4.6/config.h.in
--- cups-1.4.5/config.h.in.avahi 2010-08-13 05:11:46.000000000 +0100 --- cups-1.4.6/config.h.in.avahi 2010-08-13 05:11:46.000000000 +0100
+++ cups-1.4.5/config.h.in 2010-12-31 10:31:07.793916122 +0000 +++ cups-1.4.6/config.h.in 2011-01-25 13:26:16.635115097 +0000
@@ -344,6 +344,13 @@ @@ -344,6 +344,13 @@
@ -841,9 +841,9 @@ diff -up cups-1.4.5/config.h.in.avahi cups-1.4.5/config.h.in
* Do we have <sys/ioctl.h>? * Do we have <sys/ioctl.h>?
*/ */
diff -up cups-1.4.5/config-scripts/cups-dnssd.m4.avahi cups-1.4.5/config-scripts/cups-dnssd.m4 diff -up cups-1.4.6/config-scripts/cups-dnssd.m4.avahi cups-1.4.6/config-scripts/cups-dnssd.m4
--- cups-1.4.5/config-scripts/cups-dnssd.m4.avahi 2009-08-28 23:54:34.000000000 +0100 --- cups-1.4.6/config-scripts/cups-dnssd.m4.avahi 2009-08-28 23:54:34.000000000 +0100
+++ cups-1.4.5/config-scripts/cups-dnssd.m4 2010-12-31 10:31:07.792916086 +0000 +++ cups-1.4.6/config-scripts/cups-dnssd.m4 2011-01-25 13:26:16.636115116 +0000
@@ -27,6 +27,21 @@ AC_ARG_WITH(dnssd-includes, [ --with-dn @@ -27,6 +27,21 @@ AC_ARG_WITH(dnssd-includes, [ --with-dn
DNSSDLIBS="" DNSSDLIBS=""
DNSSD_BACKEND="" DNSSD_BACKEND=""
@ -866,9 +866,9 @@ diff -up cups-1.4.5/config-scripts/cups-dnssd.m4.avahi cups-1.4.5/config-scripts
if test x$enable_dnssd != xno; then if test x$enable_dnssd != xno; then
AC_CHECK_HEADER(dns_sd.h, [ AC_CHECK_HEADER(dns_sd.h, [
case "$uname" in case "$uname" in
diff -up cups-1.4.5/cups/http-support.c.avahi cups-1.4.5/cups/http-support.c diff -up cups-1.4.6/cups/http-support.c.avahi cups-1.4.6/cups/http-support.c
--- cups-1.4.5/cups/http-support.c.avahi 2010-10-01 23:40:38.000000000 +0100 --- cups-1.4.6/cups/http-support.c.avahi 2010-10-01 23:40:38.000000000 +0100
+++ cups-1.4.5/cups/http-support.c 2010-12-31 10:31:07.795916189 +0000 +++ cups-1.4.6/cups/http-support.c 2011-01-25 13:26:16.638115152 +0000
@@ -41,6 +41,10 @@ @@ -41,6 +41,10 @@
* http_copy_decode() - Copy and decode a URI. * http_copy_decode() - Copy and decode a URI.
* http_copy_encode() - Copy and encode a URI. * http_copy_encode() - Copy and encode a URI.
@ -1136,9 +1136,9 @@ diff -up cups-1.4.5/cups/http-support.c.avahi cups-1.4.5/cups/http-support.c
/* /*
* End of "$Id: http-support.c 9322 2010-10-01 22:40:38Z mike $". * End of "$Id: http-support.c 9322 2010-10-01 22:40:38Z mike $".
*/ */
diff -up cups-1.4.5/scheduler/avahi.c.avahi cups-1.4.5/scheduler/avahi.c diff -up cups-1.4.6/scheduler/avahi.c.avahi cups-1.4.6/scheduler/avahi.c
--- cups-1.4.5/scheduler/avahi.c.avahi 2010-12-31 10:31:07.801916421 +0000 --- cups-1.4.6/scheduler/avahi.c.avahi 2011-01-25 13:26:16.640115190 +0000
+++ cups-1.4.5/scheduler/avahi.c 2010-12-31 10:31:07.801916421 +0000 +++ cups-1.4.6/scheduler/avahi.c 2011-01-25 13:26:16.640115190 +0000
@@ -0,0 +1,443 @@ @@ -0,0 +1,443 @@
+/* +/*
+ * "$Id$" + * "$Id$"
@ -1583,9 +1583,9 @@ diff -up cups-1.4.5/scheduler/avahi.c.avahi cups-1.4.5/scheduler/avahi.c
+/* +/*
+ * End of "$Id$". + * End of "$Id$".
+ */ + */
diff -up cups-1.4.5/scheduler/avahi.h.avahi cups-1.4.5/scheduler/avahi.h diff -up cups-1.4.6/scheduler/avahi.h.avahi cups-1.4.6/scheduler/avahi.h
--- cups-1.4.5/scheduler/avahi.h.avahi 2010-12-31 10:31:07.802916458 +0000 --- cups-1.4.6/scheduler/avahi.h.avahi 2011-01-25 13:26:16.640115190 +0000
+++ cups-1.4.5/scheduler/avahi.h 2010-12-31 10:31:07.802916458 +0000 +++ cups-1.4.6/scheduler/avahi.h 2011-01-25 13:26:16.641115209 +0000
@@ -0,0 +1,49 @@ @@ -0,0 +1,49 @@
+/* +/*
+ * "$Id$" + * "$Id$"
@ -1636,9 +1636,9 @@ diff -up cups-1.4.5/scheduler/avahi.h.avahi cups-1.4.5/scheduler/avahi.h
+/* +/*
+ * End of "$Id$". + * End of "$Id$".
+ */ + */
diff -up cups-1.4.5/scheduler/cupsd.h.avahi cups-1.4.5/scheduler/cupsd.h diff -up cups-1.4.6/scheduler/cupsd.h.avahi cups-1.4.6/scheduler/cupsd.h
--- cups-1.4.5/scheduler/cupsd.h.avahi 2010-09-21 23:34:57.000000000 +0100 --- cups-1.4.6/scheduler/cupsd.h.avahi 2010-09-21 23:34:57.000000000 +0100
+++ cups-1.4.5/scheduler/cupsd.h 2010-12-31 10:31:07.803916494 +0000 +++ cups-1.4.6/scheduler/cupsd.h 2011-01-25 13:26:16.641115209 +0000
@@ -147,6 +147,15 @@ extern const char *cups_hstrerror(int); @@ -147,6 +147,15 @@ extern const char *cups_hstrerror(int);
typedef void (*cupsd_selfunc_t)(void *data); typedef void (*cupsd_selfunc_t)(void *data);
@ -1684,9 +1684,9 @@ diff -up cups-1.4.5/scheduler/cupsd.h.avahi cups-1.4.5/scheduler/cupsd.h
extern int cupsdRemoveFile(const char *filename); extern int cupsdRemoveFile(const char *filename);
diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c diff -up cups-1.4.6/scheduler/dirsvc.c.avahi cups-1.4.6/scheduler/dirsvc.c
--- cups-1.4.5/scheduler/dirsvc.c.avahi 2010-12-31 10:31:00.255632958 +0000 --- cups-1.4.6/scheduler/dirsvc.c.avahi 2011-01-25 13:26:16.534113189 +0000
+++ cups-1.4.5/scheduler/dirsvc.c 2010-12-31 10:31:07.808916680 +0000 +++ cups-1.4.6/scheduler/dirsvc.c 2011-01-25 17:39:15.062315327 +0000
@@ -27,6 +27,7 @@ @@ -27,6 +27,7 @@
* ldap_connect() - Start new LDAP connection * ldap_connect() - Start new LDAP connection
* ldap_reconnect() - Reconnect to LDAP Server * ldap_reconnect() - Reconnect to LDAP Server
@ -1785,7 +1785,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
} }
@@ -1411,6 +1433,24 @@ ldap_disconnect(LDAP *ld) /* I - LDAP h @@ -1411,6 +1433,23 @@ ldap_disconnect(LDAP *ld) /* I - LDAP h
} }
#endif /* HAVE_LDAP */ #endif /* HAVE_LDAP */
@ -1796,8 +1796,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
+ +
+void +void
+cupsdStartAvahiClient(void) { +cupsdStartAvahiClient(void) {
+ if ((!AvahiCupsClient) && + if (!AvahiCupsClient && !AvahiCupsClientConnecting)
+ (!AvahiCupsClientConnecting || !(*AvahiCupsClientConnecting)))
+ { + {
+ if (!AvahiCupsPollHandle) + if (!AvahiCupsPollHandle)
+ AvahiCupsPollHandle = avahi_cups_poll_new (); + AvahiCupsPollHandle = avahi_cups_poll_new ();
@ -1810,7 +1809,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
/* /*
* 'cupsdStartBrowsing()' - Start sending and receiving broadcast information. * 'cupsdStartBrowsing()' - Start sending and receiving broadcast information.
@@ -1535,13 +1575,16 @@ cupsdStartBrowsing(void) @@ -1535,13 +1574,16 @@ cupsdStartBrowsing(void)
else else
BrowseSocket = -1; BrowseSocket = -1;
@ -1828,7 +1827,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
/* /*
* First create a "master" connection for all registrations... * First create a "master" connection for all registrations...
*/ */
@@ -1566,6 +1609,7 @@ cupsdStartBrowsing(void) @@ -1566,6 +1608,7 @@ cupsdStartBrowsing(void)
fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC); fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
cupsdAddSelect(fd, (cupsd_selfunc_t)dnssdUpdate, NULL, NULL); cupsdAddSelect(fd, (cupsd_selfunc_t)dnssdUpdate, NULL, NULL);
@ -1836,7 +1835,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
/* /*
* Then get the port we use for registrations. If we are not listening * Then get the port we use for registrations. If we are not listening
@@ -1607,9 +1651,16 @@ cupsdStartBrowsing(void) @@ -1607,9 +1650,16 @@ cupsdStartBrowsing(void)
*/ */
cupsdUpdateDNSSDName(); cupsdUpdateDNSSDName();
@ -1854,7 +1853,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
#ifdef HAVE_LIBSLP #ifdef HAVE_LIBSLP
if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP) if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP)
@@ -1835,10 +1886,10 @@ cupsdStopBrowsing(void) @@ -1835,10 +1885,10 @@ cupsdStopBrowsing(void)
BrowseSocket = -1; BrowseSocket = -1;
} }
@ -1868,7 +1867,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
#ifdef HAVE_LIBSLP #ifdef HAVE_LIBSLP
if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP) && if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP) &&
@@ -1903,7 +1954,7 @@ cupsdStopPolling(void) @@ -1903,7 +1953,7 @@ cupsdStopPolling(void)
} }
@ -1877,7 +1876,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
/* /*
* 'cupsdUpdateDNSSDName()' - Update the computer name we use for browsing... * 'cupsdUpdateDNSSDName()' - Update the computer name we use for browsing...
*/ */
@@ -1911,7 +1962,12 @@ cupsdStopPolling(void) @@ -1911,7 +1961,12 @@ cupsdStopPolling(void)
void void
cupsdUpdateDNSSDName(void) cupsdUpdateDNSSDName(void)
{ {
@ -1890,7 +1889,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
char webif[1024]; /* Web interface share name */ char webif[1024]; /* Web interface share name */
#ifdef HAVE_COREFOUNDATION_H #ifdef HAVE_COREFOUNDATION_H
SCDynamicStoreRef sc; /* Context for dynamic store */ SCDynamicStoreRef sc; /* Context for dynamic store */
@@ -2043,6 +2099,7 @@ cupsdUpdateDNSSDName(void) @@ -2043,6 +2098,7 @@ cupsdUpdateDNSSDName(void)
else else
strlcpy(webif, "CUPS Web Interface", sizeof(webif)); strlcpy(webif, "CUPS Web Interface", sizeof(webif));
@ -1898,7 +1897,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
if (WebIFRef) if (WebIFRef)
DNSServiceRefDeallocate(WebIFRef); DNSServiceRefDeallocate(WebIFRef);
@@ -2055,6 +2112,42 @@ cupsdUpdateDNSSDName(void) @@ -2055,6 +2111,42 @@ cupsdUpdateDNSSDName(void)
NULL)) != kDNSServiceErr_NoError) NULL)) != kDNSServiceErr_NoError)
cupsdLogMessage(CUPSD_LOG_ERROR, cupsdLogMessage(CUPSD_LOG_ERROR,
"DNS-SD web interface registration failed: %d", error); "DNS-SD web interface registration failed: %d", error);
@ -1941,7 +1940,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
} }
} }
#endif /* HAVE_DNSSD */ #endif /* HAVE_DNSSD */
@@ -2300,162 +2393,7 @@ dequote(char *d, /* I - Destinat @@ -2300,162 +2392,7 @@ dequote(char *d, /* I - Destinat
} }
@ -2105,7 +2104,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
/* /*
* 'dnssdComparePrinters()' - Compare the registered names of two printers. * 'dnssdComparePrinters()' - Compare the registered names of two printers.
*/ */
@@ -2464,7 +2402,16 @@ static int /* O - Result of compariso @@ -2464,7 +2401,16 @@ static int /* O - Result of compariso
dnssdComparePrinters(cupsd_printer_t *a,/* I - First printer */ dnssdComparePrinters(cupsd_printer_t *a,/* I - First printer */
cupsd_printer_t *b)/* I - Second printer */ cupsd_printer_t *b)/* I - Second printer */
{ {
@ -2123,7 +2122,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
} }
@@ -2479,6 +2426,10 @@ dnssdDeregisterPrinter( @@ -2479,6 +2425,10 @@ dnssdDeregisterPrinter(
{ {
cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdDeregisterPrinter(%s)", p->name); cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdDeregisterPrinter(%s)", p->name);
@ -2134,7 +2133,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
/* /*
* Closing the socket deregisters the service * Closing the socket deregisters the service
*/ */
@@ -2514,6 +2465,23 @@ dnssdDeregisterPrinter( @@ -2514,6 +2464,23 @@ dnssdDeregisterPrinter(
free(p->printer_txt); free(p->printer_txt);
p->printer_txt = NULL; p->printer_txt = NULL;
} }
@ -2158,7 +2157,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
/* /*
* Remove the printer from the array of DNS-SD printers, then clear the * Remove the printer from the array of DNS-SD printers, then clear the
@@ -2526,133 +2494,46 @@ dnssdDeregisterPrinter( @@ -2526,133 +2493,46 @@ dnssdDeregisterPrinter(
/* /*
@ -2324,7 +2323,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
*/ */
if (!p->shared) if (!p->shared)
@@ -2694,6 +2575,7 @@ dnssdRegisterPrinter(cupsd_printer_t *p) @@ -2694,6 +2574,7 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
* Register IPP and (optionally) LPD... * Register IPP and (optionally) LPD...
*/ */
@ -2332,7 +2331,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
ipp_len = 0; /* anti-compiler-warning-code */ ipp_len = 0; /* anti-compiler-warning-code */
ipp_txt = dnssdBuildTxtRecord(&ipp_len, p, 0); ipp_txt = dnssdBuildTxtRecord(&ipp_len, p, 0);
@@ -2860,6 +2742,146 @@ dnssdRegisterPrinter(cupsd_printer_t *p) @@ -2860,6 +2741,146 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
if (printer_txt) if (printer_txt)
free(printer_txt); free(printer_txt);
} }
@ -2479,7 +2478,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
} }
@@ -2872,6 +2894,10 @@ dnssdStop(void) @@ -2872,6 +2893,10 @@ dnssdStop(void)
{ {
cupsd_printer_t *p; /* Current printer */ cupsd_printer_t *p; /* Current printer */
@ -2490,7 +2489,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
/* /*
* De-register the individual printers * De-register the individual printers
@@ -2882,6 +2908,7 @@ dnssdStop(void) @@ -2882,6 +2907,7 @@ dnssdStop(void)
p = (cupsd_printer_t *)cupsArrayNext(Printers)) p = (cupsd_printer_t *)cupsArrayNext(Printers))
dnssdDeregisterPrinter(p); dnssdDeregisterPrinter(p);
@ -2498,7 +2497,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
/* /*
* Shutdown the rest of the service refs... * Shutdown the rest of the service refs...
*/ */
@@ -2902,6 +2929,7 @@ dnssdStop(void) @@ -2902,6 +2928,7 @@ dnssdStop(void)
DNSServiceRefDeallocate(DNSSDRef); DNSServiceRefDeallocate(DNSSDRef);
DNSSDRef = NULL; DNSSDRef = NULL;
@ -2506,7 +2505,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
cupsArrayDelete(DNSSDPrinters); cupsArrayDelete(DNSSDPrinters);
DNSSDPrinters = NULL; DNSSDPrinters = NULL;
@@ -2911,6 +2939,272 @@ dnssdStop(void) @@ -2911,6 +2938,272 @@ dnssdStop(void)
/* /*
@ -2779,7 +2778,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
* 'dnssdUpdate()' - Handle DNS-SD queries. * 'dnssdUpdate()' - Handle DNS-SD queries.
*/ */
@@ -2931,6 +3225,144 @@ dnssdUpdate(void) @@ -2931,6 +3224,146 @@ dnssdUpdate(void)
#endif /* HAVE_DNSSD */ #endif /* HAVE_DNSSD */
@ -2874,7 +2873,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
+ * Avahi client started successfully. + * Avahi client started successfully.
+ */ + */
+ AvahiCupsClient = client; + AvahiCupsClient = client;
+ AvahiCupsClientConnecting = NULL; + AvahiCupsClientConnecting = 0;
+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client started"); + cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client started");
+ +
+ cupsdUpdateDNSSDName (); + cupsdUpdateDNSSDName ();
@ -2893,7 +2892,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
+ /* + /*
+ * No Avahi daemon, client is waiting. + * No Avahi daemon, client is waiting.
+ */ + */
+ AvahiCupsClientConnecting = &client; + AvahiCupsClientConnecting = 1;
+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client connecting"); + cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client connecting");
+ break; + break;
+ +
@ -2901,15 +2900,17 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
+ /* + /*
+ * Avahi client failed, close it to allow a clean restart. + * 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); + for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
+ printer; + printer;
+ printer = (cupsd_printer_t *)cupsArrayNext(Printers)) + printer = (cupsd_printer_t *)cupsArrayNext(Printers))
+ dnssdDeregisterPrinter (printer); + dnssdDeregisterPrinter (printer);
+ +
+ avahi_client_free(AvahiCupsClient); + avahi_client_free(client);
+ AvahiCupsClientConnecting = NULL; + AvahiCupsClientConnecting = 0;
+ AvahiCupsClient = NULL; + AvahiCupsClient = NULL;
+ +
+ break; + break;
@ -2924,9 +2925,9 @@ diff -up cups-1.4.5/scheduler/dirsvc.c.avahi cups-1.4.5/scheduler/dirsvc.c
/* /*
* 'get_auth_info_required()' - Get the auth-info-required value to advertise. * 'get_auth_info_required()' - Get the auth-info-required value to advertise.
*/ */
diff -up cups-1.4.5/scheduler/dirsvc.h.avahi cups-1.4.5/scheduler/dirsvc.h diff -up cups-1.4.6/scheduler/dirsvc.h.avahi cups-1.4.6/scheduler/dirsvc.h
--- cups-1.4.5/scheduler/dirsvc.h.avahi 2009-05-14 18:54:37.000000000 +0100 --- cups-1.4.6/scheduler/dirsvc.h.avahi 2009-05-14 18:54:37.000000000 +0100
+++ cups-1.4.5/scheduler/dirsvc.h 2010-12-31 10:31:07.811916792 +0000 +++ cups-1.4.6/scheduler/dirsvc.h 2011-01-25 17:39:15.063315332 +0000
@@ -32,6 +32,10 @@ @@ -32,6 +32,10 @@
# endif /* HAVE_LDAP_SSL_H */ # endif /* HAVE_LDAP_SSL_H */
#endif /* HAVE_LDAP */ #endif /* HAVE_LDAP */
@ -2973,7 +2974,7 @@ diff -up cups-1.4.5/scheduler/dirsvc.h.avahi cups-1.4.5/scheduler/dirsvc.h
+ /* AvahiCupsPoll object */ + /* AvahiCupsPoll object */
+VAR AvahiClient *AvahiCupsClient VALUE(NULL); +VAR AvahiClient *AvahiCupsClient VALUE(NULL);
+ /* AvahiClient object */ + /* AvahiClient object */
+VAR AvahiClient **AvahiCupsClientConnecting VALUE(NULL); +VAR int AvahiCupsClientConnecting VALUE(0);
+ /* AvahiClient object (waiting) */ + /* AvahiClient object (waiting) */
+VAR AvahiEntryGroup *AvahiWebIFGroup VALUE(NULL); +VAR AvahiEntryGroup *AvahiWebIFGroup VALUE(NULL);
+ /* Web interface entry group */ + /* Web interface entry group */
@ -2999,9 +3000,9 @@ diff -up cups-1.4.5/scheduler/dirsvc.h.avahi cups-1.4.5/scheduler/dirsvc.h
#ifdef HAVE_LDAP #ifdef HAVE_LDAP
extern void cupsdUpdateLDAPBrowse(void); extern void cupsdUpdateLDAPBrowse(void);
#endif /* HAVE_LDAP */ #endif /* HAVE_LDAP */
diff -up cups-1.4.5/scheduler/main.c.avahi cups-1.4.5/scheduler/main.c diff -up cups-1.4.6/scheduler/main.c.avahi cups-1.4.6/scheduler/main.c
--- cups-1.4.5/scheduler/main.c.avahi 2010-12-31 10:31:00.209631230 +0000 --- cups-1.4.6/scheduler/main.c.avahi 2011-01-25 13:26:16.487112302 +0000
+++ cups-1.4.5/scheduler/main.c 2010-12-31 10:31:07.813916862 +0000 +++ cups-1.4.6/scheduler/main.c 2011-01-25 13:26:16.650115377 +0000
@@ -135,6 +135,10 @@ main(int argc, /* I - Number of comm @@ -135,6 +135,10 @@ main(int argc, /* I - Number of comm
cupsd_listener_t *lis; /* Current listener */ cupsd_listener_t *lis; /* Current listener */
time_t current_time, /* Current time */ time_t current_time, /* Current time */
@ -3107,9 +3108,9 @@ diff -up cups-1.4.5/scheduler/main.c.avahi cups-1.4.5/scheduler/main.c
/* /*
* Check whether we are accepting new connections... * Check whether we are accepting new connections...
*/ */
diff -up cups-1.4.5/scheduler/Makefile.avahi cups-1.4.5/scheduler/Makefile diff -up cups-1.4.6/scheduler/Makefile.avahi cups-1.4.6/scheduler/Makefile
--- cups-1.4.5/scheduler/Makefile.avahi 2010-12-31 10:31:00.313635137 +0000 --- cups-1.4.6/scheduler/Makefile.avahi 2011-01-25 13:26:16.591114269 +0000
+++ cups-1.4.5/scheduler/Makefile 2010-12-31 10:31:07.796916222 +0000 +++ cups-1.4.6/scheduler/Makefile 2011-01-25 13:26:16.657115510 +0000
@@ -17,6 +17,7 @@ include ../Makedefs @@ -17,6 +17,7 @@ include ../Makedefs
CUPSDOBJS = \ CUPSDOBJS = \
@ -3128,9 +3129,9 @@ diff -up cups-1.4.5/scheduler/Makefile.avahi cups-1.4.5/scheduler/Makefile
LIBOBJS = \ LIBOBJS = \
filter.o \ filter.o \
mime.o \ mime.o \
diff -up cups-1.4.5/scheduler/printers.c.avahi cups-1.4.5/scheduler/printers.c diff -up cups-1.4.6/scheduler/printers.c.avahi cups-1.4.6/scheduler/printers.c
--- cups-1.4.5/scheduler/printers.c.avahi 2010-12-31 10:31:00.355636715 +0000 --- cups-1.4.6/scheduler/printers.c.avahi 2011-01-25 13:26:16.628114966 +0000
+++ cups-1.4.5/scheduler/printers.c 2010-12-31 10:31:07.822917201 +0000 +++ cups-1.4.6/scheduler/printers.c 2011-01-25 13:26:16.659115546 +0000
@@ -929,10 +929,10 @@ cupsdDeletePrinter( @@ -929,10 +929,10 @@ cupsdDeletePrinter(
cupsdClearString(&p->alert); cupsdClearString(&p->alert);
cupsdClearString(&p->alert_description); cupsdClearString(&p->alert_description);
@ -3199,9 +3200,9 @@ diff -up cups-1.4.5/scheduler/printers.c.avahi cups-1.4.5/scheduler/printers.c
if (ppdFindAttr(ppd, "APRemoteQueueID", NULL)) if (ppdFindAttr(ppd, "APRemoteQueueID", NULL))
p->type |= CUPS_PRINTER_REMOTE; p->type |= CUPS_PRINTER_REMOTE;
diff -up cups-1.4.5/scheduler/printers.h.avahi cups-1.4.5/scheduler/printers.h diff -up cups-1.4.6/scheduler/printers.h.avahi cups-1.4.6/scheduler/printers.h
--- cups-1.4.5/scheduler/printers.h.avahi 2010-03-30 23:07:33.000000000 +0100 --- cups-1.4.6/scheduler/printers.h.avahi 2010-03-30 23:07:33.000000000 +0100
+++ cups-1.4.5/scheduler/printers.h 2010-12-31 10:31:07.828917428 +0000 +++ cups-1.4.6/scheduler/printers.h 2011-01-25 13:26:16.665115661 +0000
@@ -16,6 +16,9 @@ @@ -16,6 +16,9 @@
#ifdef HAVE_DNSSD #ifdef HAVE_DNSSD
# include <dns_sd.h> # include <dns_sd.h>
@ -3241,9 +3242,9 @@ diff -up cups-1.4.5/scheduler/printers.h.avahi cups-1.4.5/scheduler/printers.h
} cupsd_printer_t; } cupsd_printer_t;
diff -up cups-1.4.5/scheduler/timeout.c.avahi cups-1.4.5/scheduler/timeout.c diff -up cups-1.4.6/scheduler/timeout.c.avahi cups-1.4.6/scheduler/timeout.c
--- cups-1.4.5/scheduler/timeout.c.avahi 2010-12-31 10:31:07.831917542 +0000 --- cups-1.4.6/scheduler/timeout.c.avahi 2011-01-25 13:26:16.668115715 +0000
+++ cups-1.4.5/scheduler/timeout.c 2010-12-31 10:31:07.831917542 +0000 +++ cups-1.4.6/scheduler/timeout.c 2011-01-25 13:26:16.668115715 +0000
@@ -0,0 +1,195 @@ @@ -0,0 +1,195 @@
+/* +/*
+ * "$Id$" + * "$Id$"

View File

@ -8,7 +8,7 @@
Summary: Common Unix Printing System Summary: Common Unix Printing System
Name: cups Name: cups
Version: 1.4.6 Version: 1.4.6
Release: 6%{?dist} Release: 7%{?dist}
License: GPLv2 License: GPLv2
Group: System Environment/Daemons Group: System Environment/Daemons
Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2 Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2
@ -603,6 +603,9 @@ rm -rf $RPM_BUILD_ROOT
%{php_extdir}/phpcups.so %{php_extdir}/phpcups.so
%changelog %changelog
* Tue Jan 25 2011 Tim Waugh <twaugh@redhat.com> 1:1.4.6-7
- Some fixes for the AvahiClient callback (bug #672143).
* Tue Jan 18 2011 Tim Waugh <twaugh@redhat.com> 1:1.4.6-6 * Tue Jan 18 2011 Tim Waugh <twaugh@redhat.com> 1:1.4.6-6
- Don't use --enable-pie configure option as it has been removed and - Don't use --enable-pie configure option as it has been removed and
is now assumed. See STR #3691. is now assumed. See STR #3691.