[cups/f16] Fixed Timeouts array comparison function (Ubuntu #860691).
Tim Waugh
twaugh at fedoraproject.org
Fri Oct 7 12:33:26 UTC 2011
commit 3d32f5055049b63f8667b20bd2eeac057b66eb4e
Author: Tim Waugh <twaugh at redhat.com>
Date: Fri Oct 7 12:51:17 2011 +0100
Fixed Timeouts array comparison function (Ubuntu #860691).
cups-avahi-3-timeouts.patch | 72 +++++++++++++++++++++++++++++++++---------
cups.spec | 5 ++-
2 files changed, 60 insertions(+), 17 deletions(-)
---
diff --git a/cups-avahi-3-timeouts.patch b/cups-avahi-3-timeouts.patch
index 11fce48..1c547c0 100644
--- a/cups-avahi-3-timeouts.patch
+++ b/cups-avahi-3-timeouts.patch
@@ -1,6 +1,6 @@
diff -up cups-1.5.0/scheduler/cupsd.h.avahi-3-timeouts cups-1.5.0/scheduler/cupsd.h
--- cups-1.5.0/scheduler/cupsd.h.avahi-3-timeouts 2011-05-11 23:17:34.000000000 +0100
-+++ cups-1.5.0/scheduler/cupsd.h 2011-08-05 15:06:13.570811440 +0100
++++ cups-1.5.0/scheduler/cupsd.h 2011-10-07 13:20:41.522867324 +0100
@@ -140,6 +140,15 @@ extern const char *cups_hstrerror(int);
typedef void (*cupsd_selfunc_t)(void *data);
@@ -51,8 +51,8 @@ diff -up cups-1.5.0/scheduler/cupsd.h.avahi-3-timeouts cups-1.5.0/scheduler/cups
/*
* End of "$Id: cupsd.h 9766 2011-05-11 22:17:34Z mike $".
diff -up cups-1.5.0/scheduler/main.c.avahi-3-timeouts cups-1.5.0/scheduler/main.c
---- cups-1.5.0/scheduler/main.c.avahi-3-timeouts 2011-08-05 15:05:45.590700888 +0100
-+++ cups-1.5.0/scheduler/main.c 2011-08-05 15:06:13.572811372 +0100
+--- cups-1.5.0/scheduler/main.c.avahi-3-timeouts 2011-10-07 13:20:36.875954675 +0100
++++ cups-1.5.0/scheduler/main.c 2011-10-07 13:20:41.524867282 +0100
@@ -146,6 +146,10 @@ main(int argc, /* I - Number of comm
int launchd_idle_exit;
/* Idle exit on select timeout? */
@@ -96,7 +96,7 @@ diff -up cups-1.5.0/scheduler/main.c.avahi-3-timeouts cups-1.5.0/scheduler/main.
#ifndef __APPLE__
/*
* Update the network interfaces once a minute...
-@@ -1787,6 +1809,10 @@ select_timeout(int fds) /* I - Number
+@@ -1787,6 +1809,10 @@ select_timeout(int fds) /* I - Number
cupsd_job_t *job; /* Job information */
cupsd_subscription_t *sub; /* Subscription information */
const char *why; /* Debugging aid */
@@ -107,7 +107,7 @@ diff -up cups-1.5.0/scheduler/main.c.avahi-3-timeouts cups-1.5.0/scheduler/main.
/*
-@@ -1829,6 +1855,19 @@ select_timeout(int fds) /* I - Number
+@@ -1829,6 +1855,19 @@ select_timeout(int fds) /* I - Number
}
#endif /* __APPLE__ */
@@ -128,8 +128,8 @@ diff -up cups-1.5.0/scheduler/main.c.avahi-3-timeouts cups-1.5.0/scheduler/main.
* Check whether we are accepting new connections...
*/
diff -up cups-1.5.0/scheduler/Makefile.avahi-3-timeouts cups-1.5.0/scheduler/Makefile
---- cups-1.5.0/scheduler/Makefile.avahi-3-timeouts 2011-08-05 15:05:45.673698248 +0100
-+++ cups-1.5.0/scheduler/Makefile 2011-08-05 15:06:13.569811476 +0100
+--- cups-1.5.0/scheduler/Makefile.avahi-3-timeouts 2011-10-07 13:20:36.955953170 +0100
++++ cups-1.5.0/scheduler/Makefile 2011-10-07 13:20:41.521867343 +0100
@@ -39,7 +39,8 @@ CUPSDOBJS = \
server.o \
statbuf.o \
@@ -141,21 +141,41 @@ diff -up cups-1.5.0/scheduler/Makefile.avahi-3-timeouts cups-1.5.0/scheduler/Mak
filter.o \
mime.o \
diff -up cups-1.5.0/scheduler/timeout.c.avahi-3-timeouts cups-1.5.0/scheduler/timeout.c
---- cups-1.5.0/scheduler/timeout.c.avahi-3-timeouts 2011-08-05 15:06:13.573811341 +0100
-+++ cups-1.5.0/scheduler/timeout.c 2011-08-05 15:06:13.573811341 +0100
-@@ -0,0 +1,195 @@
+--- cups-1.5.0/scheduler/timeout.c.avahi-3-timeouts 2011-10-07 13:20:41.525867259 +0100
++++ cups-1.5.0/scheduler/timeout.c 2011-10-07 13:20:41.525867259 +0100
+@@ -0,0 +1,235 @@
+/*
+ * "$Id$"
+ *
+ * Timeout functions for the Common UNIX Printing System (CUPS).
+ *
-+ * Copyright (C) 2010 Red Hat, Inc.
++ * Copyright (C) 2010, 2011 Red Hat, Inc.
+ * Authors:
+ * Tim Waugh <twaugh at redhat.com>
+ *
-+ * Distribution and use rights are outlined in the file "LICENSE.txt"
-+ * which should have been included with this file. If this file is
-+ * file is missing or damaged, see the license at "http://www.cups.org/".
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ *
++ * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
++ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Contents:
+ *
@@ -203,17 +223,37 @@ diff -up cups-1.5.0/scheduler/timeout.c.avahi-3-timeouts cups-1.5.0/scheduler/ti
+ */
+
+static int
++compare_addrs (void *p0, void *p1)
++{
++ if (p0 == p1)
++ return (0);
++ if (p0 < p1)
++ return (-1);
++ return (1);
++}
++
++static int
+compare_timeouts (cupsd_timeout_t *p0, cupsd_timeout_t *p1)
+{
++ int addrsdiff = compare_addrs (p0, p1);
++ int tvdiff;
++
++ if (addrsdiff == 0)
++ return (0);
++
+ if (!p0->enabled || !p1->enabled)
+ {
+ if (!p0->enabled && !p1->enabled)
-+ return (0);
++ return (addrsdiff);
+
+ return (p0->enabled ? -1 : 1);
+ }
+
-+ return (avahi_timeval_compare (&p0->when, &p1->when));
++ tvdiff = avahi_timeval_compare (&p0->when, &p1->when);
++ if (tvdiff != 0)
++ return (tvdiff);
++
++ return (addrsdiff);
+}
+
+
diff --git a/cups.spec b/cups.spec
index 5457f38..7845d5e 100644
--- a/cups.spec
+++ b/cups.spec
@@ -13,7 +13,7 @@
Summary: Common Unix Printing System
Name: cups
Version: 1.5.0
-Release: 14%{?dist}
+Release: 15%{?dist}
License: GPLv2
Group: System Environment/Daemons
Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2
@@ -651,6 +651,9 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/ipptool.1.gz
%changelog
+* Fri Oct 7 2011 Tim Waugh <twaugh at redhat.com> 1:1.5.0-15
+- Fixed Timeouts array comparison function (Ubuntu #860691).
+
* Wed Oct 5 2011 Tim Waugh <twaugh at redhat.com> 1:1.5.0-14
- Handle "localhost" resolving to 127.0.0.1 on IPv6-addressed systems
(bug #737230).
More information about the scm-commits
mailing list