[cups] Prevent dnssd backend exiting too early (bug #1026940).

Tim Waugh twaugh at fedoraproject.org
Tue Feb 11 12:48:51 UTC 2014


commit 7048cf473bca56b13d3c2f140fd749d561490784
Author: Tim Waugh <twaugh at redhat.com>
Date:   Tue Feb 11 12:29:01 2014 +0000

    Prevent dnssd backend exiting too early (bug #1026940).
    
    Resolves: rhbz#1026940

 cups-avahi-browse.patch |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 cups.spec               |    8 +++++++-
 2 files changed, 53 insertions(+), 1 deletions(-)
---
diff --git a/cups-avahi-browse.patch b/cups-avahi-browse.patch
new file mode 100644
index 0000000..24c05fc
--- /dev/null
+++ b/cups-avahi-browse.patch
@@ -0,0 +1,46 @@
+diff -up cups-1.7.1/backend/dnssd.c.avahi-browse cups-1.7.1/backend/dnssd.c
+--- cups-1.7.1/backend/dnssd.c.avahi-browse	2012-12-12 20:54:21.000000000 +0000
++++ cups-1.7.1/backend/dnssd.c	2014-02-11 12:44:54.785319324 +0000
+@@ -95,6 +95,7 @@ static int		job_canceled = 0;
+ static AvahiSimplePoll	*simple_poll = NULL;
+ 					/* Poll information */
+ static int		got_data = 0;	/* Got data from poll? */
++static int		browsers = 0;	/* Number of running browsers */
+ #endif /* HAVE_AVAHI */
+ 
+ 
+@@ -345,6 +346,7 @@ main(int  argc,				/* I - Number of comm
+     return (1);
+   }
+ 
++  browsers = 6;
+   avahi_service_browser_new(client, AVAHI_IF_UNSPEC,
+ 			    AVAHI_PROTO_UNSPEC,
+ 			    "_fax-ipp._tcp", NULL, 0,
+@@ -559,7 +561,11 @@ main(int  argc,				/* I - Number of comm
+       fprintf(stderr, "DEBUG: sent=%d, count=%d\n", sent, count);
+ 
+       if (sent == cupsArrayCount(devices))
+-	break;
++#ifdef HAVE_AVAHI
++	  if (browsers == 0)
++	      /* All service browsers have finished */
++#endif /* HAVE_AVAHI */
++	      break;
+     }
+   }
+ 
+@@ -710,9 +716,12 @@ browse_callback(
+ 	break;
+ 
+     case AVAHI_BROWSER_REMOVE:
+-    case AVAHI_BROWSER_ALL_FOR_NOW:
+     case AVAHI_BROWSER_CACHE_EXHAUSTED:
+         break;
++
++    case AVAHI_BROWSER_ALL_FOR_NOW:
++	browsers--;
++	break;
+   }
+ }
+ 
diff --git a/cups.spec b/cups.spec
index 93a6525..f3356c2 100644
--- a/cups.spec
+++ b/cups.spec
@@ -11,7 +11,7 @@ Summary: CUPS printing system
 Name: cups
 Epoch: 1
 Version: 1.7.1
-Release: 2%{?dist}
+Release: 3%{?dist}
 License: GPLv2
 Group: System Environment/Daemons
 Url: http://www.cups.org/
@@ -67,6 +67,7 @@ Patch39: cups-web-devices-timeout.patch
 Patch40: cups-final-content-type.patch
 Patch41: cups-journal.patch
 Patch42: cups-synconclose.patch
+Patch43: cups-avahi-browse.patch
 
 Patch100: cups-lspp.patch
 
@@ -260,6 +261,8 @@ Sends IPP requests to the specified URI and tests and/or displays the results.
 %patch41 -p1 -b .journal
 # Set the default for SyncOnClose to Yes.
 %patch42 -p1 -b .synconclose
+# Prevent dnssd backend exiting too early (bug #1026940, STR #4365).
+%patch43 -p1 -b .avahi-browse
 
 %if %lspp
 # LSPP support.
@@ -640,6 +643,9 @@ rm -f %{cups_serverbin}/backend/smb
 %{_mandir}/man5/ipptoolfile.5.gz
 
 %changelog
+* Tue Feb 11 2014 Tim Waugh <twaugh at redhat.com> - 1:1.7.1-3
+- Prevent dnssd backend exiting too early (bug #1026940, STR #4365).
+
 * Mon Feb 03 2014 Jiri Popelka <jpopelka at redhat.com> - 1:1.7.1-2
 - move macros.cups from /etc/rpm/ to /usr/lib/rpm/macros.d
 


More information about the scm-commits mailing list