-diff -up cups-2.0.2/scheduler/avahi.c.KUoOri cups-2.0.2/scheduler/avahi.c
---- cups-2.0.2/scheduler/avahi.c.KUoOri 2015-02-10 13:47:38.620396709 +0100
-+++ cups-2.0.2/scheduler/avahi.c 2015-02-10 13:47:38.620396709 +0100
+diff -up cups-2.2b2/scheduler/avahi.c.avahi-no-threaded cups-2.2b2/scheduler/avahi.c
+--- cups-2.2b2/scheduler/avahi.c.avahi-no-threaded 2016-06-27 17:55:19.568728958 +0200
++++ cups-2.2b2/scheduler/avahi.c 2016-06-27 17:55:19.568728958 +0200
@@ -0,0 +1,441 @@
+/*
+ * "$Id$"
+/*
+ * End of "$Id$".
+ */
-diff -up cups-2.0.2/scheduler/avahi.h.KUoOri cups-2.0.2/scheduler/avahi.h
---- cups-2.0.2/scheduler/avahi.h.KUoOri 2015-02-10 13:47:38.620396709 +0100
-+++ cups-2.0.2/scheduler/avahi.h 2015-02-10 13:47:38.620396709 +0100
+diff -up cups-2.2b2/scheduler/avahi.h.avahi-no-threaded cups-2.2b2/scheduler/avahi.h
+--- cups-2.2b2/scheduler/avahi.h.avahi-no-threaded 2016-06-27 17:55:19.568728958 +0200
++++ cups-2.2b2/scheduler/avahi.h 2016-06-27 17:55:19.568728958 +0200
@@ -0,0 +1,69 @@
+/*
+ * "$Id$"
+/*
+ * End of "$Id$".
+ */
-diff -up cups-2.0.2/scheduler/cupsd.h.KUoOri cups-2.0.2/scheduler/cupsd.h
---- cups-2.0.2/scheduler/cupsd.h.KUoOri 2014-03-21 17:42:53.000000000 +0100
-+++ cups-2.0.2/scheduler/cupsd.h 2015-02-10 13:47:38.624396652 +0100
-@@ -119,6 +119,7 @@ extern const char *cups_hstrerror(int);
+diff -up cups-2.2b2/scheduler/cupsd.h.avahi-no-threaded cups-2.2b2/scheduler/cupsd.h
+--- cups-2.2b2/scheduler/cupsd.h.avahi-no-threaded 2016-06-24 17:43:35.000000000 +0200
++++ cups-2.2b2/scheduler/cupsd.h 2016-06-27 17:57:45.476572827 +0200
+@@ -118,6 +118,7 @@ extern const char *cups_hstrerror(int);
#include "colorman.h"
#include "conf.h"
#include "banners.h"
#include "dirsvc.h"
#include "network.h"
#include "subscriptions.h"
-@@ -139,6 +140,15 @@ extern const char *cups_hstrerror(int);
+@@ -138,6 +139,15 @@ extern const char *cups_hstrerror(int);
typedef void (*cupsd_selfunc_t)(void *data);
/*
* Globals...
-@@ -163,6 +173,10 @@ VAR int OnDemand VALUE(0);
+@@ -162,6 +172,9 @@ VAR int OnDemand VALUE(0);
/* Launched on demand */
- #endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+ #endif /* HAVE_ONDEMAND */
+#ifdef HAVE_AVAHI
+VAR cups_array_t *Timeouts; /* Timed callbacks for main loop */
+#endif /* HAVE_AVAHI */
-+
/*
* Prototypes...
-@@ -226,6 +240,17 @@ extern void cupsdStopSelect(void);
+@@ -224,3 +237,15 @@ extern void cupsdStopSelect(void);
+ /* server.c */
extern void cupsdStartServer(void);
extern void cupsdStopServer(void);
-
++
+#ifdef HAVE_AVAHI
+extern void cupsdInitTimeouts(void);
+extern cupsd_timeout_t *cupsdAddTimeout (const struct timeval *tv,
+ const struct timeval *tv);
+extern void cupsdRemoveTimeout (cupsd_timeout_t *timeout);
+#endif /* HAVE_AVAHI */
-
- /*
- * End of "$Id: cupsd.h 11717 2014-03-21 16:42:53Z msweet $".
-diff -up cups-2.0.2/scheduler/dirsvc.c.KUoOri cups-2.0.2/scheduler/dirsvc.c
---- cups-2.0.2/scheduler/dirsvc.c.KUoOri 2015-01-30 17:16:12.000000000 +0100
-+++ cups-2.0.2/scheduler/dirsvc.c 2015-02-10 13:50:47.131728120 +0100
-@@ -195,7 +195,7 @@ cupsdStartBrowsing(void)
+\ No newline at end of file
+diff -up cups-2.2b2/scheduler/dirsvc.c.avahi-no-threaded cups-2.2b2/scheduler/dirsvc.c
+--- cups-2.2b2/scheduler/dirsvc.c.avahi-no-threaded 2016-06-24 17:43:35.000000000 +0200
++++ cups-2.2b2/scheduler/dirsvc.c 2016-06-27 17:55:19.569728950 +0200
+@@ -193,7 +193,7 @@ cupsdStartBrowsing(void)
cupsdUpdateDNSSDName();
# else /* HAVE_AVAHI */
{
cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to create DNS-SD thread.");
-@@ -206,7 +206,7 @@ cupsdStartBrowsing(void)
+@@ -204,7 +204,7 @@ cupsdStartBrowsing(void)
{
int error; /* Error code, if any */
if (DNSSDClient == NULL)
{
-@@ -217,11 +217,9 @@ cupsdStartBrowsing(void)
+@@ -215,11 +215,9 @@ cupsdStartBrowsing(void)
if (FatalErrors & CUPSD_FATAL_BROWSE)
cupsdEndProcess(getpid(), 0);
}
# endif /* HAVE_DNSSD */
}
-@@ -608,7 +606,7 @@ dnssdClientCallback(
+@@ -606,7 +604,7 @@ dnssdClientCallback(
* Renew Avahi client...
*/
if (!DNSSDClient)
{
-@@ -672,13 +670,7 @@ dnssdDeregisterInstance(
+@@ -670,13 +668,7 @@ dnssdDeregisterInstance(
DNSServiceRefDeallocate(*srv);
# else /* HAVE_AVAHI */
# endif /* HAVE_DNSSD */
*srv = NULL;
-@@ -999,16 +991,10 @@ dnssdRegisterInstance(
+@@ -997,16 +989,10 @@ dnssdRegisterInstance(
(void)commit;
# else /* HAVE_AVAHI */
cupsdLogMessage(CUPSD_LOG_WARN, "DNS-SD registration of \"%s\" failed: %s",
name, dnssdErrorString(avahi_client_errno(DNSSDClient)));
return (0);
-@@ -1123,9 +1109,6 @@ dnssdRegisterInstance(
+@@ -1121,9 +1107,6 @@ dnssdRegisterInstance(
cupsdLogMessage(CUPSD_LOG_DEBUG, "DNS-SD commit of \"%s\" failed.",
name);
}
# endif /* HAVE_DNSSD */
if (error)
-@@ -1296,9 +1279,6 @@ dnssdStop(void)
+@@ -1294,9 +1277,6 @@ dnssdStop(void)
DNSSDMaster = NULL;
# else /* HAVE_AVAHI */
if (DNSSDClient)
{
avahi_client_free(DNSSDClient);
-@@ -1307,7 +1287,7 @@ dnssdStop(void)
+@@ -1305,7 +1285,7 @@ dnssdStop(void)
if (DNSSDMaster)
{
DNSSDMaster = NULL;
}
# endif /* HAVE_DNSSD */
-diff -up cups-2.0.2/scheduler/dirsvc.h.KUoOri cups-2.0.2/scheduler/dirsvc.h
---- cups-2.0.2/scheduler/dirsvc.h.KUoOri 2013-05-29 13:51:34.000000000 +0200
-+++ cups-2.0.2/scheduler/dirsvc.h 2015-02-10 13:47:38.640396426 +0100
-@@ -51,7 +51,7 @@ VAR cups_array_t *DNSSDPrinters VALUE(NU
+diff -up cups-2.2b2/scheduler/dirsvc.h.avahi-no-threaded cups-2.2b2/scheduler/dirsvc.h
+--- cups-2.2b2/scheduler/dirsvc.h.avahi-no-threaded 2016-06-24 17:43:35.000000000 +0200
++++ cups-2.2b2/scheduler/dirsvc.h 2016-06-27 17:55:19.569728950 +0200
+@@ -49,7 +49,7 @@ VAR cups_array_t *DNSSDPrinters VALUE(NU
VAR DNSServiceRef DNSSDMaster VALUE(NULL);
/* Master DNS-SD service reference */
# else /* HAVE_AVAHI */
/* Master polling interface for Avahi */
VAR AvahiClient *DNSSDClient VALUE(NULL);
/* Client information */
-diff -up cups-2.0.2/scheduler/main.c.KUoOri cups-2.0.2/scheduler/main.c
---- cups-2.0.2/scheduler/main.c.KUoOri 2015-02-10 13:40:24.295545063 +0100
-+++ cups-2.0.2/scheduler/main.c 2015-02-10 13:47:38.641396412 +0100
-@@ -129,6 +129,10 @@ main(int argc, /* I - Number of comm
+diff -up cups-2.2b2/scheduler/main.c.avahi-no-threaded cups-2.2b2/scheduler/main.c
+--- cups-2.2b2/scheduler/main.c.avahi-no-threaded 2016-06-27 17:55:19.555729061 +0200
++++ cups-2.2b2/scheduler/main.c 2016-06-27 17:58:44.350106330 +0200
+@@ -131,7 +131,10 @@ main(int argc, /* I - Number of comm
int service_idle_exit;
/* Idle exit on select timeout? */
- #endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+ #endif /* HAVE_ONDEMAND */
+-
+#ifdef HAVE_AVAHI
+ cupsd_timeout_t *tmo; /* Next scheduled timed callback */
+ long tmo_delay; /* Time before it must be called */
+#endif /* HAVE_AVAHI */
-
#ifdef HAVE_GETEUID
-@@ -577,6 +581,14 @@ main(int argc, /* I - Number of comm
+ /*
+@@ -609,6 +612,14 @@ main(int argc, /* I - Number of comm
httpInitialize();
cupsdStartServer();
/*
-@@ -883,6 +895,16 @@ main(int argc, /* I - Number of comm
+@@ -930,6 +941,16 @@ main(int argc, /* I - Number of comm
}
#endif /* __APPLE__ */
#ifndef __APPLE__
/*
* Update the network interfaces once a minute...
-@@ -1574,6 +1596,10 @@ select_timeout(int fds) /* I - Number
+@@ -1620,6 +1641,10 @@ select_timeout(int fds) /* I - Number
+ cupsd_client_t *con; /* Client information */
cupsd_job_t *job; /* Job information */
- cupsd_subscription_t *sub; /* Subscription information */
const char *why; /* Debugging aid */
+#ifdef HAVE_AVAHI
+ cupsd_timeout_t *tmo; /* Timed callback */
cupsdLogMessage(CUPSD_LOG_DEBUG2, "select_timeout: JobHistoryUpdate=%ld",
-@@ -1619,6 +1645,19 @@ select_timeout(int fds) /* I - Number
+@@ -1665,6 +1690,19 @@ select_timeout(int fds) /* I - Number
}
#endif /* __APPLE__ */
/*
* Check whether we are accepting new connections...
*/
-diff -up cups-2.0.2/scheduler/Makefile.KUoOri cups-2.0.2/scheduler/Makefile
---- cups-2.0.2/scheduler/Makefile.KUoOri 2014-10-21 13:55:01.000000000 +0200
-+++ cups-2.0.2/scheduler/Makefile 2015-02-10 13:47:38.646396341 +0100
-@@ -17,6 +17,7 @@ include ../Makedefs
+diff -up cups-2.2b2/scheduler/Makefile.avahi-no-threaded cups-2.2b2/scheduler/Makefile
+--- cups-2.2b2/scheduler/Makefile.avahi-no-threaded 2016-06-24 17:43:35.000000000 +0200
++++ cups-2.2b2/scheduler/Makefile 2016-06-27 17:55:19.569728950 +0200
+@@ -15,6 +15,7 @@ include ../Makedefs
CUPSDOBJS = \
auth.o \
banners.o \
cert.o \
classes.o \
-@@ -40,7 +41,8 @@ CUPSDOBJS = \
+@@ -38,7 +39,8 @@ CUPSDOBJS = \
server.o \
statbuf.o \
subscriptions.o \
LIBOBJS = \
filter.o \
mime.o \
-diff -up cups-2.0.2/scheduler/timeout.c.KUoOri cups-2.0.2/scheduler/timeout.c
---- cups-2.0.2/scheduler/timeout.c.KUoOri 2015-02-10 13:47:38.646396341 +0100
-+++ cups-2.0.2/scheduler/timeout.c 2015-02-10 13:47:38.646396341 +0100
+diff -up cups-2.2b2/scheduler/timeout.c.avahi-no-threaded cups-2.2b2/scheduler/timeout.c
+--- cups-2.2b2/scheduler/timeout.c.avahi-no-threaded 2016-06-27 17:55:19.569728950 +0200
++++ cups-2.2b2/scheduler/timeout.c 2016-06-27 17:55:19.569728950 +0200
@@ -0,0 +1,235 @@
+/*
+ * "$Id$"