-diff -up cups-2.2.5/scheduler/avahi.c.avahi-no-threaded cups-2.2.5/scheduler/avahi.c
---- cups-2.2.5/scheduler/avahi.c.avahi-no-threaded 2017-10-17 19:03:00.760881016 +0200
-+++ cups-2.2.5/scheduler/avahi.c 2017-10-17 19:03:00.760881016 +0200
+diff -up cups-2.2.7/scheduler/avahi.c.avahi-no-threaded cups-2.2.7/scheduler/avahi.c
+--- cups-2.2.7/scheduler/avahi.c.avahi-no-threaded 2018-04-03 14:27:17.067410826 +0200
++++ cups-2.2.7/scheduler/avahi.c 2018-04-03 14:27:17.067410826 +0200
@@ -0,0 +1,441 @@
+/*
+ * "$Id$"
+/*
+ * End of "$Id$".
+ */
-diff -up cups-2.2.5/scheduler/avahi.h.avahi-no-threaded cups-2.2.5/scheduler/avahi.h
---- cups-2.2.5/scheduler/avahi.h.avahi-no-threaded 2017-10-17 19:03:00.760881016 +0200
-+++ cups-2.2.5/scheduler/avahi.h 2017-10-17 19:03:00.760881016 +0200
+diff -up cups-2.2.7/scheduler/avahi.h.avahi-no-threaded cups-2.2.7/scheduler/avahi.h
+--- cups-2.2.7/scheduler/avahi.h.avahi-no-threaded 2018-04-03 14:27:17.067410826 +0200
++++ cups-2.2.7/scheduler/avahi.h 2018-04-03 14:27:17.067410826 +0200
@@ -0,0 +1,69 @@
+/*
+ * "$Id$"
+/*
+ * End of "$Id$".
+ */
-diff -up cups-2.2.5/scheduler/cupsd.h.avahi-no-threaded cups-2.2.5/scheduler/cupsd.h
---- cups-2.2.5/scheduler/cupsd.h.avahi-no-threaded 2017-10-13 20:22:26.000000000 +0200
-+++ cups-2.2.5/scheduler/cupsd.h 2017-10-17 19:03:00.760881016 +0200
+diff -up cups-2.2.7/scheduler/cupsd.h.avahi-no-threaded cups-2.2.7/scheduler/cupsd.h
+--- cups-2.2.7/scheduler/cupsd.h.avahi-no-threaded 2018-03-23 04:48:36.000000000 +0100
++++ cups-2.2.7/scheduler/cupsd.h 2018-04-03 14:27:17.067410826 +0200
@@ -118,6 +118,7 @@ extern const char *cups_hstrerror(int);
#include "colorman.h"
#include "conf.h"
+extern void cupsdRemoveTimeout (cupsd_timeout_t *timeout);
+#endif /* HAVE_AVAHI */
\ No newline at end of file
-diff -up cups-2.2.5/scheduler/dirsvc.c.avahi-no-threaded cups-2.2.5/scheduler/dirsvc.c
---- cups-2.2.5/scheduler/dirsvc.c.avahi-no-threaded 2017-10-13 20:22:26.000000000 +0200
-+++ cups-2.2.5/scheduler/dirsvc.c 2017-10-17 19:05:35.938592292 +0200
+diff -up cups-2.2.7/scheduler/dirsvc.c.avahi-no-threaded cups-2.2.7/scheduler/dirsvc.c
+--- cups-2.2.7/scheduler/dirsvc.c.avahi-no-threaded 2018-03-23 04:48:36.000000000 +0100
++++ cups-2.2.7/scheduler/dirsvc.c 2018-04-03 14:30:13.099422499 +0200
@@ -193,7 +193,7 @@ cupsdStartBrowsing(void)
cupsdUpdateDNSSDName();
if (!DNSSDClient)
{
-@@ -701,13 +699,7 @@ dnssdDeregisterInstance(
+@@ -701,17 +699,11 @@ dnssdDeregisterInstance(
+ *srv = NULL;
+
# else /* HAVE_AVAHI */
+- if (!from_callback)
+- avahi_threaded_poll_lock(DNSSDMaster);
+-
if (*srv)
{
-- if (!from_callback)
-- avahi_threaded_poll_lock(DNSSDMaster);
--
avahi_entry_group_free(*srv);
--
-- if (!from_callback)
-- avahi_threaded_poll_unlock(DNSSDMaster);
+ *srv = NULL;
}
+-
+- if (!from_callback)
+- avahi_threaded_poll_unlock(DNSSDMaster);
# endif /* HAVE_DNSSD */
+ }
-@@ -1029,16 +1021,10 @@ dnssdRegisterInstance(
+@@ -1030,16 +1022,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);
-@@ -1153,9 +1139,6 @@ dnssdRegisterInstance(
+@@ -1154,9 +1140,6 @@ dnssdRegisterInstance(
cupsdLogMessage(CUPSD_LOG_DEBUG, "DNS-SD commit of \"%s\" failed.",
name);
}
# endif /* HAVE_DNSSD */
if (error)
-@@ -1326,9 +1309,6 @@ dnssdStop(void)
+@@ -1327,9 +1310,6 @@ dnssdStop(void)
DNSSDMaster = NULL;
# else /* HAVE_AVAHI */
if (DNSSDClient)
{
avahi_client_free(DNSSDClient);
-@@ -1337,7 +1317,7 @@ dnssdStop(void)
+@@ -1338,7 +1318,7 @@ dnssdStop(void)
if (DNSSDMaster)
{
DNSSDMaster = NULL;
}
# endif /* HAVE_DNSSD */
-diff -up cups-2.2.5/scheduler/dirsvc.h.avahi-no-threaded cups-2.2.5/scheduler/dirsvc.h
---- cups-2.2.5/scheduler/dirsvc.h.avahi-no-threaded 2017-10-13 20:22:26.000000000 +0200
-+++ cups-2.2.5/scheduler/dirsvc.h 2017-10-17 19:03:00.761881007 +0200
+diff -up cups-2.2.7/scheduler/dirsvc.h.avahi-no-threaded cups-2.2.7/scheduler/dirsvc.h
+--- cups-2.2.7/scheduler/dirsvc.h.avahi-no-threaded 2018-03-23 04:48:36.000000000 +0100
++++ cups-2.2.7/scheduler/dirsvc.h 2018-04-03 14:27:17.068410820 +0200
@@ -49,7 +49,7 @@ VAR cups_array_t *DNSSDPrinters VALUE(NU
VAR DNSServiceRef DNSSDMaster VALUE(NULL);
/* Master DNS-SD service reference */
/* Master polling interface for Avahi */
VAR AvahiClient *DNSSDClient VALUE(NULL);
/* Client information */
-diff -up cups-2.2.5/scheduler/main.c.avahi-no-threaded cups-2.2.5/scheduler/main.c
---- cups-2.2.5/scheduler/main.c.avahi-no-threaded 2017-10-17 19:03:00.753881074 +0200
-+++ cups-2.2.5/scheduler/main.c 2017-10-17 19:03:00.761881007 +0200
+diff -up cups-2.2.7/scheduler/main.c.avahi-no-threaded cups-2.2.7/scheduler/main.c
+--- cups-2.2.7/scheduler/main.c.avahi-no-threaded 2018-04-03 14:27:17.057410882 +0200
++++ cups-2.2.7/scheduler/main.c 2018-04-03 14:27:17.069410814 +0200
@@ -131,7 +131,10 @@ main(int argc, /* I - Number of comm
int service_idle_exit;
/* Idle exit on select timeout? */
/*
* Check whether we are accepting new connections...
*/
-diff -up cups-2.2.5/scheduler/Makefile.avahi-no-threaded cups-2.2.5/scheduler/Makefile
---- cups-2.2.5/scheduler/Makefile.avahi-no-threaded 2017-10-13 20:22:26.000000000 +0200
-+++ cups-2.2.5/scheduler/Makefile 2017-10-17 19:03:00.762880999 +0200
+diff -up cups-2.2.7/scheduler/Makefile.avahi-no-threaded cups-2.2.7/scheduler/Makefile
+--- cups-2.2.7/scheduler/Makefile.avahi-no-threaded 2018-03-23 04:48:36.000000000 +0100
++++ cups-2.2.7/scheduler/Makefile 2018-04-03 14:27:17.069410814 +0200
@@ -15,6 +15,7 @@ include ../Makedefs
CUPSDOBJS = \
LIBOBJS = \
filter.o \
mime.o \
-diff -up cups-2.2.5/scheduler/timeout.c.avahi-no-threaded cups-2.2.5/scheduler/timeout.c
---- cups-2.2.5/scheduler/timeout.c.avahi-no-threaded 2017-10-17 19:03:00.762880999 +0200
-+++ cups-2.2.5/scheduler/timeout.c 2017-10-17 19:03:00.762880999 +0200
+diff -up cups-2.2.7/scheduler/timeout.c.avahi-no-threaded cups-2.2.7/scheduler/timeout.c
+--- cups-2.2.7/scheduler/timeout.c.avahi-no-threaded 2018-04-03 14:27:17.069410814 +0200
++++ cups-2.2.7/scheduler/timeout.c 2018-04-03 14:27:17.069410814 +0200
@@ -0,0 +1,235 @@
+/*
+ * "$Id$"
-diff -up cups-2.2.5/scheduler/main.c.systemd-socket cups-2.2.5/scheduler/main.c
---- cups-2.2.5/scheduler/main.c.systemd-socket 2017-10-17 18:59:53.732431498 +0200
-+++ cups-2.2.5/scheduler/main.c 2017-10-17 19:02:13.132275861 +0200
+diff -up cups-2.2.7/scheduler/main.c.systemd-socket cups-2.2.7/scheduler/main.c
+--- cups-2.2.7/scheduler/main.c.systemd-socket 2018-04-03 14:23:12.128786025 +0200
++++ cups-2.2.7/scheduler/main.c 2018-04-03 14:23:12.148785913 +0200
@@ -691,8 +691,16 @@ main(int argc, /* I - Number of comm
#ifdef HAVE_ONDEMAND
#endif /* HAVE_ONDEMAND */
if (fg)
cupsdAddEvent(CUPSD_EVENT_SERVER_STARTED, NULL, NULL, "Scheduler started in foreground.");
-diff -up cups-2.2.5/scheduler/org.cups.cupsd.path.in.systemd-socket cups-2.2.5/scheduler/org.cups.cupsd.path.in
---- cups-2.2.5/scheduler/org.cups.cupsd.path.in.systemd-socket 2017-10-13 20:22:26.000000000 +0200
-+++ cups-2.2.5/scheduler/org.cups.cupsd.path.in 2017-10-17 18:59:53.732431498 +0200
+diff -up cups-2.2.7/scheduler/org.cups.cupsd.path.in.systemd-socket cups-2.2.7/scheduler/org.cups.cupsd.path.in
+--- cups-2.2.7/scheduler/org.cups.cupsd.path.in.systemd-socket 2018-03-23 04:48:36.000000000 +0100
++++ cups-2.2.7/scheduler/org.cups.cupsd.path.in 2018-04-03 14:23:12.148785913 +0200
@@ -3,7 +3,7 @@ Description=CUPS Scheduler
PartOf=org.cups.cupsd.service
[Install]
WantedBy=multi-user.target
-diff -up cups-2.2.5/scheduler/org.cups.cupsd.service.in.systemd-socket cups-2.2.5/scheduler/org.cups.cupsd.service.in
---- cups-2.2.5/scheduler/org.cups.cupsd.service.in.systemd-socket 2017-10-13 20:22:26.000000000 +0200
-+++ cups-2.2.5/scheduler/org.cups.cupsd.service.in 2017-10-17 18:59:53.732431498 +0200
+diff -up cups-2.2.7/scheduler/org.cups.cupsd.service.in.systemd-socket cups-2.2.7/scheduler/org.cups.cupsd.service.in
+--- cups-2.2.7/scheduler/org.cups.cupsd.service.in.systemd-socket 2018-04-03 14:23:12.148785913 +0200
++++ cups-2.2.7/scheduler/org.cups.cupsd.service.in 2018-04-03 14:25:16.312088802 +0200
@@ -1,10 +1,11 @@
[Unit]
Description=CUPS Scheduler
ExecStart=@sbindir@/cupsd -l
-Type=simple
+Type=notify
+ Restart=always
[Install]
- Also=org.cups.cupsd.socket org.cups.cupsd.path