]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Merge changes from CUPS 1.6svn-r9968.
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Wed, 7 Sep 2011 22:31:27 +0000 (22:31 +0000)
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Wed, 7 Sep 2011 22:31:27 +0000 (22:31 +0000)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3411 a1ca3aef-8c08-0410-bb20-df032aa958be

67 files changed:
CHANGES-1.5.txt
CHANGES.txt
Makefile
backend/Dependencies
backend/dnssd.c
backend/ipp.c
backend/testbackend.c
berkeley/Dependencies
berkeley/lpq.c
cgi-bin/Dependencies
cgi-bin/help-index.c
cgi-bin/var.c
config-scripts/cups-compiler.m4
cups/Dependencies
cups/auth.c
cups/cups.h
cups/debug-private.h
cups/file.c
cups/file.h
cups/http-private.h
cups/http-support.c
cups/http.c
cups/http.h
cups/language-private.h
cups/raster-private.h
cups/request.c
cups/string-private.h
cups/testsnmp.c
cups/usersys.c
cups/versioning.h
filter/Dependencies
filter/interpret.c
filter/pstops.c
locale/Dependencies
man/client.conf.man.in
monitor/Dependencies
notifier/Dependencies
ppdc/Dependencies
scheduler/Dependencies
scheduler/auth.c
scheduler/client.c
scheduler/conf.h
scheduler/cups.sh.in
scheduler/cupsd.h
scheduler/cupsfilter.c
scheduler/ipp.c
scheduler/job.c
scheduler/job.h
scheduler/log.c
scheduler/main.c
scheduler/mime-private.h
scheduler/testdirsvc.c
scheduler/testlpd.c
scheduler/testspeed.c
scheduler/testsub.c
systemv/Dependencies
systemv/Makefile
systemv/cupsaddsmb.c
systemv/cupsctl.c
systemv/cupstestdsc.c
systemv/cupstestppd.c
systemv/lpoptions.c
systemv/lppasswd.c
test/Dependencies
test/ippserver.c
test/ipptool.c
test/run-stp-tests.sh

index 100312bab70a04d4cc7b8975cccd69d97a18d68b..b2808cf0e8de0103714c5c278356c57c80d6a6fb 100644 (file)
@@ -4,6 +4,14 @@ CHANGES-1.5.txt
 CHANGES IN CUPS V1.5.1
 
        - Documentation updates (STR #3885)
+       - The client.conf Server directive is no longer supported on Mac OS X
+         10.7 and later.
+       - The IPP backend sent the wrong margins in media-col.
+       - The scheduler did not save or restore large Kerberos credentials for
+         jobs.
+       - The dnssd backend did not properly browse for secure IPP printers.
+       - httpAssembleURI* did not properly escape all special characters in the
+         username/password field.
        - The scheduler now logs config file errors to stderr (STR #3936)
        - The configure script incorrectly used bundle-based localizations on
          Linux (STR #3938)
index 58b9973db4eea4fe54e09e081370c0d92de0b15b..8bca378935f08e33dfb3013dc978685ba21ad0d0 100644 (file)
@@ -1,8 +1,9 @@
-CHANGES.txt - 1.6b1 - 2011-08-27
+CHANGES.txt - 1.6b1 - 2011-08-30
 --------------------------------
 
 CHANGES IN CUPS V1.6b1
 
+       - The scheduler will no longer run programs with group write permission.
        - The PHP module has been removed (STR #3932)
        - The bannertops, commandtoescpx, commandtopclx, imagetops,
          imagetoraster, pdftops, rastertoescpx, rastertopclx, and texttops
index 96c73aba83e85ed8229133c535d12debce207061..b7b21698ce4f6e23b9625ea40a29b1092fbc950d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -234,7 +234,11 @@ test:      all unittests
 
 check: all unittests
        echo Running CUPS test suite with defaults...
-       cd test; ./run-stp-tests.sh 1 0 n
+       cd test; ./run-stp-tests.sh 1 0 n n
+
+debugcheck:    all unittests
+       echo Running CUPS test suite with debug printfs...
+       cd test; ./run-stp-tests.sh 1 0 n y
 
 
 #
index 291418160c1c064f3172e0242bb4f3683522f36a..a738f9f97fb3bbfcff6ff89fb831ce019652012d 100644 (file)
@@ -3,59 +3,62 @@
 ipp.o: backend-private.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ipp.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 ipp.o: ../cups/language.h ../cups/string-private.h ../config.h
-ipp.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ipp.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ipp.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ipp.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-ipp.o: ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h
-ipp.o: ../cups/sidechannel.h ../cups/array-private.h
+ipp.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+ipp.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+ipp.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+ipp.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+ipp.o: ../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h
+ipp.o: ../cups/backend.h ../cups/sidechannel.h ../cups/array-private.h
 lpd.o: ../cups/http-private.h ../config.h ../cups/http.h
 lpd.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
 lpd.o: backend-private.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 lpd.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 lpd.o: ../cups/language.h ../cups/string-private.h ../cups/debug-private.h
-lpd.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
-lpd.o: ../cups/pwg-private.h ../cups/http-private.h
+lpd.o: ../cups/versioning.h ../cups/ppd-private.h ../cups/ppd.h
+lpd.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
 lpd.o: ../cups/language-private.h ../cups/transcode.h
 lpd.o: ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h
 lpd.o: ../cups/sidechannel.h
 dnssd.o: backend-private.h ../cups/cups-private.h ../cups/cups.h
 dnssd.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 dnssd.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-dnssd.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-dnssd.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-dnssd.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-dnssd.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-dnssd.o: ../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h
-dnssd.o: ../cups/backend.h ../cups/sidechannel.h ../cups/array.h
+dnssd.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+dnssd.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+dnssd.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+dnssd.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+dnssd.o: ../cups/language-private.h ../cups/transcode.h
+dnssd.o: ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h
+dnssd.o: ../cups/sidechannel.h ../cups/array.h
 snmp.o: backend-private.h ../cups/cups-private.h ../cups/cups.h
 snmp.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 snmp.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-snmp.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-snmp.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-snmp.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-snmp.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-snmp.o: ../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h
-snmp.o: ../cups/backend.h ../cups/sidechannel.h ../cups/array.h
-snmp.o: ../cups/file.h ../cups/http-private.h
+snmp.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+snmp.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+snmp.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+snmp.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+snmp.o: ../cups/language-private.h ../cups/transcode.h
+snmp.o: ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h
+snmp.o: ../cups/sidechannel.h ../cups/array.h ../cups/file.h
+snmp.o: ../cups/http-private.h
 socket.o: ../cups/http-private.h ../config.h ../cups/http.h
 socket.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
 socket.o: backend-private.h ../cups/cups-private.h ../cups/cups.h
 socket.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 socket.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-socket.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-socket.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-socket.o: ../cups/language-private.h ../cups/transcode.h
-socket.o: ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h
-socket.o: ../cups/sidechannel.h
+socket.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+socket.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+socket.o: ../cups/http-private.h ../cups/language-private.h
+socket.o: ../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h
+socket.o: ../cups/backend.h ../cups/sidechannel.h
 test1284.o: ../cups/string-private.h ../config.h ieee1284.c backend-private.h
 test1284.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 test1284.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 test1284.o: ../cups/language.h ../cups/string-private.h
-test1284.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-test1284.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-test1284.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-test1284.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+test1284.o: ../cups/debug-private.h ../cups/versioning.h
+test1284.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+test1284.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+test1284.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+test1284.o: ../cups/language-private.h ../cups/transcode.h
 test1284.o: ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h
 test1284.o: ../cups/sidechannel.h
 testbackend.o: ../cups/string-private.h ../config.h ../cups/cups.h
@@ -66,18 +69,18 @@ testsupplies.o: backend-private.h ../cups/cups-private.h ../cups/cups.h
 testsupplies.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h
 testsupplies.o: ../cups/http.h ../cups/array.h ../cups/language.h
 testsupplies.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
-testsupplies.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
-testsupplies.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-testsupplies.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-testsupplies.o: ../cups/language-private.h ../cups/transcode.h
+testsupplies.o: ../cups/versioning.h ../cups/ppd-private.h ../cups/ppd.h
+testsupplies.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
+testsupplies.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
+testsupplies.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
 testsupplies.o: ../cups/thread-private.h ../cups/snmp-private.h
 testsupplies.o: ../cups/backend.h ../cups/sidechannel.h
 usb.o: backend-private.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 usb.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 usb.o: ../cups/language.h ../cups/string-private.h ../config.h
-usb.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-usb.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-usb.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-usb.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-usb.o: ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h
-usb.o: ../cups/sidechannel.h
+usb.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+usb.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+usb.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+usb.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+usb.o: ../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h
+usb.o: ../cups/backend.h ../cups/sidechannel.h
index d1392ed2a73db86396893ed90e075dbdfe859d24..e8de61c254c9a288566ee466268fbb77d2557438 100644 (file)
@@ -219,7 +219,7 @@ main(int  argc,                             /* I - Number of command-line args */
                    "_ipp-tls._tcp", NULL, browse_callback, devices);
 
   ipps_ref = main_ref;
-  DNSServiceBrowse(&ipp_ref, kDNSServiceFlagsShareConnection, 0,
+  DNSServiceBrowse(&ipps_ref, kDNSServiceFlagsShareConnection, 0,
                    "_ipps._tcp", NULL, browse_callback, devices);
 
   local_fax_ipp_ref = main_ref;
@@ -238,7 +238,7 @@ main(int  argc,                             /* I - Number of command-line args */
                    "_ipp-tls._tcp", NULL, browse_local_callback, devices);
 
   local_ipps_ref = main_ref;
-  DNSServiceBrowse(&local_ipp_ref, kDNSServiceFlagsShareConnection,
+  DNSServiceBrowse(&local_ipps_ref, kDNSServiceFlagsShareConnection,
                    kDNSServiceInterfaceIndexLocalOnly,
                   "_ipps._tcp", NULL, browse_local_callback, devices);
 
index 67d05cfd9c18d87025865ecd8b28b585e81f28ba..f8337bc8848dc0400a4fbf607c48e58792a82dcd 100644 (file)
@@ -2194,15 +2194,15 @@ new_request(
          else if (!strcmp(media_col_sup->values[i].string.text,
                           "media-bottom-margin"))
            ippAddInteger(media_col, IPP_TAG_ZERO, IPP_TAG_INTEGER,
-                         "media-bottom-margin", size->left);
+                         "media-bottom-margin", size->bottom);
          else if (!strcmp(media_col_sup->values[i].string.text,
                           "media-right-margin"))
            ippAddInteger(media_col, IPP_TAG_ZERO, IPP_TAG_INTEGER,
-                         "media-right-margin", size->left);
+                         "media-right-margin", size->right);
          else if (!strcmp(media_col_sup->values[i].string.text,
                           "media-top-margin"))
            ippAddInteger(media_col, IPP_TAG_ZERO, IPP_TAG_INTEGER,
-                         "media-top-margin", size->left);
+                         "media-top-margin", size->top);
          else if (!strcmp(media_col_sup->values[i].string.text,
                           "media-source") && media_source)
            ippAddString(media_col, IPP_TAG_ZERO, IPP_TAG_KEYWORD,
index 2c2d5beaf4cc3a995cde521874ca05820a305e7d..cdb9a66954f092c139dc8e32aa0b84a4a1f7b2b2 100644 (file)
@@ -47,7 +47,7 @@ static int    job_canceled = 0;
  */
 
 static void    sigterm_handler(int sig);
-static void    usage(void);
+static void    usage(void) __attribute__((noreturn));
 static void    walk_cb(const char *oid, const char *data, int datalen,
                        void *context);
 
@@ -569,7 +569,7 @@ main(int  argc,                             /* I - Number of command-line args */
     kill(data_pid, SIGTERM);
     kill(back_pid, SIGTERM);
   }
-  
+
   while ((pid = wait(&status)) > 0)
   {
     if (status)
index de9ba9799f033c6fc8db835992d1189b95f1dc4f..9d43ccaf8175521dd8c17ec223f86ad8818fce0d 100644 (file)
@@ -3,32 +3,32 @@
 lpc.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 lpc.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 lpc.o: ../cups/language.h ../cups/string-private.h ../config.h
-lpc.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-lpc.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-lpc.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-lpc.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-lpc.o: ../cups/thread-private.h
+lpc.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+lpc.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+lpc.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+lpc.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+lpc.o: ../cups/transcode.h ../cups/thread-private.h
 lpq.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 lpq.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 lpq.o: ../cups/language.h ../cups/string-private.h ../config.h
-lpq.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-lpq.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-lpq.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-lpq.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-lpq.o: ../cups/thread-private.h
+lpq.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+lpq.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+lpq.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+lpq.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+lpq.o: ../cups/transcode.h ../cups/thread-private.h
 lpr.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 lpr.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 lpr.o: ../cups/language.h ../cups/string-private.h ../config.h
-lpr.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-lpr.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-lpr.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-lpr.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-lpr.o: ../cups/thread-private.h
+lpr.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+lpr.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+lpr.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+lpr.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+lpr.o: ../cups/transcode.h ../cups/thread-private.h
 lprm.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 lprm.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 lprm.o: ../cups/language.h ../cups/string-private.h ../config.h
-lprm.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-lprm.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-lprm.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-lprm.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-lprm.o: ../cups/thread-private.h
+lprm.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+lprm.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+lprm.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+lprm.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+lprm.o: ../cups/transcode.h ../cups/thread-private.h
index 24e49e423ad2dc008816b24450d6ec9a1550c369..e798cf8c6c4b60b12cf8cfd56de8dc1e05dbf758 100644 (file)
@@ -39,7 +39,7 @@ static http_t *connect_server(const char *, http_t *);
 static int     show_jobs(const char *, http_t *, const char *,
                          const char *, const int, const int);
 static void    show_printer(const char *, http_t *, const char *);
-static void    usage(void);
+static void    usage(void) __attribute__((noreturn));
 
 
 /*
index 9a5f11d5763244f8b604f09c6d7e057566686d4f..9b7f87e8ea4866207400239ab5346022a9a75ea3 100644 (file)
@@ -3,64 +3,73 @@
 help-index.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
 help-index.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 help-index.o: ../cups/array.h ../cups/language.h ../cups/array.h help-index.h
-help-index.o: ../cups/debug-private.h ../cups/language-private.h
-help-index.o: ../cups/transcode.h ../cups/string-private.h ../config.h
-help-index.o: ../cups/dir.h
+help-index.o: ../cups/debug-private.h ../cups/versioning.h
+help-index.o: ../cups/language-private.h ../cups/transcode.h
+help-index.o: ../cups/string-private.h ../config.h ../cups/dir.h
 html.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
 html.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 html.o: ../cups/language.h ../cups/array.h help-index.h
-html.o: ../cups/debug-private.h ../cups/language-private.h
-html.o: ../cups/transcode.h ../cups/string-private.h ../config.h
+html.o: ../cups/debug-private.h ../cups/versioning.h
+html.o: ../cups/language-private.h ../cups/transcode.h
+html.o: ../cups/string-private.h ../config.h
 ipp-var.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
 ipp-var.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 ipp-var.o: ../cups/language.h ../cups/array.h help-index.h
-ipp-var.o: ../cups/debug-private.h ../cups/language-private.h
-ipp-var.o: ../cups/transcode.h ../cups/string-private.h ../config.h
+ipp-var.o: ../cups/debug-private.h ../cups/versioning.h
+ipp-var.o: ../cups/language-private.h ../cups/transcode.h
+ipp-var.o: ../cups/string-private.h ../config.h
 search.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
 search.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 search.o: ../cups/language.h ../cups/array.h help-index.h
-search.o: ../cups/debug-private.h ../cups/language-private.h
-search.o: ../cups/transcode.h ../cups/string-private.h ../config.h
+search.o: ../cups/debug-private.h ../cups/versioning.h
+search.o: ../cups/language-private.h ../cups/transcode.h
+search.o: ../cups/string-private.h ../config.h
 template.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
 template.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 template.o: ../cups/language.h ../cups/array.h help-index.h
-template.o: ../cups/debug-private.h ../cups/language-private.h
-template.o: ../cups/transcode.h ../cups/string-private.h ../config.h
+template.o: ../cups/debug-private.h ../cups/versioning.h
+template.o: ../cups/language-private.h ../cups/transcode.h
+template.o: ../cups/string-private.h ../config.h
 var.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
 var.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
 var.o: ../cups/array.h help-index.h ../cups/debug-private.h
-var.o: ../cups/language-private.h ../cups/transcode.h
+var.o: ../cups/versioning.h ../cups/language-private.h ../cups/transcode.h
 var.o: ../cups/string-private.h ../config.h ../cups/http.h
 var.o: ../cups/md5-private.h
 admin.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
 admin.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 admin.o: ../cups/language.h ../cups/array.h help-index.h
-admin.o: ../cups/debug-private.h ../cups/language-private.h
-admin.o: ../cups/transcode.h ../cups/string-private.h ../config.h
-admin.o: ../cups/adminutil.h ../cups/cups.h ../cups/ppd.h
+admin.o: ../cups/debug-private.h ../cups/versioning.h
+admin.o: ../cups/language-private.h ../cups/transcode.h
+admin.o: ../cups/string-private.h ../config.h ../cups/adminutil.h
+admin.o: ../cups/cups.h ../cups/ppd.h
 classes.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
 classes.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 classes.o: ../cups/language.h ../cups/array.h help-index.h
-classes.o: ../cups/debug-private.h ../cups/language-private.h
-classes.o: ../cups/transcode.h ../cups/string-private.h ../config.h
+classes.o: ../cups/debug-private.h ../cups/versioning.h
+classes.o: ../cups/language-private.h ../cups/transcode.h
+classes.o: ../cups/string-private.h ../config.h
 help.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
 help.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 help.o: ../cups/language.h ../cups/array.h help-index.h
-help.o: ../cups/debug-private.h ../cups/language-private.h
-help.o: ../cups/transcode.h ../cups/string-private.h ../config.h
+help.o: ../cups/debug-private.h ../cups/versioning.h
+help.o: ../cups/language-private.h ../cups/transcode.h
+help.o: ../cups/string-private.h ../config.h
 jobs.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
 jobs.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 jobs.o: ../cups/language.h ../cups/array.h help-index.h
-jobs.o: ../cups/debug-private.h ../cups/language-private.h
-jobs.o: ../cups/transcode.h ../cups/string-private.h ../config.h
+jobs.o: ../cups/debug-private.h ../cups/versioning.h
+jobs.o: ../cups/language-private.h ../cups/transcode.h
+jobs.o: ../cups/string-private.h ../config.h
 makedocset.o: cgi.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
 makedocset.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
 makedocset.o: ../cups/array.h help-index.h
 printers.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
 printers.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 printers.o: ../cups/language.h ../cups/array.h help-index.h
-printers.o: ../cups/debug-private.h ../cups/language-private.h
-printers.o: ../cups/transcode.h ../cups/string-private.h ../config.h
+printers.o: ../cups/debug-private.h ../cups/versioning.h
+printers.o: ../cups/language-private.h ../cups/transcode.h
+printers.o: ../cups/string-private.h ../config.h
 testcgi.o: cgi.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
 testcgi.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
 testcgi.o: ../cups/array.h help-index.h
index 5cfbefb2e5fc4c6aeb75245e11c910e672eb1d67..c48ffeb4d0d76422f08c1d9821ca432b60180a78 100644 (file)
@@ -161,7 +161,8 @@ static int          help_load_file(help_index_t *hi,
 static help_node_t     *help_new_node(const char *filename, const char *anchor,
                                       const char *section, const char *text,
                                       time_t mtime, off_t offset,
-                                      size_t length);
+                                      size_t length)
+                                      __attribute__((nonnull(1,3,4)));
 static int             help_sort_by_name(help_node_t *p1, help_node_t *p2);
 static int             help_sort_by_score(help_node_t *p1, help_node_t *p2);
 static int             help_sort_words(help_word_t *w1, help_word_t *w2);
@@ -177,7 +178,7 @@ helpDeleteIndex(help_index_t *hi)   /* I - Help index */
   help_node_t  *node;                  /* Current node */
 
 
-  DEBUG_printf(("helpDeleteIndex(hi=%p)\n", hi));
+  DEBUG_printf(("helpDeleteIndex(hi=%p)", hi));
 
   if (!hi)
     return;
@@ -209,8 +210,8 @@ helpFindNode(help_index_t *hi,              /* I - Index */
   help_node_t  key;                    /* Search key */
 
 
-  DEBUG_printf(("helpFindNode(hi=%p, filename=\"%s\", anchor=\"%s\")\n",
-                hi, filename ? filename : "(nil)", anchor ? anchor : "(nil)"));
+  DEBUG_printf(("helpFindNode(hi=%p, filename=\"%s\", anchor=\"%s\")",
+                hi, filename, anchor));
 
  /*
   * Range check input...
@@ -259,7 +260,7 @@ helpLoadIndex(const char *hifile,   /* I - Index filename */
   help_word_t  *word;                  /* Current word */
 
 
-  DEBUG_printf(("helpLoadIndex(hifile=\"%s\", directory=\"%s\")\n",
+  DEBUG_printf(("helpLoadIndex(hifile=\"%s\", directory=\"%s\")",
                 hifile, directory));
 
  /*
@@ -464,7 +465,7 @@ helpSaveIndex(help_index_t *hi,             /* I - Index */
   help_word_t  *word;                  /* Current word */
 
 
-  DEBUG_printf(("helpSaveIndex(hi=%p, hifile=\"%s\")\n", hi, hifile));
+  DEBUG_printf(("helpSaveIndex(hi=%p, hifile=\"%s\")", hi, hifile));
 
  /*
   * Try creating a new index file...
@@ -545,9 +546,8 @@ helpSearchIndex(help_index_t *hi,   /* I - Index */
   int          matches;                /* Number of matches */
 
 
-  DEBUG_printf(("helpSearchIndex(hi=%p, query=\"%s\", filename=\"%s\")\n",
-                hi, query ? query : "(nil)",
-               filename ? filename : "(nil)"));
+  DEBUG_printf(("helpSearchIndex(hi=%p, query=\"%s\", filename=\"%s\")",
+                hi, query, filename));
 
  /*
   * Range check...
@@ -670,7 +670,7 @@ help_add_word(help_node_t *n,               /* I - Node */
                key;                    /* Search key */
 
 
-  DEBUG_printf(("help_add_word(n=%p, text=\"%s\")\n", n, text));
+  DEBUG_printf(("2help_add_word(n=%p, text=\"%s\")", n, text));
 
  /*
   * Create the words array as needed...
@@ -723,7 +723,7 @@ help_delete_node(help_node_t *n)    /* I - Node */
   help_word_t  *w;                     /* Current word */
 
 
-  DEBUG_printf(("help_delete_node(n=%p)\n", n));
+  DEBUG_printf(("2help_delete_node(n=%p)", n));
 
   if (!n)
     return;
@@ -758,7 +758,7 @@ help_delete_node(help_node_t *n)    /* I - Node */
 static void
 help_delete_word(help_word_t *w)       /* I - Word */
 {
-  DEBUG_printf(("help_delete_word(w=%p)\n", w));
+  DEBUG_printf(("2help_delete_word(w=%p)", w));
 
   if (!w)
     return;
@@ -789,8 +789,8 @@ help_load_directory(
   help_node_t  *node;                  /* Current node */
 
 
-  DEBUG_printf(("help_load_directory(hi=%p, directory=\"%s\", relative=\"%s\")\n",
-                hi, directory ? directory : "(nil)", relative ? relative : "(nil)"));
+  DEBUG_printf(("2help_load_directory(hi=%p, directory=\"%s\", relative=\"%s\")",
+                hi, directory, relative));
 
  /*
   * Open the directory and scan it...
@@ -901,9 +901,8 @@ help_load_file(
   int          wordlen;                /* Length of word */
 
 
-  DEBUG_printf(("help_load_file(hi=%p, filename=\"%s\", relative=\"%s\", mtime=%ld)\n",
-                hi, filename ? filename : "(nil)",
-               relative ? relative : "(nil)", mtime));
+  DEBUG_printf(("2help_load_file(hi=%p, filename=\"%s\", relative=\"%s\", "
+                "mtime=%ld)", hi, filename, relative, mtime));
 
   if ((fp = cupsFileOpen(filename, "r")) == NULL)
     return (-1);
@@ -1229,11 +1228,9 @@ help_new_node(const char   *filename,    /* I - Filename */
   help_node_t  *n;                     /* Node */
 
 
-  DEBUG_printf(("help_new_node(filename=\"%s\", anchor=\"%s\", text=\"%s\", "
-                "mtime=%ld, offset=%ld, length=%ld)\n",
-                filename ? filename : "(nil)", anchor ? anchor : "(nil)",
-               text ? text : "(nil)", (long)mtime, (long)offset,
-               (long)length));
+  DEBUG_printf(("2help_new_node(filename=\"%s\", anchor=\"%s\", text=\"%s\", "
+                "mtime=%ld, offset=%ld, length=%ld)", filename, anchor, text,
+                (long)mtime, (long)offset, (long)length));
 
   n = (help_node_t *)calloc(1, sizeof(help_node_t));
   if (!n)
@@ -1262,9 +1259,9 @@ help_sort_by_name(help_node_t *n1,        /* I - First node */
   int          diff;                   /* Difference */
 
 
-  DEBUG_printf(("help_sort_by_name(n1=%p(%s#%s), n2=%p(%s#%s)\n",
-                n1, n1->filename, n1->anchor ? n1->anchor : "",
-               n2, n2->filename, n2->anchor ? n2->anchor : ""));
+  DEBUG_printf(("2help_sort_by_name(n1=%p(%s#%s), n2=%p(%s#%s)",
+                n1, n1->filename, n1->anchor,
+               n2, n2->filename, n2->anchor));
 
   if ((diff = strcmp(n1->filename, n2->filename)) != 0)
     return (diff);
@@ -1291,10 +1288,10 @@ help_sort_by_score(help_node_t *n1,     /* I - First node */
   int          diff;                   /* Difference */
 
 
-  DEBUG_printf(("help_sort_by_score(n1=%p(%d \"%s\" \"%s\"), "
-                "n2=%p(%d \"%s\" \"%s\")\n",
-                n1, n1->score, n1->section ? n1->section : "", n1->text,
-                n2, n2->score, n2->section ? n2->section : "", n2->text));
+  DEBUG_printf(("2help_sort_by_score(n1=%p(%d \"%s\" \"%s\"), "
+                "n2=%p(%d \"%s\" \"%s\")",
+                n1, n1->score, n1->section, n1->text,
+                n2, n2->score, n2->section, n2->text));
 
   if (n1->score != n2->score)
     return (n2->score - n1->score);
@@ -1319,7 +1316,7 @@ static int                                /* O - Difference */
 help_sort_words(help_word_t *w1,       /* I - Second word */
                 help_word_t *w2)       /* I - Second word */
 {
-  DEBUG_printf(("help_sort_words(w1=%p(\"%s\"), w2=%p(\"%s\"))\n",
+  DEBUG_printf(("2help_sort_words(w1=%p(\"%s\"), w2=%p(\"%s\"))",
                 w1, w1->text, w2, w2->text));
 
   return (_cups_strcasecmp(w1->text, w2->text));
index f199c4cc891a837ac7dc6dff72463c15ab209ff0..d5e58eb1e313784888fd49a48a77f17a915486e6 100644 (file)
@@ -452,19 +452,19 @@ cgiSetCookie(const char *name,            /* I - Name */
 
   printf("Set-Cookie: %s=%s;", name, value);
   if (path)
-    printf("; path=%s", path);
+    printf(" path=%s;", path);
   if (domain)
-    printf("; domain=%s", domain);
+    printf(" domain=%s;", domain);
   if (expires)
   {
     char       date[256];              /* Date string */
 
-    printf("; expires=%s", httpGetDateString2(expires, date, sizeof(date)));
+    printf(" expires=%s;", httpGetDateString2(expires, date, sizeof(date)));
   }
   if (secure)
-    puts("; secure;");
+    puts(" secure;");
   else
-    puts(";");
+    putchar('\n');
 }
 
 
index 8699f6e55dc77923f395e51211cded7fa9f162a2..b00b055718aef267e25372f56aea9597d6d83acd 100644 (file)
@@ -100,9 +100,6 @@ AC_SUBST(PIEFLAGS)
 RELROFLAGS=""
 AC_SUBST(RELROFLAGS)
 
-PHPOPTIONS=""
-AC_SUBST(PHPOPTIONS)
-
 if test -n "$GCC"; then
        # Add GCC-specific compiler options...
        if test -z "$OPTIM"; then
@@ -156,9 +153,7 @@ if test -n "$GCC"; then
 
                # Additional warning options for development testing...
                if test -d .svn; then
-                       OPTIM="-Wshadow $OPTIM"
-                       CFLAGS="-Werror-implicit-function-declaration $CFLAGS"
-                       PHPOPTIONS="-Wno-shadow"
+                       OPTIM="-Wshadow -Werror $OPTIM"
                else
                        AC_MSG_CHECKING(if GCC supports -Wno-tautological-compare)
                        OLDCFLAGS="$CFLAGS"
index 5e6359f7de3c0415394911de4806bf0097fedacb..a1042de8a46e1ba3df04d6f16146913cd9fd05ce 100644 (file)
 
 adminutil.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 adminutil.o: array.h language.h string-private.h ../config.h debug-private.h
-adminutil.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-adminutil.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-adminutil.o: language-private.h ../cups/transcode.h thread-private.h
-adminutil.o: adminutil.h
-array.o: string-private.h ../config.h debug-private.h array-private.h array.h
-array.o: versioning.h
+adminutil.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+adminutil.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+adminutil.o: ipp-private.h ../cups/ipp.h language-private.h
+adminutil.o: ../cups/transcode.h thread-private.h adminutil.h
+array.o: string-private.h ../config.h debug-private.h ../cups/versioning.h
+array.o: array-private.h array.h versioning.h
 attr.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 attr.o: array.h language.h string-private.h ../config.h debug-private.h
-attr.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-attr.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-attr.o: language-private.h ../cups/transcode.h thread-private.h
+attr.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+attr.o: http-private.h ../cups/http.h md5-private.h ipp-private.h
+attr.o: ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 auth.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 auth.o: array.h language.h string-private.h ../config.h debug-private.h
-auth.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-auth.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-auth.o: language-private.h ../cups/transcode.h thread-private.h
+auth.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+auth.o: http-private.h ../cups/http.h md5-private.h ipp-private.h
+auth.o: ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 backchannel.o: cups.h
 backend.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 backend.o: array.h language.h string-private.h ../config.h debug-private.h
-backend.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-backend.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-backend.o: language-private.h ../cups/transcode.h thread-private.h backend.h
+backend.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+backend.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+backend.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+backend.o: thread-private.h backend.h
 conflicts.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 conflicts.o: array.h language.h string-private.h ../config.h debug-private.h
-conflicts.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-conflicts.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-conflicts.o: language-private.h ../cups/transcode.h thread-private.h
+conflicts.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+conflicts.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+conflicts.o: ipp-private.h ../cups/ipp.h language-private.h
+conflicts.o: ../cups/transcode.h thread-private.h
 custom.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 custom.o: array.h language.h string-private.h ../config.h debug-private.h
-custom.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-custom.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-custom.o: language-private.h ../cups/transcode.h thread-private.h
+custom.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+custom.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+custom.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+custom.o: thread-private.h
 debug.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 debug.o: array.h language.h string-private.h ../config.h debug-private.h
-debug.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-debug.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-debug.o: language-private.h ../cups/transcode.h thread-private.h
+debug.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+debug.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+debug.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+debug.o: thread-private.h
 dest.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 dest.o: array.h language.h string-private.h ../config.h debug-private.h
-dest.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-dest.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-dest.o: language-private.h ../cups/transcode.h thread-private.h
-dir.o: string-private.h ../config.h debug-private.h dir.h versioning.h
+dest.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+dest.o: http-private.h ../cups/http.h md5-private.h ipp-private.h
+dest.o: ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
+dir.o: string-private.h ../config.h debug-private.h ../cups/versioning.h
+dir.o: dir.h versioning.h
 emit.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 emit.o: array.h language.h string-private.h ../config.h debug-private.h
-emit.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-emit.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-emit.o: language-private.h ../cups/transcode.h thread-private.h
+emit.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+emit.o: http-private.h ../cups/http.h md5-private.h ipp-private.h
+emit.o: ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 encode.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 encode.o: array.h language.h string-private.h ../config.h debug-private.h
-encode.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-encode.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-encode.o: language-private.h ../cups/transcode.h thread-private.h
+encode.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+encode.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+encode.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+encode.o: thread-private.h
 file.o: file-private.h cups-private.h ../cups/cups.h file.h versioning.h
 file.o: ipp.h http.h array.h language.h string-private.h ../config.h
-file.o: debug-private.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
-file.o: http-private.h ../cups/http.h md5-private.h ipp-private.h
-file.o: ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
+file.o: debug-private.h ../cups/versioning.h ppd-private.h ../cups/ppd.h
+file.o: cups.h pwg-private.h http-private.h ../cups/http.h md5-private.h
+file.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+file.o: thread-private.h
 getdevices.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 getdevices.o: array.h language.h string-private.h ../config.h debug-private.h
-getdevices.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-getdevices.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-getdevices.o: language-private.h ../cups/transcode.h thread-private.h
+getdevices.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+getdevices.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+getdevices.o: ipp-private.h ../cups/ipp.h language-private.h
+getdevices.o: ../cups/transcode.h thread-private.h
 getifaddrs.o: http-private.h ../config.h ../cups/http.h md5-private.h
 getifaddrs.o: ipp-private.h ../cups/ipp.h
 getputfile.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 getputfile.o: array.h language.h string-private.h ../config.h debug-private.h
-getputfile.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-getputfile.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-getputfile.o: language-private.h ../cups/transcode.h thread-private.h
+getputfile.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+getputfile.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+getputfile.o: ipp-private.h ../cups/ipp.h language-private.h
+getputfile.o: ../cups/transcode.h thread-private.h
 globals.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 globals.o: array.h language.h string-private.h ../config.h debug-private.h
-globals.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-globals.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-globals.o: language-private.h ../cups/transcode.h thread-private.h
+globals.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+globals.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+globals.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+globals.o: thread-private.h
 http.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 http.o: array.h language.h string-private.h ../config.h debug-private.h
-http.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-http.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-http.o: language-private.h ../cups/transcode.h thread-private.h
+http.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+http.o: http-private.h ../cups/http.h md5-private.h ipp-private.h
+http.o: ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 http-addr.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 http-addr.o: array.h language.h string-private.h ../config.h debug-private.h
-http-addr.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-http-addr.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-http-addr.o: language-private.h ../cups/transcode.h thread-private.h
+http-addr.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+http-addr.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+http-addr.o: ipp-private.h ../cups/ipp.h language-private.h
+http-addr.o: ../cups/transcode.h thread-private.h
 http-addrlist.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h
 http-addrlist.o: http.h array.h language.h string-private.h ../config.h
-http-addrlist.o: debug-private.h ppd-private.h ../cups/ppd.h cups.h
-http-addrlist.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
-http-addrlist.o: ipp-private.h ../cups/ipp.h language-private.h
-http-addrlist.o: ../cups/transcode.h thread-private.h
+http-addrlist.o: debug-private.h ../cups/versioning.h ppd-private.h
+http-addrlist.o: ../cups/ppd.h cups.h pwg-private.h http-private.h
+http-addrlist.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
+http-addrlist.o: language-private.h ../cups/transcode.h thread-private.h
 http-support.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h
 http-support.o: http.h array.h language.h string-private.h ../config.h
-http-support.o: debug-private.h ppd-private.h ../cups/ppd.h cups.h
-http-support.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
-http-support.o: ipp-private.h ../cups/ipp.h language-private.h
-http-support.o: ../cups/transcode.h thread-private.h
+http-support.o: debug-private.h ../cups/versioning.h ppd-private.h
+http-support.o: ../cups/ppd.h cups.h pwg-private.h http-private.h
+http-support.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
+http-support.o: language-private.h ../cups/transcode.h thread-private.h
 ipp.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h array.h
-ipp.o: language.h string-private.h ../config.h debug-private.h ppd-private.h
-ipp.o: ../cups/ppd.h cups.h pwg-private.h http-private.h ../cups/http.h
-ipp.o: md5-private.h ipp-private.h ../cups/ipp.h language-private.h
-ipp.o: ../cups/transcode.h thread-private.h
+ipp.o: language.h string-private.h ../config.h debug-private.h
+ipp.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+ipp.o: http-private.h ../cups/http.h md5-private.h ipp-private.h
+ipp.o: ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 ipp-support.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 ipp-support.o: array.h language.h string-private.h ../config.h
-ipp-support.o: debug-private.h ppd-private.h ../cups/ppd.h cups.h
-ipp-support.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
-ipp-support.o: ipp-private.h ../cups/ipp.h language-private.h
-ipp-support.o: ../cups/transcode.h thread-private.h
+ipp-support.o: debug-private.h ../cups/versioning.h ppd-private.h
+ipp-support.o: ../cups/ppd.h cups.h pwg-private.h http-private.h
+ipp-support.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
+ipp-support.o: language-private.h ../cups/transcode.h thread-private.h
 langprintf.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 langprintf.o: array.h language.h string-private.h ../config.h debug-private.h
-langprintf.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-langprintf.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-langprintf.o: language-private.h ../cups/transcode.h thread-private.h
+langprintf.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+langprintf.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+langprintf.o: ipp-private.h ../cups/ipp.h language-private.h
+langprintf.o: ../cups/transcode.h thread-private.h
 language.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 language.o: array.h language.h string-private.h ../config.h debug-private.h
-language.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-language.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-language.o: language-private.h ../cups/transcode.h thread-private.h
+language.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+language.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+language.o: ipp-private.h ../cups/ipp.h language-private.h
+language.o: ../cups/transcode.h thread-private.h
 localize.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 localize.o: array.h language.h string-private.h ../config.h debug-private.h
-localize.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-localize.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-localize.o: language-private.h ../cups/transcode.h thread-private.h
+localize.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+localize.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+localize.o: ipp-private.h ../cups/ipp.h language-private.h
+localize.o: ../cups/transcode.h thread-private.h
 mark.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 mark.o: array.h language.h string-private.h ../config.h debug-private.h
-mark.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-mark.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-mark.o: language-private.h ../cups/transcode.h thread-private.h
+mark.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+mark.o: http-private.h ../cups/http.h md5-private.h ipp-private.h
+mark.o: ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 md5.o: md5-private.h string-private.h ../config.h
 md5passwd.o: http-private.h ../config.h ../cups/http.h md5-private.h
 md5passwd.o: ipp-private.h ../cups/ipp.h string-private.h
 notify.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 notify.o: array.h language.h string-private.h ../config.h debug-private.h
-notify.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-notify.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-notify.o: language-private.h ../cups/transcode.h thread-private.h
+notify.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+notify.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+notify.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+notify.o: thread-private.h
 options.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 options.o: array.h language.h string-private.h ../config.h debug-private.h
-options.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-options.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-options.o: language-private.h ../cups/transcode.h thread-private.h
-page.o: string-private.h ../config.h debug-private.h ppd.h cups.h array.h
-page.o: versioning.h file.h
+options.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+options.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+options.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+options.o: thread-private.h
+page.o: string-private.h ../config.h debug-private.h ../cups/versioning.h
+page.o: ppd.h cups.h array.h versioning.h file.h
 ppd.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h array.h
-ppd.o: language.h string-private.h ../config.h debug-private.h ppd-private.h
-ppd.o: ../cups/ppd.h cups.h pwg-private.h http-private.h ../cups/http.h
-ppd.o: md5-private.h ipp-private.h ../cups/ipp.h language-private.h
-ppd.o: ../cups/transcode.h thread-private.h
+ppd.o: language.h string-private.h ../config.h debug-private.h
+ppd.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+ppd.o: http-private.h ../cups/http.h md5-private.h ipp-private.h
+ppd.o: ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 ppd-cache.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 ppd-cache.o: array.h language.h string-private.h ../config.h debug-private.h
-ppd-cache.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-ppd-cache.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-ppd-cache.o: language-private.h ../cups/transcode.h thread-private.h
+ppd-cache.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+ppd-cache.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+ppd-cache.o: ipp-private.h ../cups/ipp.h language-private.h
+ppd-cache.o: ../cups/transcode.h thread-private.h
 pwg-media.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 pwg-media.o: array.h language.h string-private.h ../config.h debug-private.h
-pwg-media.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-pwg-media.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-pwg-media.o: language-private.h ../cups/transcode.h thread-private.h
+pwg-media.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+pwg-media.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+pwg-media.o: ipp-private.h ../cups/ipp.h language-private.h
+pwg-media.o: ../cups/transcode.h thread-private.h
 request.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 request.o: array.h language.h string-private.h ../config.h debug-private.h
-request.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-request.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-request.o: language-private.h ../cups/transcode.h thread-private.h
+request.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+request.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+request.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+request.o: thread-private.h
 sidechannel.o: sidechannel.h versioning.h string-private.h ../config.h
-sidechannel.o: debug-private.h
+sidechannel.o: debug-private.h ../cups/versioning.h
 snmp.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 snmp.o: array.h language.h string-private.h ../config.h debug-private.h
-snmp.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-snmp.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-snmp.o: language-private.h ../cups/transcode.h thread-private.h
+snmp.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+snmp.o: http-private.h ../cups/http.h md5-private.h ipp-private.h
+snmp.o: ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 snmp.o: snmp-private.h
 snprintf.o: string-private.h ../config.h
-string.o: string-private.h ../config.h debug-private.h thread-private.h
-string.o: array.h versioning.h
+string.o: string-private.h ../config.h debug-private.h ../cups/versioning.h
+string.o: thread-private.h array.h versioning.h
 tempfile.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 tempfile.o: array.h language.h string-private.h ../config.h debug-private.h
-tempfile.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-tempfile.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-tempfile.o: language-private.h ../cups/transcode.h thread-private.h
+tempfile.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+tempfile.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+tempfile.o: ipp-private.h ../cups/ipp.h language-private.h
+tempfile.o: ../cups/transcode.h thread-private.h
 thread.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 thread.o: array.h language.h string-private.h ../config.h debug-private.h
-thread.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-thread.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-thread.o: language-private.h ../cups/transcode.h thread-private.h
+thread.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+thread.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+thread.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+thread.o: thread-private.h
 transcode.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 transcode.o: array.h language.h string-private.h ../config.h debug-private.h
-transcode.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-transcode.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-transcode.o: language-private.h ../cups/transcode.h thread-private.h
+transcode.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+transcode.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+transcode.o: ipp-private.h ../cups/ipp.h language-private.h
+transcode.o: ../cups/transcode.h thread-private.h
 usersys.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 usersys.o: array.h language.h string-private.h ../config.h debug-private.h
-usersys.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-usersys.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-usersys.o: language-private.h ../cups/transcode.h thread-private.h
+usersys.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+usersys.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+usersys.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+usersys.o: thread-private.h
 util.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 util.o: array.h language.h string-private.h ../config.h debug-private.h
-util.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-util.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-util.o: language-private.h ../cups/transcode.h thread-private.h
+util.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+util.o: http-private.h ../cups/http.h md5-private.h ipp-private.h
+util.o: ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 testadmin.o: adminutil.h cups.h string-private.h ../config.h
-testarray.o: string-private.h ../config.h debug-private.h array.h
-testarray.o: versioning.h dir.h
+testarray.o: string-private.h ../config.h debug-private.h
+testarray.o: ../cups/versioning.h array.h versioning.h dir.h
 testconflicts.o: cups.h ppd.h array.h versioning.h file.h string-private.h
 testconflicts.o: ../config.h
 testcups.o: string-private.h ../config.h cups.h ppd.h array.h versioning.h
 testcups.o: file.h
-testfile.o: string-private.h ../config.h debug-private.h file.h versioning.h
+testfile.o: string-private.h ../config.h debug-private.h ../cups/versioning.h
+testfile.o: file.h versioning.h
 testhttp.o: string-private.h ../config.h http-private.h ../cups/http.h
 testhttp.o: md5-private.h ipp-private.h ../cups/ipp.h
 testi18n.o: string-private.h ../config.h language-private.h
@@ -217,243 +241,269 @@ testipp.o: file.h versioning.h string-private.h ../config.h ipp-private.h
 testipp.o: ../cups/ipp.h
 testoptions.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testoptions.o: array.h language.h string-private.h ../config.h
-testoptions.o: debug-private.h ppd-private.h ../cups/ppd.h cups.h
-testoptions.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
-testoptions.o: ipp-private.h ../cups/ipp.h language-private.h
-testoptions.o: ../cups/transcode.h thread-private.h
+testoptions.o: debug-private.h ../cups/versioning.h ppd-private.h
+testoptions.o: ../cups/ppd.h cups.h pwg-private.h http-private.h
+testoptions.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
+testoptions.o: language-private.h ../cups/transcode.h thread-private.h
 testlang.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testlang.o: array.h language.h string-private.h ../config.h debug-private.h
-testlang.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-testlang.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-testlang.o: language-private.h ../cups/transcode.h thread-private.h
+testlang.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+testlang.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+testlang.o: ipp-private.h ../cups/ipp.h language-private.h
+testlang.o: ../cups/transcode.h thread-private.h
 testppd.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testppd.o: array.h language.h string-private.h ../config.h debug-private.h
-testppd.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-testppd.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-testppd.o: language-private.h ../cups/transcode.h thread-private.h
+testppd.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+testppd.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+testppd.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+testppd.o: thread-private.h
 testpwg.o: ppd-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testpwg.o: array.h language.h ../cups/ppd.h cups.h pwg-private.h
 testpwg.o: file-private.h cups-private.h string-private.h ../config.h
-testpwg.o: debug-private.h http-private.h ../cups/http.h md5-private.h
-testpwg.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
-testpwg.o: thread-private.h
+testpwg.o: debug-private.h ../cups/versioning.h http-private.h ../cups/http.h
+testpwg.o: md5-private.h ipp-private.h ../cups/ipp.h language-private.h
+testpwg.o: ../cups/transcode.h thread-private.h
 testsnmp.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testsnmp.o: array.h language.h string-private.h ../config.h debug-private.h
-testsnmp.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-testsnmp.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-testsnmp.o: language-private.h ../cups/transcode.h thread-private.h
-testsnmp.o: snmp-private.h
+testsnmp.o: ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+testsnmp.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
+testsnmp.o: ipp-private.h ../cups/ipp.h language-private.h
+testsnmp.o: ../cups/transcode.h thread-private.h snmp-private.h
 # DO NOT DELETE
 
 adminutil.32.o: adminutil.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 adminutil.32.o: adminutil.c  array.h language.h string-private.h ../config.h debug-private.h
-adminutil.32.o: adminutil.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-adminutil.32.o: adminutil.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-adminutil.32.o: adminutil.c  language-private.h ../cups/transcode.h thread-private.h
-adminutil.32.o: adminutil.c  adminutil.h
-array.32.o: array.c  string-private.h ../config.h debug-private.h array-private.h array.h
-array.32.o: array.c  versioning.h
+adminutil.32.o: adminutil.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+adminutil.32.o: adminutil.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+adminutil.32.o: adminutil.c  ipp-private.h ../cups/ipp.h language-private.h
+adminutil.32.o: adminutil.c  ../cups/transcode.h thread-private.h adminutil.h
+array.32.o: array.c  string-private.h ../config.h debug-private.h ../cups/versioning.h
+array.32.o: array.c  array-private.h array.h versioning.h
 attr.32.o: attr.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 attr.32.o: attr.c  array.h language.h string-private.h ../config.h debug-private.h
-attr.32.o: attr.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-attr.32.o: attr.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-attr.32.o: attr.c  language-private.h ../cups/transcode.h thread-private.h
+attr.32.o: attr.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+attr.32.o: attr.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+attr.32.o: attr.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 auth.32.o: auth.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 auth.32.o: auth.c  array.h language.h string-private.h ../config.h debug-private.h
-auth.32.o: auth.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-auth.32.o: auth.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-auth.32.o: auth.c  language-private.h ../cups/transcode.h thread-private.h
+auth.32.o: auth.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+auth.32.o: auth.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+auth.32.o: auth.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 backchannel.32.o: backchannel.c  cups.h
 backend.32.o: backend.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 backend.32.o: backend.c  array.h language.h string-private.h ../config.h debug-private.h
-backend.32.o: backend.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-backend.32.o: backend.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-backend.32.o: backend.c  language-private.h ../cups/transcode.h thread-private.h backend.h
+backend.32.o: backend.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+backend.32.o: backend.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+backend.32.o: backend.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+backend.32.o: backend.c  thread-private.h backend.h
 conflicts.32.o: conflicts.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 conflicts.32.o: conflicts.c  array.h language.h string-private.h ../config.h debug-private.h
-conflicts.32.o: conflicts.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-conflicts.32.o: conflicts.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-conflicts.32.o: conflicts.c  language-private.h ../cups/transcode.h thread-private.h
+conflicts.32.o: conflicts.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+conflicts.32.o: conflicts.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+conflicts.32.o: conflicts.c  ipp-private.h ../cups/ipp.h language-private.h
+conflicts.32.o: conflicts.c  ../cups/transcode.h thread-private.h
 custom.32.o: custom.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 custom.32.o: custom.c  array.h language.h string-private.h ../config.h debug-private.h
-custom.32.o: custom.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-custom.32.o: custom.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-custom.32.o: custom.c  language-private.h ../cups/transcode.h thread-private.h
+custom.32.o: custom.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+custom.32.o: custom.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+custom.32.o: custom.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+custom.32.o: custom.c  thread-private.h
 debug.32.o: debug.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 debug.32.o: debug.c  array.h language.h string-private.h ../config.h debug-private.h
-debug.32.o: debug.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-debug.32.o: debug.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-debug.32.o: debug.c  language-private.h ../cups/transcode.h thread-private.h
+debug.32.o: debug.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+debug.32.o: debug.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+debug.32.o: debug.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+debug.32.o: debug.c  thread-private.h
 dest.32.o: dest.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 dest.32.o: dest.c  array.h language.h string-private.h ../config.h debug-private.h
-dest.32.o: dest.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-dest.32.o: dest.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-dest.32.o: dest.c  language-private.h ../cups/transcode.h thread-private.h
-dir.32.o: dir.c  string-private.h ../config.h debug-private.h dir.h versioning.h
+dest.32.o: dest.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+dest.32.o: dest.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+dest.32.o: dest.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
+dir.32.o: dir.c  string-private.h ../config.h debug-private.h ../cups/versioning.h
+dir.32.o: dir.c  dir.h versioning.h
 emit.32.o: emit.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 emit.32.o: emit.c  array.h language.h string-private.h ../config.h debug-private.h
-emit.32.o: emit.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-emit.32.o: emit.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-emit.32.o: emit.c  language-private.h ../cups/transcode.h thread-private.h
+emit.32.o: emit.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+emit.32.o: emit.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+emit.32.o: emit.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 encode.32.o: encode.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 encode.32.o: encode.c  array.h language.h string-private.h ../config.h debug-private.h
-encode.32.o: encode.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-encode.32.o: encode.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-encode.32.o: encode.c  language-private.h ../cups/transcode.h thread-private.h
+encode.32.o: encode.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+encode.32.o: encode.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+encode.32.o: encode.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+encode.32.o: encode.c  thread-private.h
 file.32.o: file.c  file-private.h cups-private.h ../cups/cups.h file.h versioning.h
 file.32.o: file.c  ipp.h http.h array.h language.h string-private.h ../config.h
-file.32.o: file.c  debug-private.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
-file.32.o: file.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
-file.32.o: file.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
+file.32.o: file.c  debug-private.h ../cups/versioning.h ppd-private.h ../cups/ppd.h
+file.32.o: file.c  cups.h pwg-private.h http-private.h ../cups/http.h md5-private.h
+file.32.o: file.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+file.32.o: file.c  thread-private.h
 getdevices.32.o: getdevices.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 getdevices.32.o: getdevices.c  array.h language.h string-private.h ../config.h debug-private.h
-getdevices.32.o: getdevices.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-getdevices.32.o: getdevices.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-getdevices.32.o: getdevices.c  language-private.h ../cups/transcode.h thread-private.h
+getdevices.32.o: getdevices.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+getdevices.32.o: getdevices.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+getdevices.32.o: getdevices.c  ipp-private.h ../cups/ipp.h language-private.h
+getdevices.32.o: getdevices.c  ../cups/transcode.h thread-private.h
 getifaddrs.32.o: getifaddrs.c  http-private.h ../config.h ../cups/http.h md5-private.h
 getifaddrs.32.o: getifaddrs.c  ipp-private.h ../cups/ipp.h
 getputfile.32.o: getputfile.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 getputfile.32.o: getputfile.c  array.h language.h string-private.h ../config.h debug-private.h
-getputfile.32.o: getputfile.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-getputfile.32.o: getputfile.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-getputfile.32.o: getputfile.c  language-private.h ../cups/transcode.h thread-private.h
+getputfile.32.o: getputfile.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+getputfile.32.o: getputfile.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+getputfile.32.o: getputfile.c  ipp-private.h ../cups/ipp.h language-private.h
+getputfile.32.o: getputfile.c  ../cups/transcode.h thread-private.h
 globals.32.o: globals.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 globals.32.o: globals.c  array.h language.h string-private.h ../config.h debug-private.h
-globals.32.o: globals.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-globals.32.o: globals.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-globals.32.o: globals.c  language-private.h ../cups/transcode.h thread-private.h
+globals.32.o: globals.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+globals.32.o: globals.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+globals.32.o: globals.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+globals.32.o: globals.c  thread-private.h
 http.32.o: http.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 http.32.o: http.c  array.h language.h string-private.h ../config.h debug-private.h
-http.32.o: http.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-http.32.o: http.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-http.32.o: http.c  language-private.h ../cups/transcode.h thread-private.h
+http.32.o: http.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+http.32.o: http.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+http.32.o: http.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 http-addr.32.o: http-addr.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 http-addr.32.o: http-addr.c  array.h language.h string-private.h ../config.h debug-private.h
-http-addr.32.o: http-addr.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-http-addr.32.o: http-addr.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-http-addr.32.o: http-addr.c  language-private.h ../cups/transcode.h thread-private.h
+http-addr.32.o: http-addr.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+http-addr.32.o: http-addr.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+http-addr.32.o: http-addr.c  ipp-private.h ../cups/ipp.h language-private.h
+http-addr.32.o: http-addr.c  ../cups/transcode.h thread-private.h
 http-addrlist.32.o: http-addrlist.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h
 http-addrlist.32.o: http-addrlist.c  http.h array.h language.h string-private.h ../config.h
-http-addrlist.32.o: http-addrlist.c  debug-private.h ppd-private.h ../cups/ppd.h cups.h
-http-addrlist.32.o: http-addrlist.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
-http-addrlist.32.o: http-addrlist.c  ipp-private.h ../cups/ipp.h language-private.h
-http-addrlist.32.o: http-addrlist.c  ../cups/transcode.h thread-private.h
+http-addrlist.32.o: http-addrlist.c  debug-private.h ../cups/versioning.h ppd-private.h
+http-addrlist.32.o: http-addrlist.c  ../cups/ppd.h cups.h pwg-private.h http-private.h
+http-addrlist.32.o: http-addrlist.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
+http-addrlist.32.o: http-addrlist.c  language-private.h ../cups/transcode.h thread-private.h
 http-support.32.o: http-support.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h
 http-support.32.o: http-support.c  http.h array.h language.h string-private.h ../config.h
-http-support.32.o: http-support.c  debug-private.h ppd-private.h ../cups/ppd.h cups.h
-http-support.32.o: http-support.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
-http-support.32.o: http-support.c  ipp-private.h ../cups/ipp.h language-private.h
-http-support.32.o: http-support.c  ../cups/transcode.h thread-private.h
+http-support.32.o: http-support.c  debug-private.h ../cups/versioning.h ppd-private.h
+http-support.32.o: http-support.c  ../cups/ppd.h cups.h pwg-private.h http-private.h
+http-support.32.o: http-support.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
+http-support.32.o: http-support.c  language-private.h ../cups/transcode.h thread-private.h
 ipp.32.o: ipp.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h array.h
-ipp.32.o: ipp.c  language.h string-private.h ../config.h debug-private.h ppd-private.h
-ipp.32.o: ipp.c  ../cups/ppd.h cups.h pwg-private.h http-private.h ../cups/http.h
-ipp.32.o: ipp.c  md5-private.h ipp-private.h ../cups/ipp.h language-private.h
-ipp.32.o: ipp.c  ../cups/transcode.h thread-private.h
+ipp.32.o: ipp.c  language.h string-private.h ../config.h debug-private.h
+ipp.32.o: ipp.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+ipp.32.o: ipp.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+ipp.32.o: ipp.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 ipp-support.32.o: ipp-support.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 ipp-support.32.o: ipp-support.c  array.h language.h string-private.h ../config.h
-ipp-support.32.o: ipp-support.c  debug-private.h ppd-private.h ../cups/ppd.h cups.h
-ipp-support.32.o: ipp-support.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
-ipp-support.32.o: ipp-support.c  ipp-private.h ../cups/ipp.h language-private.h
-ipp-support.32.o: ipp-support.c  ../cups/transcode.h thread-private.h
+ipp-support.32.o: ipp-support.c  debug-private.h ../cups/versioning.h ppd-private.h
+ipp-support.32.o: ipp-support.c  ../cups/ppd.h cups.h pwg-private.h http-private.h
+ipp-support.32.o: ipp-support.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
+ipp-support.32.o: ipp-support.c  language-private.h ../cups/transcode.h thread-private.h
 langprintf.32.o: langprintf.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 langprintf.32.o: langprintf.c  array.h language.h string-private.h ../config.h debug-private.h
-langprintf.32.o: langprintf.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-langprintf.32.o: langprintf.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-langprintf.32.o: langprintf.c  language-private.h ../cups/transcode.h thread-private.h
+langprintf.32.o: langprintf.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+langprintf.32.o: langprintf.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+langprintf.32.o: langprintf.c  ipp-private.h ../cups/ipp.h language-private.h
+langprintf.32.o: langprintf.c  ../cups/transcode.h thread-private.h
 language.32.o: language.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 language.32.o: language.c  array.h language.h string-private.h ../config.h debug-private.h
-language.32.o: language.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-language.32.o: language.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-language.32.o: language.c  language-private.h ../cups/transcode.h thread-private.h
+language.32.o: language.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+language.32.o: language.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+language.32.o: language.c  ipp-private.h ../cups/ipp.h language-private.h
+language.32.o: language.c  ../cups/transcode.h thread-private.h
 localize.32.o: localize.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 localize.32.o: localize.c  array.h language.h string-private.h ../config.h debug-private.h
-localize.32.o: localize.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-localize.32.o: localize.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-localize.32.o: localize.c  language-private.h ../cups/transcode.h thread-private.h
+localize.32.o: localize.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+localize.32.o: localize.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+localize.32.o: localize.c  ipp-private.h ../cups/ipp.h language-private.h
+localize.32.o: localize.c  ../cups/transcode.h thread-private.h
 mark.32.o: mark.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 mark.32.o: mark.c  array.h language.h string-private.h ../config.h debug-private.h
-mark.32.o: mark.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-mark.32.o: mark.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-mark.32.o: mark.c  language-private.h ../cups/transcode.h thread-private.h
+mark.32.o: mark.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+mark.32.o: mark.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+mark.32.o: mark.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 md5.32.o: md5.c  md5-private.h string-private.h ../config.h
 md5passwd.32.o: md5passwd.c  http-private.h ../config.h ../cups/http.h md5-private.h
 md5passwd.32.o: md5passwd.c  ipp-private.h ../cups/ipp.h string-private.h
 notify.32.o: notify.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 notify.32.o: notify.c  array.h language.h string-private.h ../config.h debug-private.h
-notify.32.o: notify.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-notify.32.o: notify.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-notify.32.o: notify.c  language-private.h ../cups/transcode.h thread-private.h
+notify.32.o: notify.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+notify.32.o: notify.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+notify.32.o: notify.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+notify.32.o: notify.c  thread-private.h
 options.32.o: options.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 options.32.o: options.c  array.h language.h string-private.h ../config.h debug-private.h
-options.32.o: options.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-options.32.o: options.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-options.32.o: options.c  language-private.h ../cups/transcode.h thread-private.h
-page.32.o: page.c  string-private.h ../config.h debug-private.h ppd.h cups.h array.h
-page.32.o: page.c  versioning.h file.h
+options.32.o: options.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+options.32.o: options.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+options.32.o: options.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+options.32.o: options.c  thread-private.h
+page.32.o: page.c  string-private.h ../config.h debug-private.h ../cups/versioning.h
+page.32.o: page.c  ppd.h cups.h array.h versioning.h file.h
 ppd.32.o: ppd.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h array.h
-ppd.32.o: ppd.c  language.h string-private.h ../config.h debug-private.h ppd-private.h
-ppd.32.o: ppd.c  ../cups/ppd.h cups.h pwg-private.h http-private.h ../cups/http.h
-ppd.32.o: ppd.c  md5-private.h ipp-private.h ../cups/ipp.h language-private.h
-ppd.32.o: ppd.c  ../cups/transcode.h thread-private.h
+ppd.32.o: ppd.c  language.h string-private.h ../config.h debug-private.h
+ppd.32.o: ppd.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+ppd.32.o: ppd.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+ppd.32.o: ppd.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 ppd-cache.32.o: ppd-cache.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 ppd-cache.32.o: ppd-cache.c  array.h language.h string-private.h ../config.h debug-private.h
-ppd-cache.32.o: ppd-cache.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-ppd-cache.32.o: ppd-cache.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-ppd-cache.32.o: ppd-cache.c  language-private.h ../cups/transcode.h thread-private.h
+ppd-cache.32.o: ppd-cache.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+ppd-cache.32.o: ppd-cache.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+ppd-cache.32.o: ppd-cache.c  ipp-private.h ../cups/ipp.h language-private.h
+ppd-cache.32.o: ppd-cache.c  ../cups/transcode.h thread-private.h
 pwg-media.32.o: pwg-media.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 pwg-media.32.o: pwg-media.c  array.h language.h string-private.h ../config.h debug-private.h
-pwg-media.32.o: pwg-media.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-pwg-media.32.o: pwg-media.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-pwg-media.32.o: pwg-media.c  language-private.h ../cups/transcode.h thread-private.h
+pwg-media.32.o: pwg-media.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+pwg-media.32.o: pwg-media.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+pwg-media.32.o: pwg-media.c  ipp-private.h ../cups/ipp.h language-private.h
+pwg-media.32.o: pwg-media.c  ../cups/transcode.h thread-private.h
 request.32.o: request.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 request.32.o: request.c  array.h language.h string-private.h ../config.h debug-private.h
-request.32.o: request.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-request.32.o: request.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-request.32.o: request.c  language-private.h ../cups/transcode.h thread-private.h
+request.32.o: request.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+request.32.o: request.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+request.32.o: request.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+request.32.o: request.c  thread-private.h
 sidechannel.32.o: sidechannel.c  sidechannel.h versioning.h string-private.h ../config.h
-sidechannel.32.o: sidechannel.c  debug-private.h
+sidechannel.32.o: sidechannel.c  debug-private.h ../cups/versioning.h
 snmp.32.o: snmp.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 snmp.32.o: snmp.c  array.h language.h string-private.h ../config.h debug-private.h
-snmp.32.o: snmp.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-snmp.32.o: snmp.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-snmp.32.o: snmp.c  language-private.h ../cups/transcode.h thread-private.h
+snmp.32.o: snmp.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+snmp.32.o: snmp.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+snmp.32.o: snmp.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 snmp.32.o: snmp.c  snmp-private.h
 snprintf.32.o: snprintf.c  string-private.h ../config.h
-string.32.o: string.c  string-private.h ../config.h debug-private.h thread-private.h
-string.32.o: string.c  array.h versioning.h
+string.32.o: string.c  string-private.h ../config.h debug-private.h ../cups/versioning.h
+string.32.o: string.c  thread-private.h array.h versioning.h
 tempfile.32.o: tempfile.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 tempfile.32.o: tempfile.c  array.h language.h string-private.h ../config.h debug-private.h
-tempfile.32.o: tempfile.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-tempfile.32.o: tempfile.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-tempfile.32.o: tempfile.c  language-private.h ../cups/transcode.h thread-private.h
+tempfile.32.o: tempfile.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+tempfile.32.o: tempfile.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+tempfile.32.o: tempfile.c  ipp-private.h ../cups/ipp.h language-private.h
+tempfile.32.o: tempfile.c  ../cups/transcode.h thread-private.h
 thread.32.o: thread.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 thread.32.o: thread.c  array.h language.h string-private.h ../config.h debug-private.h
-thread.32.o: thread.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-thread.32.o: thread.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-thread.32.o: thread.c  language-private.h ../cups/transcode.h thread-private.h
+thread.32.o: thread.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+thread.32.o: thread.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+thread.32.o: thread.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+thread.32.o: thread.c  thread-private.h
 transcode.32.o: transcode.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 transcode.32.o: transcode.c  array.h language.h string-private.h ../config.h debug-private.h
-transcode.32.o: transcode.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-transcode.32.o: transcode.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-transcode.32.o: transcode.c  language-private.h ../cups/transcode.h thread-private.h
+transcode.32.o: transcode.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+transcode.32.o: transcode.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+transcode.32.o: transcode.c  ipp-private.h ../cups/ipp.h language-private.h
+transcode.32.o: transcode.c  ../cups/transcode.h thread-private.h
 usersys.32.o: usersys.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 usersys.32.o: usersys.c  array.h language.h string-private.h ../config.h debug-private.h
-usersys.32.o: usersys.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-usersys.32.o: usersys.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-usersys.32.o: usersys.c  language-private.h ../cups/transcode.h thread-private.h
+usersys.32.o: usersys.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+usersys.32.o: usersys.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+usersys.32.o: usersys.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+usersys.32.o: usersys.c  thread-private.h
 util.32.o: util.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 util.32.o: util.c  array.h language.h string-private.h ../config.h debug-private.h
-util.32.o: util.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-util.32.o: util.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-util.32.o: util.c  language-private.h ../cups/transcode.h thread-private.h
+util.32.o: util.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+util.32.o: util.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+util.32.o: util.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 testadmin.32.o: testadmin.c  adminutil.h cups.h string-private.h ../config.h
-testarray.32.o: testarray.c  string-private.h ../config.h debug-private.h array.h
-testarray.32.o: testarray.c  versioning.h dir.h
+testarray.32.o: testarray.c  string-private.h ../config.h debug-private.h
+testarray.32.o: testarray.c  ../cups/versioning.h array.h versioning.h dir.h
 testconflicts.32.o: testconflicts.c  cups.h ppd.h array.h versioning.h file.h string-private.h
 testconflicts.32.o: testconflicts.c  ../config.h
 testcups.32.o: testcups.c  string-private.h ../config.h cups.h ppd.h array.h versioning.h
 testcups.32.o: testcups.c  file.h
-testfile.32.o: testfile.c  string-private.h ../config.h debug-private.h file.h versioning.h
+testfile.32.o: testfile.c  string-private.h ../config.h debug-private.h ../cups/versioning.h
+testfile.32.o: testfile.c  file.h versioning.h
 testhttp.32.o: testhttp.c  string-private.h ../config.h http-private.h ../cups/http.h
 testhttp.32.o: testhttp.c  md5-private.h ipp-private.h ../cups/ipp.h
 testi18n.32.o: testi18n.c  string-private.h ../config.h language-private.h
@@ -462,243 +512,269 @@ testipp.32.o: testipp.c  file.h versioning.h string-private.h ../config.h ipp-pr
 testipp.32.o: testipp.c  ../cups/ipp.h
 testoptions.32.o: testoptions.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testoptions.32.o: testoptions.c  array.h language.h string-private.h ../config.h
-testoptions.32.o: testoptions.c  debug-private.h ppd-private.h ../cups/ppd.h cups.h
-testoptions.32.o: testoptions.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
-testoptions.32.o: testoptions.c  ipp-private.h ../cups/ipp.h language-private.h
-testoptions.32.o: testoptions.c  ../cups/transcode.h thread-private.h
+testoptions.32.o: testoptions.c  debug-private.h ../cups/versioning.h ppd-private.h
+testoptions.32.o: testoptions.c  ../cups/ppd.h cups.h pwg-private.h http-private.h
+testoptions.32.o: testoptions.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
+testoptions.32.o: testoptions.c  language-private.h ../cups/transcode.h thread-private.h
 testlang.32.o: testlang.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testlang.32.o: testlang.c  array.h language.h string-private.h ../config.h debug-private.h
-testlang.32.o: testlang.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-testlang.32.o: testlang.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-testlang.32.o: testlang.c  language-private.h ../cups/transcode.h thread-private.h
+testlang.32.o: testlang.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+testlang.32.o: testlang.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+testlang.32.o: testlang.c  ipp-private.h ../cups/ipp.h language-private.h
+testlang.32.o: testlang.c  ../cups/transcode.h thread-private.h
 testppd.32.o: testppd.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testppd.32.o: testppd.c  array.h language.h string-private.h ../config.h debug-private.h
-testppd.32.o: testppd.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-testppd.32.o: testppd.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-testppd.32.o: testppd.c  language-private.h ../cups/transcode.h thread-private.h
+testppd.32.o: testppd.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+testppd.32.o: testppd.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+testppd.32.o: testppd.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+testppd.32.o: testppd.c  thread-private.h
 testpwg.32.o: testpwg.c  ppd-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testpwg.32.o: testpwg.c  array.h language.h ../cups/ppd.h cups.h pwg-private.h
 testpwg.32.o: testpwg.c  file-private.h cups-private.h string-private.h ../config.h
-testpwg.32.o: testpwg.c  debug-private.h http-private.h ../cups/http.h md5-private.h
-testpwg.32.o: testpwg.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
-testpwg.32.o: testpwg.c  thread-private.h
+testpwg.32.o: testpwg.c  debug-private.h ../cups/versioning.h http-private.h ../cups/http.h
+testpwg.32.o: testpwg.c  md5-private.h ipp-private.h ../cups/ipp.h language-private.h
+testpwg.32.o: testpwg.c  ../cups/transcode.h thread-private.h
 testsnmp.32.o: testsnmp.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testsnmp.32.o: testsnmp.c  array.h language.h string-private.h ../config.h debug-private.h
-testsnmp.32.o: testsnmp.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-testsnmp.32.o: testsnmp.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-testsnmp.32.o: testsnmp.c  language-private.h ../cups/transcode.h thread-private.h
-testsnmp.32.o: testsnmp.c  snmp-private.h
+testsnmp.32.o: testsnmp.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+testsnmp.32.o: testsnmp.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+testsnmp.32.o: testsnmp.c  ipp-private.h ../cups/ipp.h language-private.h
+testsnmp.32.o: testsnmp.c  ../cups/transcode.h thread-private.h snmp-private.h
 # DO NOT DELETE
 
 adminutil.64.o: adminutil.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 adminutil.64.o: adminutil.c  array.h language.h string-private.h ../config.h debug-private.h
-adminutil.64.o: adminutil.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-adminutil.64.o: adminutil.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-adminutil.64.o: adminutil.c  language-private.h ../cups/transcode.h thread-private.h
-adminutil.64.o: adminutil.c  adminutil.h
-array.64.o: array.c  string-private.h ../config.h debug-private.h array-private.h array.h
-array.64.o: array.c  versioning.h
+adminutil.64.o: adminutil.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+adminutil.64.o: adminutil.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+adminutil.64.o: adminutil.c  ipp-private.h ../cups/ipp.h language-private.h
+adminutil.64.o: adminutil.c  ../cups/transcode.h thread-private.h adminutil.h
+array.64.o: array.c  string-private.h ../config.h debug-private.h ../cups/versioning.h
+array.64.o: array.c  array-private.h array.h versioning.h
 attr.64.o: attr.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 attr.64.o: attr.c  array.h language.h string-private.h ../config.h debug-private.h
-attr.64.o: attr.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-attr.64.o: attr.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-attr.64.o: attr.c  language-private.h ../cups/transcode.h thread-private.h
+attr.64.o: attr.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+attr.64.o: attr.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+attr.64.o: attr.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 auth.64.o: auth.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 auth.64.o: auth.c  array.h language.h string-private.h ../config.h debug-private.h
-auth.64.o: auth.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-auth.64.o: auth.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-auth.64.o: auth.c  language-private.h ../cups/transcode.h thread-private.h
+auth.64.o: auth.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+auth.64.o: auth.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+auth.64.o: auth.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 backchannel.64.o: backchannel.c  cups.h
 backend.64.o: backend.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 backend.64.o: backend.c  array.h language.h string-private.h ../config.h debug-private.h
-backend.64.o: backend.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-backend.64.o: backend.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-backend.64.o: backend.c  language-private.h ../cups/transcode.h thread-private.h backend.h
+backend.64.o: backend.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+backend.64.o: backend.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+backend.64.o: backend.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+backend.64.o: backend.c  thread-private.h backend.h
 conflicts.64.o: conflicts.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 conflicts.64.o: conflicts.c  array.h language.h string-private.h ../config.h debug-private.h
-conflicts.64.o: conflicts.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-conflicts.64.o: conflicts.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-conflicts.64.o: conflicts.c  language-private.h ../cups/transcode.h thread-private.h
+conflicts.64.o: conflicts.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+conflicts.64.o: conflicts.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+conflicts.64.o: conflicts.c  ipp-private.h ../cups/ipp.h language-private.h
+conflicts.64.o: conflicts.c  ../cups/transcode.h thread-private.h
 custom.64.o: custom.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 custom.64.o: custom.c  array.h language.h string-private.h ../config.h debug-private.h
-custom.64.o: custom.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-custom.64.o: custom.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-custom.64.o: custom.c  language-private.h ../cups/transcode.h thread-private.h
+custom.64.o: custom.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+custom.64.o: custom.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+custom.64.o: custom.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+custom.64.o: custom.c  thread-private.h
 debug.64.o: debug.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 debug.64.o: debug.c  array.h language.h string-private.h ../config.h debug-private.h
-debug.64.o: debug.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-debug.64.o: debug.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-debug.64.o: debug.c  language-private.h ../cups/transcode.h thread-private.h
+debug.64.o: debug.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+debug.64.o: debug.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+debug.64.o: debug.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+debug.64.o: debug.c  thread-private.h
 dest.64.o: dest.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 dest.64.o: dest.c  array.h language.h string-private.h ../config.h debug-private.h
-dest.64.o: dest.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-dest.64.o: dest.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-dest.64.o: dest.c  language-private.h ../cups/transcode.h thread-private.h
-dir.64.o: dir.c  string-private.h ../config.h debug-private.h dir.h versioning.h
+dest.64.o: dest.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+dest.64.o: dest.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+dest.64.o: dest.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
+dir.64.o: dir.c  string-private.h ../config.h debug-private.h ../cups/versioning.h
+dir.64.o: dir.c  dir.h versioning.h
 emit.64.o: emit.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 emit.64.o: emit.c  array.h language.h string-private.h ../config.h debug-private.h
-emit.64.o: emit.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-emit.64.o: emit.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-emit.64.o: emit.c  language-private.h ../cups/transcode.h thread-private.h
+emit.64.o: emit.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+emit.64.o: emit.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+emit.64.o: emit.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 encode.64.o: encode.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 encode.64.o: encode.c  array.h language.h string-private.h ../config.h debug-private.h
-encode.64.o: encode.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-encode.64.o: encode.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-encode.64.o: encode.c  language-private.h ../cups/transcode.h thread-private.h
+encode.64.o: encode.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+encode.64.o: encode.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+encode.64.o: encode.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+encode.64.o: encode.c  thread-private.h
 file.64.o: file.c  file-private.h cups-private.h ../cups/cups.h file.h versioning.h
 file.64.o: file.c  ipp.h http.h array.h language.h string-private.h ../config.h
-file.64.o: file.c  debug-private.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
-file.64.o: file.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
-file.64.o: file.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
+file.64.o: file.c  debug-private.h ../cups/versioning.h ppd-private.h ../cups/ppd.h
+file.64.o: file.c  cups.h pwg-private.h http-private.h ../cups/http.h md5-private.h
+file.64.o: file.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+file.64.o: file.c  thread-private.h
 getdevices.64.o: getdevices.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 getdevices.64.o: getdevices.c  array.h language.h string-private.h ../config.h debug-private.h
-getdevices.64.o: getdevices.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-getdevices.64.o: getdevices.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-getdevices.64.o: getdevices.c  language-private.h ../cups/transcode.h thread-private.h
+getdevices.64.o: getdevices.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+getdevices.64.o: getdevices.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+getdevices.64.o: getdevices.c  ipp-private.h ../cups/ipp.h language-private.h
+getdevices.64.o: getdevices.c  ../cups/transcode.h thread-private.h
 getifaddrs.64.o: getifaddrs.c  http-private.h ../config.h ../cups/http.h md5-private.h
 getifaddrs.64.o: getifaddrs.c  ipp-private.h ../cups/ipp.h
 getputfile.64.o: getputfile.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 getputfile.64.o: getputfile.c  array.h language.h string-private.h ../config.h debug-private.h
-getputfile.64.o: getputfile.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-getputfile.64.o: getputfile.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-getputfile.64.o: getputfile.c  language-private.h ../cups/transcode.h thread-private.h
+getputfile.64.o: getputfile.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+getputfile.64.o: getputfile.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+getputfile.64.o: getputfile.c  ipp-private.h ../cups/ipp.h language-private.h
+getputfile.64.o: getputfile.c  ../cups/transcode.h thread-private.h
 globals.64.o: globals.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 globals.64.o: globals.c  array.h language.h string-private.h ../config.h debug-private.h
-globals.64.o: globals.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-globals.64.o: globals.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-globals.64.o: globals.c  language-private.h ../cups/transcode.h thread-private.h
+globals.64.o: globals.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+globals.64.o: globals.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+globals.64.o: globals.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+globals.64.o: globals.c  thread-private.h
 http.64.o: http.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 http.64.o: http.c  array.h language.h string-private.h ../config.h debug-private.h
-http.64.o: http.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-http.64.o: http.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-http.64.o: http.c  language-private.h ../cups/transcode.h thread-private.h
+http.64.o: http.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+http.64.o: http.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+http.64.o: http.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 http-addr.64.o: http-addr.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 http-addr.64.o: http-addr.c  array.h language.h string-private.h ../config.h debug-private.h
-http-addr.64.o: http-addr.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-http-addr.64.o: http-addr.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-http-addr.64.o: http-addr.c  language-private.h ../cups/transcode.h thread-private.h
+http-addr.64.o: http-addr.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+http-addr.64.o: http-addr.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+http-addr.64.o: http-addr.c  ipp-private.h ../cups/ipp.h language-private.h
+http-addr.64.o: http-addr.c  ../cups/transcode.h thread-private.h
 http-addrlist.64.o: http-addrlist.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h
 http-addrlist.64.o: http-addrlist.c  http.h array.h language.h string-private.h ../config.h
-http-addrlist.64.o: http-addrlist.c  debug-private.h ppd-private.h ../cups/ppd.h cups.h
-http-addrlist.64.o: http-addrlist.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
-http-addrlist.64.o: http-addrlist.c  ipp-private.h ../cups/ipp.h language-private.h
-http-addrlist.64.o: http-addrlist.c  ../cups/transcode.h thread-private.h
+http-addrlist.64.o: http-addrlist.c  debug-private.h ../cups/versioning.h ppd-private.h
+http-addrlist.64.o: http-addrlist.c  ../cups/ppd.h cups.h pwg-private.h http-private.h
+http-addrlist.64.o: http-addrlist.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
+http-addrlist.64.o: http-addrlist.c  language-private.h ../cups/transcode.h thread-private.h
 http-support.64.o: http-support.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h
 http-support.64.o: http-support.c  http.h array.h language.h string-private.h ../config.h
-http-support.64.o: http-support.c  debug-private.h ppd-private.h ../cups/ppd.h cups.h
-http-support.64.o: http-support.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
-http-support.64.o: http-support.c  ipp-private.h ../cups/ipp.h language-private.h
-http-support.64.o: http-support.c  ../cups/transcode.h thread-private.h
+http-support.64.o: http-support.c  debug-private.h ../cups/versioning.h ppd-private.h
+http-support.64.o: http-support.c  ../cups/ppd.h cups.h pwg-private.h http-private.h
+http-support.64.o: http-support.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
+http-support.64.o: http-support.c  language-private.h ../cups/transcode.h thread-private.h
 ipp.64.o: ipp.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h array.h
-ipp.64.o: ipp.c  language.h string-private.h ../config.h debug-private.h ppd-private.h
-ipp.64.o: ipp.c  ../cups/ppd.h cups.h pwg-private.h http-private.h ../cups/http.h
-ipp.64.o: ipp.c  md5-private.h ipp-private.h ../cups/ipp.h language-private.h
-ipp.64.o: ipp.c  ../cups/transcode.h thread-private.h
+ipp.64.o: ipp.c  language.h string-private.h ../config.h debug-private.h
+ipp.64.o: ipp.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+ipp.64.o: ipp.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+ipp.64.o: ipp.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 ipp-support.64.o: ipp-support.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 ipp-support.64.o: ipp-support.c  array.h language.h string-private.h ../config.h
-ipp-support.64.o: ipp-support.c  debug-private.h ppd-private.h ../cups/ppd.h cups.h
-ipp-support.64.o: ipp-support.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
-ipp-support.64.o: ipp-support.c  ipp-private.h ../cups/ipp.h language-private.h
-ipp-support.64.o: ipp-support.c  ../cups/transcode.h thread-private.h
+ipp-support.64.o: ipp-support.c  debug-private.h ../cups/versioning.h ppd-private.h
+ipp-support.64.o: ipp-support.c  ../cups/ppd.h cups.h pwg-private.h http-private.h
+ipp-support.64.o: ipp-support.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
+ipp-support.64.o: ipp-support.c  language-private.h ../cups/transcode.h thread-private.h
 langprintf.64.o: langprintf.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 langprintf.64.o: langprintf.c  array.h language.h string-private.h ../config.h debug-private.h
-langprintf.64.o: langprintf.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-langprintf.64.o: langprintf.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-langprintf.64.o: langprintf.c  language-private.h ../cups/transcode.h thread-private.h
+langprintf.64.o: langprintf.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+langprintf.64.o: langprintf.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+langprintf.64.o: langprintf.c  ipp-private.h ../cups/ipp.h language-private.h
+langprintf.64.o: langprintf.c  ../cups/transcode.h thread-private.h
 language.64.o: language.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 language.64.o: language.c  array.h language.h string-private.h ../config.h debug-private.h
-language.64.o: language.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-language.64.o: language.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-language.64.o: language.c  language-private.h ../cups/transcode.h thread-private.h
+language.64.o: language.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+language.64.o: language.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+language.64.o: language.c  ipp-private.h ../cups/ipp.h language-private.h
+language.64.o: language.c  ../cups/transcode.h thread-private.h
 localize.64.o: localize.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 localize.64.o: localize.c  array.h language.h string-private.h ../config.h debug-private.h
-localize.64.o: localize.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-localize.64.o: localize.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-localize.64.o: localize.c  language-private.h ../cups/transcode.h thread-private.h
+localize.64.o: localize.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+localize.64.o: localize.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+localize.64.o: localize.c  ipp-private.h ../cups/ipp.h language-private.h
+localize.64.o: localize.c  ../cups/transcode.h thread-private.h
 mark.64.o: mark.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 mark.64.o: mark.c  array.h language.h string-private.h ../config.h debug-private.h
-mark.64.o: mark.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-mark.64.o: mark.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-mark.64.o: mark.c  language-private.h ../cups/transcode.h thread-private.h
+mark.64.o: mark.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+mark.64.o: mark.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+mark.64.o: mark.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 md5.64.o: md5.c  md5-private.h string-private.h ../config.h
 md5passwd.64.o: md5passwd.c  http-private.h ../config.h ../cups/http.h md5-private.h
 md5passwd.64.o: md5passwd.c  ipp-private.h ../cups/ipp.h string-private.h
 notify.64.o: notify.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 notify.64.o: notify.c  array.h language.h string-private.h ../config.h debug-private.h
-notify.64.o: notify.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-notify.64.o: notify.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-notify.64.o: notify.c  language-private.h ../cups/transcode.h thread-private.h
+notify.64.o: notify.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+notify.64.o: notify.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+notify.64.o: notify.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+notify.64.o: notify.c  thread-private.h
 options.64.o: options.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 options.64.o: options.c  array.h language.h string-private.h ../config.h debug-private.h
-options.64.o: options.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-options.64.o: options.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-options.64.o: options.c  language-private.h ../cups/transcode.h thread-private.h
-page.64.o: page.c  string-private.h ../config.h debug-private.h ppd.h cups.h array.h
-page.64.o: page.c  versioning.h file.h
+options.64.o: options.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+options.64.o: options.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+options.64.o: options.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+options.64.o: options.c  thread-private.h
+page.64.o: page.c  string-private.h ../config.h debug-private.h ../cups/versioning.h
+page.64.o: page.c  ppd.h cups.h array.h versioning.h file.h
 ppd.64.o: ppd.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h array.h
-ppd.64.o: ppd.c  language.h string-private.h ../config.h debug-private.h ppd-private.h
-ppd.64.o: ppd.c  ../cups/ppd.h cups.h pwg-private.h http-private.h ../cups/http.h
-ppd.64.o: ppd.c  md5-private.h ipp-private.h ../cups/ipp.h language-private.h
-ppd.64.o: ppd.c  ../cups/transcode.h thread-private.h
+ppd.64.o: ppd.c  language.h string-private.h ../config.h debug-private.h
+ppd.64.o: ppd.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+ppd.64.o: ppd.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+ppd.64.o: ppd.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 ppd-cache.64.o: ppd-cache.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 ppd-cache.64.o: ppd-cache.c  array.h language.h string-private.h ../config.h debug-private.h
-ppd-cache.64.o: ppd-cache.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-ppd-cache.64.o: ppd-cache.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-ppd-cache.64.o: ppd-cache.c  language-private.h ../cups/transcode.h thread-private.h
+ppd-cache.64.o: ppd-cache.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+ppd-cache.64.o: ppd-cache.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+ppd-cache.64.o: ppd-cache.c  ipp-private.h ../cups/ipp.h language-private.h
+ppd-cache.64.o: ppd-cache.c  ../cups/transcode.h thread-private.h
 pwg-media.64.o: pwg-media.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 pwg-media.64.o: pwg-media.c  array.h language.h string-private.h ../config.h debug-private.h
-pwg-media.64.o: pwg-media.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-pwg-media.64.o: pwg-media.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-pwg-media.64.o: pwg-media.c  language-private.h ../cups/transcode.h thread-private.h
+pwg-media.64.o: pwg-media.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+pwg-media.64.o: pwg-media.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+pwg-media.64.o: pwg-media.c  ipp-private.h ../cups/ipp.h language-private.h
+pwg-media.64.o: pwg-media.c  ../cups/transcode.h thread-private.h
 request.64.o: request.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 request.64.o: request.c  array.h language.h string-private.h ../config.h debug-private.h
-request.64.o: request.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-request.64.o: request.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-request.64.o: request.c  language-private.h ../cups/transcode.h thread-private.h
+request.64.o: request.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+request.64.o: request.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+request.64.o: request.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+request.64.o: request.c  thread-private.h
 sidechannel.64.o: sidechannel.c  sidechannel.h versioning.h string-private.h ../config.h
-sidechannel.64.o: sidechannel.c  debug-private.h
+sidechannel.64.o: sidechannel.c  debug-private.h ../cups/versioning.h
 snmp.64.o: snmp.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 snmp.64.o: snmp.c  array.h language.h string-private.h ../config.h debug-private.h
-snmp.64.o: snmp.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-snmp.64.o: snmp.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-snmp.64.o: snmp.c  language-private.h ../cups/transcode.h thread-private.h
+snmp.64.o: snmp.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+snmp.64.o: snmp.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+snmp.64.o: snmp.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 snmp.64.o: snmp.c  snmp-private.h
 snprintf.64.o: snprintf.c  string-private.h ../config.h
-string.64.o: string.c  string-private.h ../config.h debug-private.h thread-private.h
-string.64.o: string.c  array.h versioning.h
+string.64.o: string.c  string-private.h ../config.h debug-private.h ../cups/versioning.h
+string.64.o: string.c  thread-private.h array.h versioning.h
 tempfile.64.o: tempfile.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 tempfile.64.o: tempfile.c  array.h language.h string-private.h ../config.h debug-private.h
-tempfile.64.o: tempfile.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-tempfile.64.o: tempfile.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-tempfile.64.o: tempfile.c  language-private.h ../cups/transcode.h thread-private.h
+tempfile.64.o: tempfile.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+tempfile.64.o: tempfile.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+tempfile.64.o: tempfile.c  ipp-private.h ../cups/ipp.h language-private.h
+tempfile.64.o: tempfile.c  ../cups/transcode.h thread-private.h
 thread.64.o: thread.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 thread.64.o: thread.c  array.h language.h string-private.h ../config.h debug-private.h
-thread.64.o: thread.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-thread.64.o: thread.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-thread.64.o: thread.c  language-private.h ../cups/transcode.h thread-private.h
+thread.64.o: thread.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+thread.64.o: thread.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+thread.64.o: thread.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+thread.64.o: thread.c  thread-private.h
 transcode.64.o: transcode.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 transcode.64.o: transcode.c  array.h language.h string-private.h ../config.h debug-private.h
-transcode.64.o: transcode.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-transcode.64.o: transcode.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-transcode.64.o: transcode.c  language-private.h ../cups/transcode.h thread-private.h
+transcode.64.o: transcode.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+transcode.64.o: transcode.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+transcode.64.o: transcode.c  ipp-private.h ../cups/ipp.h language-private.h
+transcode.64.o: transcode.c  ../cups/transcode.h thread-private.h
 usersys.64.o: usersys.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 usersys.64.o: usersys.c  array.h language.h string-private.h ../config.h debug-private.h
-usersys.64.o: usersys.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-usersys.64.o: usersys.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-usersys.64.o: usersys.c  language-private.h ../cups/transcode.h thread-private.h
+usersys.64.o: usersys.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+usersys.64.o: usersys.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+usersys.64.o: usersys.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+usersys.64.o: usersys.c  thread-private.h
 util.64.o: util.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 util.64.o: util.c  array.h language.h string-private.h ../config.h debug-private.h
-util.64.o: util.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-util.64.o: util.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-util.64.o: util.c  language-private.h ../cups/transcode.h thread-private.h
+util.64.o: util.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
+util.64.o: util.c  http-private.h ../cups/http.h md5-private.h ipp-private.h
+util.64.o: util.c  ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
 testadmin.64.o: testadmin.c  adminutil.h cups.h string-private.h ../config.h
-testarray.64.o: testarray.c  string-private.h ../config.h debug-private.h array.h
-testarray.64.o: testarray.c  versioning.h dir.h
+testarray.64.o: testarray.c  string-private.h ../config.h debug-private.h
+testarray.64.o: testarray.c  ../cups/versioning.h array.h versioning.h dir.h
 testconflicts.64.o: testconflicts.c  cups.h ppd.h array.h versioning.h file.h string-private.h
 testconflicts.64.o: testconflicts.c  ../config.h
 testcups.64.o: testcups.c  string-private.h ../config.h cups.h ppd.h array.h versioning.h
 testcups.64.o: testcups.c  file.h
-testfile.64.o: testfile.c  string-private.h ../config.h debug-private.h file.h versioning.h
+testfile.64.o: testfile.c  string-private.h ../config.h debug-private.h ../cups/versioning.h
+testfile.64.o: testfile.c  file.h versioning.h
 testhttp.64.o: testhttp.c  string-private.h ../config.h http-private.h ../cups/http.h
 testhttp.64.o: testhttp.c  md5-private.h ipp-private.h ../cups/ipp.h
 testi18n.64.o: testi18n.c  string-private.h ../config.h language-private.h
@@ -707,29 +783,31 @@ testipp.64.o: testipp.c  file.h versioning.h string-private.h ../config.h ipp-pr
 testipp.64.o: testipp.c  ../cups/ipp.h
 testoptions.64.o: testoptions.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testoptions.64.o: testoptions.c  array.h language.h string-private.h ../config.h
-testoptions.64.o: testoptions.c  debug-private.h ppd-private.h ../cups/ppd.h cups.h
-testoptions.64.o: testoptions.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
-testoptions.64.o: testoptions.c  ipp-private.h ../cups/ipp.h language-private.h
-testoptions.64.o: testoptions.c  ../cups/transcode.h thread-private.h
+testoptions.64.o: testoptions.c  debug-private.h ../cups/versioning.h ppd-private.h
+testoptions.64.o: testoptions.c  ../cups/ppd.h cups.h pwg-private.h http-private.h
+testoptions.64.o: testoptions.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
+testoptions.64.o: testoptions.c  language-private.h ../cups/transcode.h thread-private.h
 testlang.64.o: testlang.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testlang.64.o: testlang.c  array.h language.h string-private.h ../config.h debug-private.h
-testlang.64.o: testlang.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-testlang.64.o: testlang.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-testlang.64.o: testlang.c  language-private.h ../cups/transcode.h thread-private.h
+testlang.64.o: testlang.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+testlang.64.o: testlang.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+testlang.64.o: testlang.c  ipp-private.h ../cups/ipp.h language-private.h
+testlang.64.o: testlang.c  ../cups/transcode.h thread-private.h
 testppd.64.o: testppd.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testppd.64.o: testppd.c  array.h language.h string-private.h ../config.h debug-private.h
-testppd.64.o: testppd.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-testppd.64.o: testppd.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-testppd.64.o: testppd.c  language-private.h ../cups/transcode.h thread-private.h
+testppd.64.o: testppd.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+testppd.64.o: testppd.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+testppd.64.o: testppd.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
+testppd.64.o: testppd.c  thread-private.h
 testpwg.64.o: testpwg.c  ppd-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testpwg.64.o: testpwg.c  array.h language.h ../cups/ppd.h cups.h pwg-private.h
 testpwg.64.o: testpwg.c  file-private.h cups-private.h string-private.h ../config.h
-testpwg.64.o: testpwg.c  debug-private.h http-private.h ../cups/http.h md5-private.h
-testpwg.64.o: testpwg.c  ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
-testpwg.64.o: testpwg.c  thread-private.h
+testpwg.64.o: testpwg.c  debug-private.h ../cups/versioning.h http-private.h ../cups/http.h
+testpwg.64.o: testpwg.c  md5-private.h ipp-private.h ../cups/ipp.h language-private.h
+testpwg.64.o: testpwg.c  ../cups/transcode.h thread-private.h
 testsnmp.64.o: testsnmp.c  cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
 testsnmp.64.o: testsnmp.c  array.h language.h string-private.h ../config.h debug-private.h
-testsnmp.64.o: testsnmp.c  ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
-testsnmp.64.o: testsnmp.c  ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
-testsnmp.64.o: testsnmp.c  language-private.h ../cups/transcode.h thread-private.h
-testsnmp.64.o: testsnmp.c  snmp-private.h
+testsnmp.64.o: testsnmp.c  ../cups/versioning.h ppd-private.h ../cups/ppd.h cups.h
+testsnmp.64.o: testsnmp.c  pwg-private.h http-private.h ../cups/http.h md5-private.h
+testsnmp.64.o: testsnmp.c  ipp-private.h ../cups/ipp.h language-private.h
+testsnmp.64.o: testsnmp.c  ../cups/transcode.h thread-private.h snmp-private.h
index 5a75d2b42c0fbc61d52bb9d5b0ba5b6286c9c51a..1351581e067e678fc361462172f0046f37aebe7f 100644 (file)
@@ -419,7 +419,6 @@ _cupsSetNegotiateAuthString(
       }
     }
   }
-  else
 #endif /* HAVE_GSS_ACQUIRED_CRED_EX_F */
 
   if (GSS_ERROR(major_status))
index 857f17fbe02ba3930415db78c5e4e26ab0630813..0a123c72898fd48fc3102b7f229868a9114414b2 100644 (file)
@@ -35,18 +35,6 @@ typedef off_t ssize_t;                       /* @private@ */
 #  include "language.h"
 
 
-/*
- * With GCC 3.0 and higher, we can mark old APIs "deprecated" so you get
- * a warning at compile-time.
- */
-
-#  if defined(__GNUC__) && __GNUC__ > 2
-#    define _CUPS_DEPRECATED __attribute__ ((__deprecated__))
-#  else
-#    define _CUPS_DEPRECATED
-#  endif /* __GNUC__ && __GNUC__ > 2 */
-
-
 /*
  * C++ magic...
  */
index c739fa68a0fd7797708864a91b505d3212ac7b7b..e40e58386598cd87970c0d6d36d2bf9f55bd21d0 100644 (file)
 #ifndef _CUPS_DEBUG_PRIVATE_H_
 #  define _CUPS_DEBUG_PRIVATE_H_
 
+
+/*
+ * Include necessary headers...
+ */
+
+#  include <cups/versioning.h>
+
+
 /*
  * C++ magic...
  */
@@ -88,10 +96,7 @@ extern "C" {
 extern int     _cups_debug_fd;
 extern int     _cups_debug_level;
 extern void    DLLExport _cups_debug_printf(const char *format, ...)
-#ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 1, 2)))
-#endif /* __GNUC__ */
-;
+               __attribute__ ((__format__ (__printf__, 1, 2)));
 extern void    DLLExport _cups_debug_puts(const char *s);
 extern void    DLLExport _cups_debug_set(const char *logfile,
                                          const char *level, const char *filter,
index daa09da853d30d9084c0679b63c6de5e0adacec2..c6c1cfe56cb278ae61e7fe14d47ceb270075335e 100644 (file)
@@ -167,19 +167,13 @@ _cupsFileCheck(
   * Verify permission of the file itself:
   *
   * 1. Must be owned by root
-  * 2. Must not be writable by group unless group is root/wheel/admin
+  * 2. Must not be writable by group
   * 3. Must not be setuid
   * 4. Must not be writable by others
   */
 
   if (fileinfo.st_uid ||               /* 1. Must be owned by root */
-#ifdef __APPLE__
-      ((fileinfo.st_mode & S_IWGRP) && fileinfo.st_gid &&
-       fileinfo.st_gid != 80) ||       /* 2. Must not be writable by group */
-#else
-      ((fileinfo.st_mode & S_IWGRP) && fileinfo.st_gid) ||
-                                       /* 2. Must not be writable by group */
-#endif /* __APPLE__ */
+      (fileinfo.st_mode & S_IWGRP)  || /* 2. Must not be writable by group */
       (fileinfo.st_mode & S_ISUID) ||  /* 3. Must not be setuid */
       (fileinfo.st_mode & S_IWOTH))    /* 4. Must not be writable by others */
   {
@@ -218,13 +212,7 @@ _cupsFileCheck(
   }
 
   if (fileinfo.st_uid ||               /* 1. Must be owned by root */
-#ifdef __APPLE__
-      ((fileinfo.st_mode & S_IWGRP) && fileinfo.st_gid &&
-       fileinfo.st_gid != 80) ||       /* 2. Must not be writable by group */
-#else
-      ((fileinfo.st_mode & S_IWGRP) && fileinfo.st_gid) ||
-                                       /* 2. Must not be writable by group */
-#endif /* __APPLE__ */
+      (fileinfo.st_mode & S_IWGRP) ||  /* 2. Must not be writable by group */
       (fileinfo.st_mode & S_ISUID) ||  /* 3. Must not be setuid */
       (fileinfo.st_mode & S_IWOTH))    /* 4. Must not be writable by others */
   {
index 5f02b5c91078bff8123dd8d8875a037dd0620e01..1428c576dbe06c668f7b24bd10ca36a61e924467 100644 (file)
@@ -72,26 +72,29 @@ extern const char   *cupsFileFind(const char *filename, const char *path,
                                      int bufsize) _CUPS_API_1_2;
 extern int             cupsFileFlush(cups_file_t *fp) _CUPS_API_1_2;
 extern int             cupsFileGetChar(cups_file_t *fp) _CUPS_API_1_2;
-extern char            *cupsFileGetConf(cups_file_t *fp, char *buf, size_t buflen,
-                                        char **value, int *linenum) _CUPS_API_1_2;
+extern char            *cupsFileGetConf(cups_file_t *fp, char *buf,
+                                        size_t buflen, char **value,
+                                        int *linenum) _CUPS_API_1_2;
 extern size_t          cupsFileGetLine(cups_file_t *fp, char *buf,
                                        size_t buflen) _CUPS_API_1_2;
-extern char            *cupsFileGets(cups_file_t *fp, char *buf, size_t buflen) _CUPS_API_1_2;
+extern char            *cupsFileGets(cups_file_t *fp, char *buf, size_t buflen)
+                       _CUPS_API_1_2;
 extern int             cupsFileLock(cups_file_t *fp, int block) _CUPS_API_1_2;
 extern int             cupsFileNumber(cups_file_t *fp) _CUPS_API_1_2;
-extern cups_file_t     *cupsFileOpen(const char *filename, const char *mode) _CUPS_API_1_2;
+extern cups_file_t     *cupsFileOpen(const char *filename, const char *mode)
+                       _CUPS_API_1_2;
 extern cups_file_t     *cupsFileOpenFd(int fd, const char *mode) _CUPS_API_1_2;
 extern int             cupsFilePeekChar(cups_file_t *fp) _CUPS_API_1_2;
 extern int             cupsFilePrintf(cups_file_t *fp, const char *format, ...)
-#ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 2, 3)))
-#endif /* __GNUC__ */
-_CUPS_API_1_2;
+                       __attribute__((__format__ (__printf__, 2, 3)))
+                       _CUPS_API_1_2;
 extern int             cupsFilePutChar(cups_file_t *fp, int c) _CUPS_API_1_2;
 extern ssize_t         cupsFilePutConf(cups_file_t *fp, const char *directive,
                                        const char *value) _CUPS_API_1_4;
-extern int             cupsFilePuts(cups_file_t *fp, const char *s) _CUPS_API_1_2;
-extern ssize_t         cupsFileRead(cups_file_t *fp, char *buf, size_t bytes) _CUPS_API_1_2;
+extern int             cupsFilePuts(cups_file_t *fp, const char *s)
+                       _CUPS_API_1_2;
+extern ssize_t         cupsFileRead(cups_file_t *fp, char *buf, size_t bytes)
+                       _CUPS_API_1_2;
 extern off_t           cupsFileRewind(cups_file_t *fp) _CUPS_API_1_2;
 extern off_t           cupsFileSeek(cups_file_t *fp, off_t pos) _CUPS_API_1_2;
 extern cups_file_t     *cupsFileStderr(void) _CUPS_API_1_2;
@@ -99,7 +102,8 @@ extern cups_file_t   *cupsFileStdin(void) _CUPS_API_1_2;
 extern cups_file_t     *cupsFileStdout(void) _CUPS_API_1_2;
 extern off_t           cupsFileTell(cups_file_t *fp) _CUPS_API_1_2;
 extern int             cupsFileUnlock(cups_file_t *fp) _CUPS_API_1_2;
-extern ssize_t         cupsFileWrite(cups_file_t *fp, const char *buf, size_t bytes) _CUPS_API_1_2;
+extern ssize_t         cupsFileWrite(cups_file_t *fp, const char *buf,
+                                     size_t bytes) _CUPS_API_1_2;
 
 
 #  ifdef __cplusplus
index 56a9b728200f4a5f8206e20f0af1c8d1293f9093..ab98b5ab3c5dfde1c9bd0799c920358c859ca249 100644 (file)
@@ -245,14 +245,14 @@ struct _http_s                            /**** HTTP connection structure. ****/
   http_status_t                status;         /* Status of last request */
   http_version_t       version;        /* Protocol version */
   http_keepalive_t     keep_alive;     /* Keep-alive supported? */
-  struct sockaddr_in   _hostaddr;      /* Address of connected host @deprecated@ */
+  struct sockaddr_in   _hostaddr;      /* Address of connected host (deprecated) */
   char                 hostname[HTTP_MAX_HOST],
                                        /* Name of connected host */
                        fields[HTTP_FIELD_MAX][HTTP_MAX_VALUE];
                                        /* Field values */
   char                 *data;          /* Pointer to data buffer */
   http_encoding_t      data_encoding;  /* Chunked or not */
-  int                  _data_remaining;/* Number of bytes left @deprecated@ */
+  int                  _data_remaining;/* Number of bytes left (deprecated) */
   int                  used;           /* Number of bytes used in buffer */
   char                 buffer[HTTP_MAX_BUFFER];
                                        /* Buffer for incoming data */
@@ -264,40 +264,41 @@ struct _http_s                            /**** HTTP connection structure. ****/
   http_tls_t           tls;            /* TLS state information */
   http_encryption_t    encryption;     /* Encryption requirements */
   /**** New in CUPS 1.1.19 ****/
-  fd_set               *input_set;     /* select() set for httpWait() @deprecated@ */
-  http_status_t                expect;         /* Expect: header @since CUPS 1.1.19@ */
-  char                 *cookie;        /* Cookie value(s) @since CUPS 1.1.19@ */
+  fd_set               *input_set;     /* select() set for httpWait() (deprecated) */
+  http_status_t                expect;         /* Expect: header */
+  char                 *cookie;        /* Cookie value(s) */
   /**** New in CUPS 1.1.20 ****/
   char                 _authstring[HTTP_MAX_VALUE],
-                                       /* Current Authentication value. @deprecated@ */
+                                       /* Current Authentication value (deprecated) */
                        userpass[HTTP_MAX_VALUE];
-                                       /* Username:password string @since CUPS 1.1.20@ */
-  int                  digest_tries;   /* Number of tries for digest auth @since CUPS 1.1.20@ */
+                                       /* Username:password string */
+  int                  digest_tries;   /* Number of tries for digest auth */
   /**** New in CUPS 1.2 ****/
-  off_t                        data_remaining; /* Number of bytes left @since CUPS 1.2@ */
-  http_addr_t          *hostaddr;      /* Current host address and port @since CUPS 1.2@ */
-  http_addrlist_t      *addrlist;      /* List of valid addresses @since CUPS 1.2@ */
+  off_t                        data_remaining; /* Number of bytes left */
+  http_addr_t          *hostaddr;      /* Current host address and port */
+  http_addrlist_t      *addrlist;      /* List of valid addresses */
   char                 wbuffer[HTTP_MAX_BUFFER];
                                        /* Buffer for outgoing data */
-  int                  wused;          /* Write buffer bytes used @since CUPS 1.2@ */
+  int                  wused;          /* Write buffer bytes used */
   /**** New in CUPS 1.3 ****/
   char                 *field_authorization;
-                                       /* Authorization field @since CUPS 1.3@ */
-  char                 *authstring;    /* Current authorization field @since CUPS 1.3 */
+                                       /* Authorization field */
+  char                 *authstring;    /* Current authorization field */
 #  ifdef HAVE_GSSAPI
-  gss_OID              gssmech;        /* Authentication mechanism @since CUPS 1.3@ */
-  gss_ctx_id_t         gssctx;         /* Authentication context @since CUPS 1.3@ */
-  gss_name_t           gssname;        /* Authentication server name @since CUPS 1.3@ */
+  gss_OID              gssmech;        /* Authentication mechanism */
+  gss_ctx_id_t         gssctx;         /* Authentication context */
+  gss_name_t           gssname;        /* Authentication server name */
 #  endif /* HAVE_GSSAPI */
 #  ifdef HAVE_AUTHORIZATION_H
-  AuthorizationRef     auth_ref;       /* Authorization ref @since CUPS 1.3@ */
+  AuthorizationRef     auth_ref;       /* Authorization ref */
 #  endif /* HAVE_AUTHORIZATION_H */
   /**** New in CUPS 1.5 ****/
   http_tls_credentials_t tls_credentials;
-                                       /* TLS credentials @since CUPS 1.5/Mac OS X 10.7@ */
-  http_timeout_cb_t    timeout_cb;     /* Timeout callback @since CUPS 1.5/Mac OS X 10.7@ */
-  void                 *timeout_data;  /* User data pointer @since CUPS 1.5/Mac OS X 10.7@ */
-  struct timeval       timeout_value;  /* Timeout in seconds */
+                                       /* TLS credentials */
+  http_timeout_cb_t    timeout_cb;     /* Timeout callback */
+  void                 *timeout_data;  /* User data pointer */
+  double               timeout_value;  /* Timeout in seconds */
+  int                  wait_value;     /* httpWait value for timeout */
 #  ifdef HAVE_GSSAPI
   char                 gsshost[256];   /* Hostname for Kerberos */
 #  endif /* HAVE_GSSAPI */
@@ -371,12 +372,12 @@ extern void               _httpAddrSetPort(http_addr_t *addr, int port);
 extern char            *_httpAssembleUUID(const char *server, int port,
                                           const char *name, int number,
                                           char *buffer, size_t bufsize);
-extern http_tls_credentials_t
-                       _httpConvertCredentials(cups_array_t *credentials);
 extern http_t          *_httpCreate(const char *host, int port,
                                     http_addrlist_t *addrlist,
                                     http_encryption_t encryption,
                                     int family);
+extern http_tls_credentials_t
+                       _httpCreateCredentials(cups_array_t *credentials);
 extern char            *_httpDecodeURI(char *dst, const char *src,
                                        size_t dstsize);
 extern void            _httpDisconnect(http_t *http);
index c6ca6c2a566359c2d1336278dee3d242571be9b4..7c30f4d9f061b4b4a83ebd1688a6ef5dbcfe5323 100644 (file)
@@ -216,7 +216,7 @@ httpAssembleURI(
       * Add username@ first...
       */
 
-      ptr = http_copy_encode(ptr, username, end, "/?@", NULL,
+      ptr = http_copy_encode(ptr, username, end, "/?#[]@", NULL,
                              encoding & HTTP_URI_CODING_USERNAME);
 
       if (!ptr)
index 8aab65a1d7c6487ccecf6f77aeca5e6747e53bc3..c5489e71b71ad00384f71a3e8fea0fcc47dbc737 100644 (file)
@@ -34,8 +34,8 @@
  *   httpConnectEncrypt()      - Connect to a HTTP server using encryption.
  *   httpCopyCredentials()     - Copy the credentials associated with an
  *                               encrypted connection.
- *   _httpConvertCredentials() - Convert credentials to the internal format.
  *   _httpCreate()             - Create an unconnected HTTP connection.
+ *   _httpCreateCredentials()  - Create credentials in the internal format.
  *   httpDelete()              - Send a DELETE request to the server.
  *   _httpDisconnect()         - Disconnect a HTTP connection.
  *   httpEncryption()          - Set the required encryption on the link.
  *   http_send()               - Send a request with all fields and the trailing
  *                               blank line.
  *   http_set_credentials()    - Set the SSL/TLS credentials.
+ *   http_set_timeout()        - Set the socket timeout values.
+ *   http_set_wait()           - Set the default wait value for reads.
  *   http_setup_ssl()          - Set up SSL/TLS support on a connection.
  *   http_shutdown_ssl()       - Shut down SSL/TLS on a connection.
  *   http_threadid_cb()        - Return the current thread ID.
@@ -164,6 +166,8 @@ static int          http_read_ssl(http_t *http, char *buf, int len);
 #  if defined(HAVE_CDSASSL) && defined(HAVE_SECCERTIFICATECOPYDATA)
 static int             http_set_credentials(http_t *http);
 #  endif /* HAVE_CDSASSL ** HAVE_SECCERTIFICATECOPYDATA */
+static void            http_set_timeout(int fd, double timeout);
+static void            http_set_wait(http_t *http);
 static int             http_setup_ssl(http_t *http);
 static void            http_shutdown_ssl(http_t *http);
 static int             http_upgrade(http_t *http);
@@ -311,7 +315,10 @@ httpBlocking(http_t *http,         /* I - Connection to server */
              int    b)                 /* I - 1 = blocking, 0 = non-blocking */
 {
   if (http)
+  {
     http->blocking = b;
+    http_set_wait(http);
+  }
 }
 
 
@@ -556,64 +563,6 @@ httpCopyCredentials(
 }
 
 
-/*
- * '_httpConvertCredentials()' - Convert credentials to the internal format.
- */
-
-http_tls_credentials_t                 /* O - Internal credentials */
-_httpConvertCredentials(
-    cups_array_t *credentials)         /* I - Array of credentials */
-{
-  if (!credentials)
-    return (NULL);
-
-#  ifdef HAVE_LIBSSL
-  return (NULL);
-
-#  elif defined(HAVE_GNUTLS)
-  return (NULL);
-
-#  elif defined(HAVE_CDSASSL) && defined(HAVE_SECCERTIFICATECOPYDATA)
-  CFMutableArrayRef    peerCerts;      /* Peer credentials reference */
-  SecCertificateRef    secCert;        /* Certificate reference */
-  CFDataRef            data;           /* Credential data reference */
-  http_credential_t    *credential;    /* Credential data */
-
-
-  if ((peerCerts = CFArrayCreateMutable(kCFAllocatorDefault,
-                                       cupsArrayCount(credentials),
-                                       &kCFTypeArrayCallBacks)) == NULL)
-    return (NULL);
-
-  for (credential = (http_credential_t *)cupsArrayFirst(credentials);
-       credential;
-       credential = (http_credential_t *)cupsArrayNext(credentials))
-  {
-    if ((data = CFDataCreate(kCFAllocatorDefault, credential->data,
-                            credential->datalen)))
-    {
-      if ((secCert = SecCertificateCreateWithData(kCFAllocatorDefault, data))
-              != NULL)
-      {
-       CFArrayAppendValue(peerCerts, secCert);
-       CFRelease(secCert);
-      }
-
-      CFRelease(data);
-    }
-  }
-
-  return (peerCerts);
-
-#  elif defined(HAVE_SSPISSL)
-  return (NULL);
-
-#  else
-  return (NULL);
-#  endif /* HAVE_LIBSSL */
-}
-
-
 /*
  * '_httpCreate()' - Create an unconnected HTTP connection.
  */
@@ -679,6 +628,8 @@ _httpCreate(
   else
     http->encryption = encryption;
 
+  http_set_wait(http);
+
  /*
   * Return the new structure...
   */
@@ -687,6 +638,64 @@ _httpCreate(
 }
 
 
+/*
+ * '_httpCreateCredentials()' - Create credentials in the internal format.
+ */
+
+http_tls_credentials_t                 /* O - Internal credentials */
+_httpCreateCredentials(
+    cups_array_t *credentials)         /* I - Array of credentials */
+{
+  if (!credentials)
+    return (NULL);
+
+#  ifdef HAVE_LIBSSL
+  return (NULL);
+
+#  elif defined(HAVE_GNUTLS)
+  return (NULL);
+
+#  elif defined(HAVE_CDSASSL) && defined(HAVE_SECCERTIFICATECOPYDATA)
+  CFMutableArrayRef    peerCerts;      /* Peer credentials reference */
+  SecCertificateRef    secCert;        /* Certificate reference */
+  CFDataRef            data;           /* Credential data reference */
+  http_credential_t    *credential;    /* Credential data */
+
+
+  if ((peerCerts = CFArrayCreateMutable(kCFAllocatorDefault,
+                                       cupsArrayCount(credentials),
+                                       &kCFTypeArrayCallBacks)) == NULL)
+    return (NULL);
+
+  for (credential = (http_credential_t *)cupsArrayFirst(credentials);
+       credential;
+       credential = (http_credential_t *)cupsArrayNext(credentials))
+  {
+    if ((data = CFDataCreate(kCFAllocatorDefault, credential->data,
+                            credential->datalen)))
+    {
+      if ((secCert = SecCertificateCreateWithData(kCFAllocatorDefault, data))
+              != NULL)
+      {
+       CFArrayAppendValue(peerCerts, secCert);
+       CFRelease(secCert);
+      }
+
+      CFRelease(data);
+    }
+  }
+
+  return (peerCerts);
+
+#  elif defined(HAVE_SSPISSL)
+  return (NULL);
+
+#  else
+  return (NULL);
+#  endif /* HAVE_LIBSSL */
+}
+
+
 /*
  * 'httpDelete()' - Send a DELETE request to the server.
  */
@@ -1314,7 +1323,7 @@ httpGets(char   *line,                    /* I - Line to read into */
       * No newline; see if there is more data to be read...
       */
 
-      while (!_httpWait(http, http->blocking ? 30000 : 10000, 1))
+      while (!_httpWait(http, http->wait_value, 1))
       {
        if (http->timeout_cb && (*http->timeout_cb)(http, http->timeout_data))
          continue;
@@ -1639,7 +1648,7 @@ _httpPeek(http_t *http,                   /* I - Connection to server */
 
     if (!http->blocking)
     {
-      while (!httpWait(http, 10000))
+      while (!httpWait(http, http->wait_value))
       {
        if (http->timeout_cb && (*http->timeout_cb)(http, http->timeout_data))
          continue;
@@ -1903,7 +1912,7 @@ httpRead2(http_t *http,                   /* I - Connection to server */
 
     if (!http->blocking)
     {
-      while (!httpWait(http, 10000))
+      while (!httpWait(http, http->wait_value))
       {
        if (http->timeout_cb && (*http->timeout_cb)(http, http->timeout_data))
          continue;
@@ -1999,7 +2008,7 @@ httpRead2(http_t *http,                   /* I - Connection to server */
   {
     if (!http->blocking)
     {
-      while (!httpWait(http, 10000))
+      while (!httpWait(http, http->wait_value))
       {
        if (http->timeout_cb && (*http->timeout_cb)(http, http->timeout_data))
          continue;
@@ -2015,7 +2024,7 @@ httpRead2(http_t *http,                   /* I - Connection to server */
   {
     if (!http->blocking)
     {
-      while (!httpWait(http, 10000))
+      while (!httpWait(http, http->wait_value))
       {
        if (http->timeout_cb && (*http->timeout_cb)(http, http->timeout_data))
          continue;
@@ -2132,7 +2141,7 @@ _httpReadCDSA(
     * Make sure we have data before we read...
     */
 
-    while (!_httpWait(http, 10000, 0))
+    while (!_httpWait(http, http->wait_value, 0))
     {
       if (http->timeout_cb && (*http->timeout_cb)(http, http->timeout_data))
        continue;
@@ -2199,7 +2208,7 @@ _httpReadGNUTLS(
     * Make sure we have data before we read...
     */
 
-    while (!_httpWait(http, 10000, 0))
+    while (!_httpWait(http, http->wait_value, 0))
     {
       if (http->timeout_cb && (*http->timeout_cb)(http, http->timeout_data))
        continue;
@@ -2292,24 +2301,8 @@ httpReconnect(http_t *http)              /* I - Connection to server */
 
   DEBUG_printf(("2httpReconnect: New socket=%d", http->fd));
 
-  if (http->timeout_value.tv_sec > 0)
-  {
-#ifdef WIN32
-    DWORD timeout_value = http->timeout_value.tv_sec * 1000 +
-                         http->timeout_value.tv_usec / 1000;
-                                       /* Timeout in milliseconds */
-
-    setsockopt(http->fd, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout_value,
-               sizeof(timeout_value));
-    setsockopt(http->fd, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout_value,
-               sizeof(timeout_value));
-#else
-    setsockopt(http->fd, SOL_SOCKET, SO_RCVTIMEO, &(http->timeout_value),
-               sizeof(http->timeout_value));
-    setsockopt(http->fd, SOL_SOCKET, SO_SNDTIMEO, &(http->timeout_value),
-               sizeof(http->timeout_value));
-#endif /* WIN32 */
-  }
+  if (http->timeout_value > 0)
+    http_set_timeout(http->fd, http->timeout_value);
 
   http->hostaddr = &(addr->addr);
   http->error    = 0;
@@ -2422,7 +2415,7 @@ httpSetCredentials(http_t *http,          /* I - Connection to server */
 
   _httpFreeCredentials(http->tls_credentials);
 
-  http->tls_credentials = _httpConvertCredentials(credentials);
+  http->tls_credentials = _httpCreateCredentials(credentials);
 
   return (http->tls_credentials ? 0 : -1);
 }
@@ -2585,30 +2578,14 @@ httpSetTimeout(
   if (!http || timeout <= 0.0)
     return;
 
-  http->timeout_cb            = cb;
-  http->timeout_data          = user_data;
-  http->timeout_value.tv_sec  = (int)timeout;
-  http->timeout_value.tv_usec = (int)(timeout * 1000000) % 1000000;
+  http->timeout_cb    = cb;
+  http->timeout_data  = user_data;
+  http->timeout_value = timeout;
 
   if (http->fd >= 0)
-  {
-#ifdef WIN32
-    DWORD timeout_value = http->timeout_value.tv_sec * 1000 +
-                         http->timeout_value.tv_usec / 1000;
-                                       /* Timeout in milliseconds */
+    http_set_timeout(http->fd, timeout);
 
-    setsockopt(http->fd, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout_value,
-               sizeof(timeout_value));
-    setsockopt(http->fd, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout_value,
-               sizeof(timeout_value));
-
-#else
-    setsockopt(http->fd, SOL_SOCKET, SO_RCVTIMEO, &(http->timeout_value),
-               sizeof(http->timeout_value));
-    setsockopt(http->fd, SOL_SOCKET, SO_SNDTIMEO, &(http->timeout_value),
-               sizeof(http->timeout_value));
-#endif /* WIN32 */
-  }
+  http_set_wait(http);
 }
 
 
@@ -3324,7 +3301,7 @@ http_bio_read(BIO  *h,                    /* I - BIO data */
     * Make sure we have data before we read...
     */
 
-    while (!_httpWait(http, 10000, 0))
+    while (!_httpWait(http, http->wait_value, 0))
     {
       if (http->timeout_cb && (*http->timeout_cb)(http, http->timeout_data))
        continue;
@@ -3770,6 +3747,52 @@ http_set_credentials(http_t *http)       /* I - Connection to server */
 #  endif /* HAVE_CDSASSL && HAVE_SECCERTIFICATECOPYDATA */
 
 
+/*
+ * 'http_set_timeout()' - Set the socket timeout values.
+ */
+
+static void
+http_set_timeout(int    fd,            /* I - File descriptor */
+                 double timeout)       /* I - Timeout in seconds */
+{
+#ifdef WIN32
+  DWORD tv = (DWORD)(timeout * 1000);
+                                     /* Timeout in milliseconds */
+
+  setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv, sizeof(tv));
+  setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, (char *)&tv, sizeof(tv));
+
+#else
+  struct timeval tv;                   /* Timeout in secs and usecs */
+
+  tv.tv_sec  = (int)timeout;
+  tv.tv_usec = (int)(1000000 * fmod(timeout, 1.0));
+
+  setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
+  setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
+#endif /* WIN32 */
+}
+
+
+/*
+ * 'http_set_wait()' - Set the default wait value for reads.
+ */
+
+static void
+http_set_wait(http_t *http)            /* I - Connection to server */
+{
+  if (http->blocking)
+  {
+    http->wait_value = (int)(http->timeout_value * 1000);
+
+    if (http->wait_value <= 0)
+      http->wait_value = 60000;
+  }
+  else
+    http->wait_value = 10000;
+}
+
+
 /*
  * 'http_setup_ssl()' - Set up SSL/TLS support on a connection.
  */
@@ -4014,7 +4037,7 @@ http_setup_ssl(http_t *http)              /* I - Connection to server */
     {
       error = SSLHandshake(http->tls);
 
-      DEBUG_printf(("4_httpWait: SSLHandshake returned %d.", (int)error));
+      DEBUG_printf(("4http_setup_ssl: SSLHandshake returned %d.", (int)error));
 
       switch (error)
       {
@@ -4039,7 +4062,7 @@ http_setup_ssl(http_t *http)              /* I - Connection to server */
                httpFreeCredentials(credentials);
              }
 
-             DEBUG_printf(("4_httpWait: Server certificate callback returned "
+             DEBUG_printf(("4http_setup_ssl: Server certificate callback returned "
                            "%d.", (int)error));
            }
            break;
@@ -4080,7 +4103,7 @@ http_setup_ssl(http_t *http)              /* I - Connection to server */
                error = (cg->client_cert_cb)(http, http->tls, names,
                                             cg->client_cert_data);
 
-               DEBUG_printf(("4_httpWait: Client certificate callback "
+               DEBUG_printf(("4http_setup_ssl: Client certificate callback "
                              "returned %d.", (int)error));
              }
 
@@ -4361,6 +4384,62 @@ http_write(http_t     *http,             /* I - Connection to server */
 
   while (length > 0)
   {
+    if (http->timeout_cb)
+    {
+#ifdef HAVE_POLL
+      struct pollfd    pfd;            /* Polled file descriptor */
+#else
+      fd_set           output_set;     /* Output ready for write? */
+      struct timeval   timeout;        /* Timeout value */
+#endif /* HAVE_POLL */
+      int              nfds;           /* Result from select()/poll() */
+
+      do
+      {
+#ifdef HAVE_POLL
+       pfd.fd     = http->fd;
+       pfd.events = POLLOUT;
+
+       while ((nfds = poll(&pfd, 1, http->wait_value)) < 0 &&
+              (errno == EINTR || errno == EAGAIN));
+
+#else
+       do
+       {
+         FD_ZERO(&output_set);
+         FD_SET(http->fd, &output_set);
+
+         timeout.tv_sec  = http->wait_value / 1000;
+         timeout.tv_usec = 1000 * (http->wait_value % 1000);
+
+         nfds = select(http->fd + 1, NULL, &output_set, NULL, &timeout);
+       }
+#  ifdef WIN32
+       while (nfds < 0 && (WSAGetLastError() == WSAEINTR ||
+                           WSAGetLastError() == WSAEWOULDBLOCK));
+#  else
+       while (nfds < 0 && (errno == EINTR || errno == EAGAIN));
+#  endif /* WIN32 */
+#endif /* HAVE_POLL */
+
+        if (nfds < 0)
+       {
+         http->error = errno;
+         return (-1);
+       }
+       else if (nfds == 0 && !(*http->timeout_cb)(http, http->timeout_data))
+       {
+#ifdef WIN32
+         http->error = ESAEWOULDBLOCK;
+#else
+         http->error = EWOULDBLOCK;
+#endif /* WIN32 */
+         return (-1);
+       }
+      }
+      while (nfds <= 0);
+    }
+
 #ifdef HAVE_SSL
     if (http->tls)
       bytes = http_write_ssl(http, buffer, length);
index 7e4eeb4a2551defc9d662fb6933f0e91132ddea6..5e3a42d3a94cb58121f1a9f08e1405a9ea775fd2 100644 (file)
@@ -357,10 +357,7 @@ extern void                httpInitialize(void);
 extern int             httpOptions(http_t *http, const char *uri);
 extern int             httpPost(http_t *http, const char *uri);
 extern int             httpPrintf(http_t *http, const char *format, ...)
-#  ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 2, 3)))
-#  endif /* __GNUC__ */
-;
+                       __attribute__ ((__format__ (__printf__, 2, 3)));
 extern int             httpPut(http_t *http, const char *uri);
 extern int             httpRead(http_t *http, char *buffer, int length) _CUPS_DEPRECATED;
 extern int             httpReconnect(http_t *http);
index 0c10ca54c7b439f9094d56370f2378c371fa6472..6a2a886b1320075edf232ea48eabfd917dc4642f 100644 (file)
@@ -62,15 +62,9 @@ extern void          _cupsLangPrintError(const char *prefix,
                                            const char *message);
 extern int             _cupsLangPrintFilter(FILE *fp, const char *prefix,
                                             const char *message, ...)
-#  ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 3, 4)))
-#  endif /* __GNUC__ */
-;
+                       __attribute__ ((__format__ (__printf__, 3, 4)));
 extern int             _cupsLangPrintf(FILE *fp, const char *message, ...)
-#  ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 2, 3)))
-#  endif /* __GNUC__ */
-;
+                       __attribute__ ((__format__ (__printf__, 2, 3)));
 extern int             _cupsLangPuts(FILE *fp, const char *message);
 extern const char      *_cupsLangString(cups_lang_t *lang,
                                         const char *message);
index 0a1996c5c69f733cc7686ee2343dadfcfdf61ac7..169631e68363af6775aebf7cf4180c0d6962eea3 100644 (file)
 
 extern int             _cupsRasterExecPS(cups_page_header2_t *h,
                                          int *preferred_bits,
-                                         const char *code);
-extern void            _cupsRasterAddError(const char *f, ...);
+                                         const char *code)
+                                         __attribute__((nonnull(3)));
+extern void            _cupsRasterAddError(const char *f, ...)
+                       __attribute__((__format__(__printf__, 1, 2)));
 extern void            _cupsRasterClearError(void);
 
 #endif /* !_CUPS_RASTER_PRIVATE_H_ */
index e8b1425126a072bcc40a6838999096b80519e406..a38ec19604917975398dc40571fea4fbb48f0210 100644 (file)
@@ -283,26 +283,24 @@ cupsDoIORequest(http_t     *http, /* I - Connection to server or @code CUPS_HTTP
       break;
     }
 
-    if (response)
+    if (response && outfile >= 0)
     {
-      if (outfile >= 0)
-      {
-       /*
-        * Write trailing data to file...
-       */
+     /*
+      * Write trailing data to file...
+      */
 
-       while ((bytes = (int)httpRead2(http, buffer, sizeof(buffer))) > 0)
-         if (write(outfile, buffer, bytes) < bytes)
-           break;
-      }
-      else
-      {
-       /*
-        * Flush any remaining data...
-        */
+      while ((bytes = (int)httpRead2(http, buffer, sizeof(buffer))) > 0)
+       if (write(outfile, buffer, bytes) < bytes)
+         break;
+    }
 
-        httpFlush(http);
-      }
+    if (http->state != HTTP_WAITING)
+    {
+     /*
+      * Flush any remaining data...
+      */
+
+      httpFlush(http);
     }
   }
 
index e16d63b84b3febc0b7ed38ef2bd73627705d24c7..bef1aea80384a179990fe683296acaf5b97eba46 100644 (file)
@@ -155,10 +155,7 @@ extern size_t _cups_strlcpy(char *, const char *, size_t);
 
 #  ifndef HAVE_SNPRINTF
 extern int     _cups_snprintf(char *, size_t, const char *, ...)
-#    ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 3, 4)))
-#    endif /* __GNUC__ */
-;
+               __attribute__ ((__format__ (__printf__, 3, 4)));
 #    define snprintf _cups_snprintf
 #  endif /* !HAVE_SNPRINTF */
 
index 3a3eb9f70c53484f8c15ffda93b73bce9a95ef1f..f1498c83496e4e2f4daeb111dcd975b8569aa198 100644 (file)
@@ -36,7 +36,7 @@
 static void    print_packet(cups_snmp_t *packet, void *data);
 static int     show_oid(int fd, const char *community,
                         http_addr_t *addr, const char *s, int walk);
-static void    usage(void);
+static void    usage(void) __attribute__((noreturn));
 
 
 /*
@@ -119,7 +119,7 @@ main(int  argc,                             /* I - Number of command-line args */
                         ".1.3.6.1.2.1.43.10.2.1.4.1.1", walk))
       return (1);
   }
-  
+
   return (0);
 }
 
index 879b31539980279075160f39712a5ec7580bd20d..a8784d8a51f89a95d8f92fcd1862d2ca75bdfc44 100644 (file)
@@ -223,7 +223,7 @@ cupsSetCredentials(
     return (-1);
 
   _httpFreeCredentials(cg->tls_credentials);
-  cg->tls_credentials = _httpConvertCredentials(credentials);
+  cg->tls_credentials = _httpCreateCredentials(credentials);
 
   return (cg->tls_credentials ? 0 : -1);
 }
@@ -636,7 +636,9 @@ cups_read_client_conf(
   char line[1024],                     /* Line from file */
         *value,                                /* Pointer into line */
        encryption[1024],               /* Encryption value */
+#ifndef __APPLE__
        server_name[1024],              /* ServerName value */
+#endif /* !__APPLE__ */
        any_root[1024],                 /* AllowAnyRoot value */
        expired_root[1024],             /* AllowExpiredRoot value */
        expired_certs[1024];            /* AllowExpiredCerts value */
@@ -658,12 +660,18 @@ cups_read_client_conf(
       strlcpy(encryption, value, sizeof(encryption));
       cups_encryption = encryption;
     }
+#ifndef __APPLE__
+   /*
+    * The Server directive is not supported on Mac OS X due to app sandboxing
+    * restrictions, i.e. not all apps request network access.
+    */
     else if (!cups_server && (!cg->server[0] || !cg->ipp_port) &&
              !_cups_strcasecmp(line, "ServerName") && value)
     {
       strlcpy(server_name, value, sizeof(server_name));
       cups_server = server_name;
     }
+#endif /* !__APPLE__ */
     else if (!cups_anyroot && !_cups_strcasecmp(line, "AllowAnyRoot") && value)
     {
       strlcpy(any_root, value, sizeof(any_root));
index 92a0a52eb4f2afb391bf1f790430ef553c8eb41d..719483dd71569fdc50bab8d93d1b030f8ec721a0 100644 (file)
@@ -3,7 +3,7 @@
  *
  *   API versioning definitions for CUPS.
  *
- *   Copyright 2007-2010 by Apple Inc.
+ *   Copyright 2007-2011 by Apple Inc.
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Apple Inc. and are protected by Federal copyright
 /*
  * This header defines several constants - _CUPS_DEPRECATED,
  * _CUPS_API_1_1, _CUPS_API_1_1_19, _CUPS_API_1_1_20, _CUPS_API_1_1_21,
- * _CUPS_API_1_2, _CUPS_API_1_3, _CUPS_API_1_4, _CUPS_API_1_5 - which add
- * compiler-specific attributes that flag functions that are deprecated or added
- * in particular releases.
+ * _CUPS_API_1_2, _CUPS_API_1_3, _CUPS_API_1_4, _CUPS_API_1_5, _CUPS_API_1_6 -
+ * which add compiler-specific attributes that flag functions that are
+ * deprecated or added in particular releases.
  *
  * On Mac OS X, the _CUPS_API_* constants are defined based on the values of
  * the MAC_OS_X_VERSION_MIN_ALLOWED and MAC_OS_X_VERSION_MAX_ALLOWED constants
  * provided by the compiler.
+ *
+ *
  */
 
 #  if defined(__APPLE__) && !defined(_CUPS_SOURCE)
@@ -46,6 +48,9 @@
 #    ifndef AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
 #      define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER __attribute__((unavailable))
 #    endif /* !AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER */
+#    ifndef AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#      define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER __attribute__((unavailable))
+#    endif /* !AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER */
 #    define _CUPS_API_1_1_19 AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
 #    define _CUPS_API_1_1_20 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
 #    define _CUPS_API_1_1_21 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
@@ -53,6 +58,7 @@
 #    define _CUPS_API_1_3 AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
 #    define _CUPS_API_1_4 AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
 #    define _CUPS_API_1_5 AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#    define _CUPS_API_1_6 AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
 #  else
 #    define _CUPS_API_1_1_19
 #    define _CUPS_API_1_1_20
@@ -61,6 +67,7 @@
 #    define _CUPS_API_1_3
 #    define _CUPS_API_1_4
 #    define _CUPS_API_1_5
+#    define _CUPS_API_1_6
 #  endif /* __APPLE__ && !_CUPS_SOURCE */
 
 /*
index d51a06c8f5bc616ad4c4570c0d08c18ab11c86df..ff42a38fa81c4ea0ce4d4051921f6007ccd5c4ef 100644 (file)
@@ -3,32 +3,35 @@
 error.o: ../cups/raster-private.h ../cups/raster.h ../cups/cups.h
 error.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 error.o: ../cups/array.h ../cups/language.h ../cups/ppd.h ../cups/cups.h
-error.o: ../cups/debug-private.h ../cups/string-private.h ../config.h
+error.o: ../cups/debug-private.h ../cups/versioning.h
+error.o: ../cups/string-private.h ../config.h
 interpret.o: ../cups/raster-private.h ../cups/raster.h ../cups/cups.h
 interpret.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 interpret.o: ../cups/array.h ../cups/language.h ../cups/ppd.h ../cups/cups.h
-interpret.o: ../cups/debug-private.h ../cups/string-private.h ../config.h
+interpret.o: ../cups/debug-private.h ../cups/versioning.h
+interpret.o: ../cups/string-private.h ../config.h
 raster.o: ../cups/raster-private.h ../cups/raster.h ../cups/cups.h
 raster.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 raster.o: ../cups/array.h ../cups/language.h ../cups/ppd.h ../cups/cups.h
-raster.o: ../cups/debug-private.h ../cups/string-private.h ../config.h
+raster.o: ../cups/debug-private.h ../cups/versioning.h
+raster.o: ../cups/string-private.h ../config.h
 commandtops.o: ../cups/cups-private.h ../cups/cups.h ../cups/string-private.h
-commandtops.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-commandtops.o: ../cups/ppd.h ../cups/cups.h ../cups/file.h
-commandtops.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
-commandtops.o: ../cups/array.h ../cups/language.h ../cups/pwg-private.h
-commandtops.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-commandtops.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-commandtops.o: ../cups/transcode.h ../cups/thread-private.h
-commandtops.o: ../cups/sidechannel.h
+commandtops.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+commandtops.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+commandtops.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h
+commandtops.o: ../cups/http.h ../cups/array.h ../cups/language.h
+commandtops.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+commandtops.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+commandtops.o: ../cups/language-private.h ../cups/transcode.h
+commandtops.o: ../cups/thread-private.h ../cups/sidechannel.h
 gziptoany.o: ../cups/cups-private.h ../cups/cups.h ../cups/string-private.h
-gziptoany.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-gziptoany.o: ../cups/ppd.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
-gziptoany.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
-gziptoany.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-gziptoany.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-gziptoany.o: ../cups/language-private.h ../cups/transcode.h
-gziptoany.o: ../cups/thread-private.h
+gziptoany.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+gziptoany.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+gziptoany.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
+gziptoany.o: ../cups/array.h ../cups/language.h ../cups/pwg-private.h
+gziptoany.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+gziptoany.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+gziptoany.o: ../cups/transcode.h ../cups/thread-private.h
 common.o: common.h ../cups/string-private.h ../config.h ../cups/cups.h
 common.o: ../cups/ppd.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
 common.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
@@ -63,39 +66,42 @@ rastertopwg.o: ../config.h
 testraster.o: ../cups/raster-private.h ../cups/raster.h ../cups/cups.h
 testraster.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h
 testraster.o: ../cups/http.h ../cups/array.h ../cups/language.h ../cups/ppd.h
-testraster.o: ../cups/cups.h ../cups/debug-private.h ../cups/string-private.h
-testraster.o: ../config.h
+testraster.o: ../cups/cups.h ../cups/debug-private.h ../cups/versioning.h
+testraster.o: ../cups/string-private.h ../config.h
 # DO NOT DELETE
 
 error.32.o: error.c  ../cups/raster-private.h ../cups/raster.h ../cups/cups.h
 error.32.o: error.c  ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 error.32.o: error.c  ../cups/array.h ../cups/language.h ../cups/ppd.h ../cups/cups.h
-error.32.o: error.c  ../cups/debug-private.h ../cups/string-private.h ../config.h
+error.32.o: error.c  ../cups/debug-private.h ../cups/versioning.h
+error.32.o: error.c  ../cups/string-private.h ../config.h
 interpret.32.o: interpret.c  ../cups/raster-private.h ../cups/raster.h ../cups/cups.h
 interpret.32.o: interpret.c  ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 interpret.32.o: interpret.c  ../cups/array.h ../cups/language.h ../cups/ppd.h ../cups/cups.h
-interpret.32.o: interpret.c  ../cups/debug-private.h ../cups/string-private.h ../config.h
+interpret.32.o: interpret.c  ../cups/debug-private.h ../cups/versioning.h
+interpret.32.o: interpret.c  ../cups/string-private.h ../config.h
 raster.32.o: raster.c  ../cups/raster-private.h ../cups/raster.h ../cups/cups.h
 raster.32.o: raster.c  ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 raster.32.o: raster.c  ../cups/array.h ../cups/language.h ../cups/ppd.h ../cups/cups.h
-raster.32.o: raster.c  ../cups/debug-private.h ../cups/string-private.h ../config.h
+raster.32.o: raster.c  ../cups/debug-private.h ../cups/versioning.h
+raster.32.o: raster.c  ../cups/string-private.h ../config.h
 commandtops.32.o: commandtops.c  ../cups/cups-private.h ../cups/cups.h ../cups/string-private.h
-commandtops.32.o: commandtops.c  ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-commandtops.32.o: commandtops.c  ../cups/ppd.h ../cups/cups.h ../cups/file.h
-commandtops.32.o: commandtops.c  ../cups/versioning.h ../cups/ipp.h ../cups/http.h
-commandtops.32.o: commandtops.c  ../cups/array.h ../cups/language.h ../cups/pwg-private.h
-commandtops.32.o: commandtops.c  ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-commandtops.32.o: commandtops.c  ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-commandtops.32.o: commandtops.c  ../cups/transcode.h ../cups/thread-private.h
-commandtops.32.o: commandtops.c  ../cups/sidechannel.h
+commandtops.32.o: commandtops.c  ../config.h ../cups/debug-private.h ../cups/versioning.h
+commandtops.32.o: commandtops.c  ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+commandtops.32.o: commandtops.c  ../cups/file.h ../cups/versioning.h ../cups/ipp.h
+commandtops.32.o: commandtops.c  ../cups/http.h ../cups/array.h ../cups/language.h
+commandtops.32.o: commandtops.c  ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+commandtops.32.o: commandtops.c  ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+commandtops.32.o: commandtops.c  ../cups/language-private.h ../cups/transcode.h
+commandtops.32.o: commandtops.c  ../cups/thread-private.h ../cups/sidechannel.h
 gziptoany.32.o: gziptoany.c  ../cups/cups-private.h ../cups/cups.h ../cups/string-private.h
-gziptoany.32.o: gziptoany.c  ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-gziptoany.32.o: gziptoany.c  ../cups/ppd.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
-gziptoany.32.o: gziptoany.c  ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
-gziptoany.32.o: gziptoany.c  ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-gziptoany.32.o: gziptoany.c  ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-gziptoany.32.o: gziptoany.c  ../cups/language-private.h ../cups/transcode.h
-gziptoany.32.o: gziptoany.c  ../cups/thread-private.h
+gziptoany.32.o: gziptoany.c  ../config.h ../cups/debug-private.h ../cups/versioning.h
+gziptoany.32.o: gziptoany.c  ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+gziptoany.32.o: gziptoany.c  ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
+gziptoany.32.o: gziptoany.c  ../cups/array.h ../cups/language.h ../cups/pwg-private.h
+gziptoany.32.o: gziptoany.c  ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+gziptoany.32.o: gziptoany.c  ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+gziptoany.32.o: gziptoany.c  ../cups/transcode.h ../cups/thread-private.h
 common.32.o: common.c  common.h ../cups/string-private.h ../config.h ../cups/cups.h
 common.32.o: common.c  ../cups/ppd.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
 common.32.o: common.c  ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
@@ -130,39 +136,42 @@ rastertopwg.32.o: rastertopwg.c  ../config.h
 testraster.32.o: testraster.c  ../cups/raster-private.h ../cups/raster.h ../cups/cups.h
 testraster.32.o: testraster.c  ../cups/file.h ../cups/versioning.h ../cups/ipp.h
 testraster.32.o: testraster.c  ../cups/http.h ../cups/array.h ../cups/language.h ../cups/ppd.h
-testraster.32.o: testraster.c  ../cups/cups.h ../cups/debug-private.h ../cups/string-private.h
-testraster.32.o: testraster.c  ../config.h
+testraster.32.o: testraster.c  ../cups/cups.h ../cups/debug-private.h ../cups/versioning.h
+testraster.32.o: testraster.c  ../cups/string-private.h ../config.h
 # DO NOT DELETE
 
 error.64.o: error.c  ../cups/raster-private.h ../cups/raster.h ../cups/cups.h
 error.64.o: error.c  ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 error.64.o: error.c  ../cups/array.h ../cups/language.h ../cups/ppd.h ../cups/cups.h
-error.64.o: error.c  ../cups/debug-private.h ../cups/string-private.h ../config.h
+error.64.o: error.c  ../cups/debug-private.h ../cups/versioning.h
+error.64.o: error.c  ../cups/string-private.h ../config.h
 interpret.64.o: interpret.c  ../cups/raster-private.h ../cups/raster.h ../cups/cups.h
 interpret.64.o: interpret.c  ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 interpret.64.o: interpret.c  ../cups/array.h ../cups/language.h ../cups/ppd.h ../cups/cups.h
-interpret.64.o: interpret.c  ../cups/debug-private.h ../cups/string-private.h ../config.h
+interpret.64.o: interpret.c  ../cups/debug-private.h ../cups/versioning.h
+interpret.64.o: interpret.c  ../cups/string-private.h ../config.h
 raster.64.o: raster.c  ../cups/raster-private.h ../cups/raster.h ../cups/cups.h
 raster.64.o: raster.c  ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 raster.64.o: raster.c  ../cups/array.h ../cups/language.h ../cups/ppd.h ../cups/cups.h
-raster.64.o: raster.c  ../cups/debug-private.h ../cups/string-private.h ../config.h
+raster.64.o: raster.c  ../cups/debug-private.h ../cups/versioning.h
+raster.64.o: raster.c  ../cups/string-private.h ../config.h
 commandtops.64.o: commandtops.c  ../cups/cups-private.h ../cups/cups.h ../cups/string-private.h
-commandtops.64.o: commandtops.c  ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-commandtops.64.o: commandtops.c  ../cups/ppd.h ../cups/cups.h ../cups/file.h
-commandtops.64.o: commandtops.c  ../cups/versioning.h ../cups/ipp.h ../cups/http.h
-commandtops.64.o: commandtops.c  ../cups/array.h ../cups/language.h ../cups/pwg-private.h
-commandtops.64.o: commandtops.c  ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-commandtops.64.o: commandtops.c  ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-commandtops.64.o: commandtops.c  ../cups/transcode.h ../cups/thread-private.h
-commandtops.64.o: commandtops.c  ../cups/sidechannel.h
+commandtops.64.o: commandtops.c  ../config.h ../cups/debug-private.h ../cups/versioning.h
+commandtops.64.o: commandtops.c  ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+commandtops.64.o: commandtops.c  ../cups/file.h ../cups/versioning.h ../cups/ipp.h
+commandtops.64.o: commandtops.c  ../cups/http.h ../cups/array.h ../cups/language.h
+commandtops.64.o: commandtops.c  ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+commandtops.64.o: commandtops.c  ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+commandtops.64.o: commandtops.c  ../cups/language-private.h ../cups/transcode.h
+commandtops.64.o: commandtops.c  ../cups/thread-private.h ../cups/sidechannel.h
 gziptoany.64.o: gziptoany.c  ../cups/cups-private.h ../cups/cups.h ../cups/string-private.h
-gziptoany.64.o: gziptoany.c  ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-gziptoany.64.o: gziptoany.c  ../cups/ppd.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
-gziptoany.64.o: gziptoany.c  ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
-gziptoany.64.o: gziptoany.c  ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-gziptoany.64.o: gziptoany.c  ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-gziptoany.64.o: gziptoany.c  ../cups/language-private.h ../cups/transcode.h
-gziptoany.64.o: gziptoany.c  ../cups/thread-private.h
+gziptoany.64.o: gziptoany.c  ../config.h ../cups/debug-private.h ../cups/versioning.h
+gziptoany.64.o: gziptoany.c  ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+gziptoany.64.o: gziptoany.c  ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
+gziptoany.64.o: gziptoany.c  ../cups/array.h ../cups/language.h ../cups/pwg-private.h
+gziptoany.64.o: gziptoany.c  ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+gziptoany.64.o: gziptoany.c  ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+gziptoany.64.o: gziptoany.c  ../cups/transcode.h ../cups/thread-private.h
 common.64.o: common.c  common.h ../cups/string-private.h ../config.h ../cups/cups.h
 common.64.o: common.c  ../cups/ppd.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
 common.64.o: common.c  ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
@@ -197,5 +206,5 @@ rastertopwg.64.o: rastertopwg.c  ../config.h
 testraster.64.o: testraster.c  ../cups/raster-private.h ../cups/raster.h ../cups/cups.h
 testraster.64.o: testraster.c  ../cups/file.h ../cups/versioning.h ../cups/ipp.h
 testraster.64.o: testraster.c  ../cups/http.h ../cups/array.h ../cups/language.h ../cups/ppd.h
-testraster.64.o: testraster.c  ../cups/cups.h ../cups/debug-private.h ../cups/string-private.h
-testraster.64.o: testraster.c  ../config.h
+testraster.64.o: testraster.c  ../cups/cups.h ../cups/debug-private.h ../cups/versioning.h
+testraster.64.o: testraster.c  ../cups/string-private.h ../config.h
index 32e6821dbac05682f8d82a09b34bc7c2e08dbd27..eed4432d863c3e0c168f6d35e849b7a51e54c1aa 100644 (file)
@@ -820,7 +820,7 @@ error_stack(_cups_ps_stack_t *st,   /* I - Stack */
   _cups_ps_obj_t       *obj;           /* Current object on stack */
 
 
-  _cupsRasterAddError(title);
+  _cupsRasterAddError("%s", title);
 
   for (obj = st->objs, c = st->num_objs; c > 0; c --, obj ++)
     error_object(obj);
index c87ca2a7855f59b0051664db7e22d2b77b014cfd..8390a204f4fc5b4e1cf563106c3aa28c35582c24 100644 (file)
@@ -200,10 +200,7 @@ static ssize_t             copy_trailer(cups_file_t *fp, pstops_doc_t *doc,
 static void            do_prolog(pstops_doc_t *doc, ppd_file_t *ppd);
 static void            do_setup(pstops_doc_t *doc, ppd_file_t *ppd);
 static void            doc_printf(pstops_doc_t *doc, const char *format, ...)
-#ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 2, 3)))
-#endif /* __GNUC__ */
-;
+                       __attribute__ ((__format__ (__printf__, 2, 3)));
 static void            doc_puts(pstops_doc_t *doc, const char *s);
 static void            doc_write(pstops_doc_t *doc, const char *s, size_t len);
 static void            end_nup(pstops_doc_t *doc, int number);
@@ -1594,10 +1591,7 @@ copy_page(cups_file_t  *fp,              /* I - File to read from */
     */
 
     if (linelen > 0 && !strncmp(line, "%%EndPageSetup", 14))
-    {
-      linelen        = cupsFileGetLine(fp, line, linesize);
-      has_page_setup = 0;
-    }
+      linelen = cupsFileGetLine(fp, line, linesize);
   }
 
   if (first_page)
index 45dd3faeccbd4e2003eb3aef939ed0f4ffb76348..4543566ca10603711749ca7cc096199ba90a0497 100644 (file)
@@ -3,24 +3,26 @@
 checkpo.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 checkpo.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 checkpo.o: ../cups/language.h ../cups/string-private.h ../config.h
-checkpo.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-checkpo.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-checkpo.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-checkpo.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-checkpo.o: ../cups/thread-private.h
+checkpo.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+checkpo.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+checkpo.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+checkpo.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+checkpo.o: ../cups/transcode.h ../cups/thread-private.h
 po2strings.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 po2strings.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 po2strings.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-po2strings.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-po2strings.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-po2strings.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-po2strings.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-po2strings.o: ../cups/transcode.h ../cups/thread-private.h
+po2strings.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+po2strings.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+po2strings.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+po2strings.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+po2strings.o: ../cups/language-private.h ../cups/transcode.h
+po2strings.o: ../cups/thread-private.h
 translate.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 translate.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 translate.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-translate.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-translate.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-translate.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-translate.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-translate.o: ../cups/transcode.h ../cups/thread-private.h
+translate.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+translate.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+translate.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+translate.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+translate.o: ../cups/language-private.h ../cups/transcode.h
+translate.o: ../cups/thread-private.h
index 0f85f305f831abdd58de8a3d903a531972c06a76..ca659ff5449a53915caecf917c66180756e7d149 100644 (file)
 .\"   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/".
 .\"
-.TH client.conf 5 "CUPS" "28 March 2011" "Apple Inc."
+.TH client.conf 5 "CUPS" "2 September 2011" "Apple Inc."
 .SH NAME
 client.conf \- client configuration file for cups
 .SH DESCRIPTION
-The \fIclient.conf\fR file configures the CUPS client and is 
+The \fIclient.conf\fR file configures the CUPS client and is
 normally located in the \fI@CUPS_SERVERROOT@\fR or \fI~/.cups\fR
 directory. Each line in the file can be a configuration
 directive, a blank line, or a comment. Comment lines start with
@@ -45,7 +45,7 @@ ServerName hostname-or-ip-address[:port]
 ServerName /domain/socket
 .br
 Specifies the address and optionally the port to use when connecting to the
-server.
+server. \fBNote: Not supported on Mac OS X 10.7 or later.\fR
 .SH SEE ALSO
 http://localhost:631/help
 .SH COPYRIGHT
index 005e3eb1e6ab5cd0ac0336c26fbd742390fc17f5..451a95a32999fc5ed23dde66e0ab52a795a4c17e 100644 (file)
@@ -3,16 +3,16 @@
 bcp.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 bcp.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 bcp.o: ../cups/language.h ../cups/string-private.h ../config.h
-bcp.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-bcp.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-bcp.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-bcp.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-bcp.o: ../cups/thread-private.h
+bcp.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+bcp.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+bcp.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+bcp.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+bcp.o: ../cups/transcode.h ../cups/thread-private.h
 tbcp.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 tbcp.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 tbcp.o: ../cups/language.h ../cups/string-private.h ../config.h
-tbcp.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-tbcp.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-tbcp.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-tbcp.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-tbcp.o: ../cups/thread-private.h
+tbcp.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+tbcp.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+tbcp.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+tbcp.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+tbcp.o: ../cups/transcode.h ../cups/thread-private.h
index 5f48964f62c2f081ead5e9d1a5b68c20247aff61..9e723214bb90c74ad0bc80a1a2adcb4d2705c986 100644 (file)
@@ -6,19 +6,20 @@ dbus.o: ../cups/string-private.h ../config.h
 mailto.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 mailto.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 mailto.o: ../cups/language.h ../cups/string-private.h ../config.h
-mailto.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-mailto.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-mailto.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-mailto.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-mailto.o: ../cups/thread-private.h
+mailto.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+mailto.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+mailto.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+mailto.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+mailto.o: ../cups/transcode.h ../cups/thread-private.h
 rss.o: ../cups/cups.h ../cups/file.h ../cups/versioning.h ../cups/ipp.h
 rss.o: ../cups/http.h ../cups/array.h ../cups/language.h ../cups/language.h
 rss.o: ../cups/string-private.h ../config.h ../cups/array.h
 testnotify.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 testnotify.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 testnotify.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-testnotify.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-testnotify.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-testnotify.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-testnotify.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-testnotify.o: ../cups/transcode.h ../cups/thread-private.h
+testnotify.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+testnotify.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+testnotify.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+testnotify.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+testnotify.o: ../cups/language-private.h ../cups/transcode.h
+testnotify.o: ../cups/thread-private.h
index ef9bd5a8ef57a18c7bece5f449ddea25a42ed3c7..28b289cf7b73761b1be87d3998d70bf82d84fcca 100644 (file)
@@ -4,234 +4,249 @@ ppdc-array.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-array.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-array.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
 ppdc-array.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
-ppdc-array.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
-ppdc-array.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-ppdc-array.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-ppdc-array.o: ../cups/language-private.h ../cups/transcode.h
+ppdc-array.o: ../cups/versioning.h ../cups/ppd-private.h ../cups/ppd.h
+ppdc-array.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
+ppdc-array.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
+ppdc-array.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
 ppdc-array.o: ../cups/thread-private.h
 ppdc-attr.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-attr.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-attr.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
 ppdc-attr.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
-ppdc-attr.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
-ppdc-attr.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-ppdc-attr.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-ppdc-attr.o: ../cups/language-private.h ../cups/transcode.h
+ppdc-attr.o: ../cups/versioning.h ../cups/ppd-private.h ../cups/ppd.h
+ppdc-attr.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
+ppdc-attr.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
+ppdc-attr.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
 ppdc-attr.o: ../cups/thread-private.h
 ppdc-catalog.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-catalog.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-catalog.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-catalog.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-catalog.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdc-catalog.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdc-catalog.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdc-catalog.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+ppdc-catalog.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-catalog.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-catalog.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdc-catalog.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdc-catalog.o: ../cups/language-private.h ../cups/transcode.h
 ppdc-catalog.o: ../cups/thread-private.h
 ppdc-choice.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-choice.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-choice.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-choice.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-choice.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdc-choice.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdc-choice.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdc-choice.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+ppdc-choice.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-choice.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-choice.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdc-choice.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdc-choice.o: ../cups/language-private.h ../cups/transcode.h
 ppdc-choice.o: ../cups/thread-private.h
 ppdc-constraint.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-constraint.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-constraint.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-constraint.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-constraint.o: ../cups/debug-private.h ../cups/ppd-private.h
-ppdc-constraint.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-ppdc-constraint.o: ../cups/http-private.h ../cups/http.h
-ppdc-constraint.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-ppdc-constraint.o: ../cups/language-private.h ../cups/transcode.h
-ppdc-constraint.o: ../cups/thread-private.h
+ppdc-constraint.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-constraint.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-constraint.o: ../cups/pwg-private.h ../cups/http-private.h
+ppdc-constraint.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
+ppdc-constraint.o: ../cups/ipp.h ../cups/language-private.h
+ppdc-constraint.o: ../cups/transcode.h ../cups/thread-private.h
 ppdc-driver.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-driver.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-driver.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-driver.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-driver.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdc-driver.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdc-driver.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdc-driver.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+ppdc-driver.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-driver.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-driver.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdc-driver.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdc-driver.o: ../cups/language-private.h ../cups/transcode.h
 ppdc-driver.o: ../cups/thread-private.h
 ppdc-file.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-file.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-file.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
 ppdc-file.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
-ppdc-file.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
-ppdc-file.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-ppdc-file.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-ppdc-file.o: ../cups/language-private.h ../cups/transcode.h
+ppdc-file.o: ../cups/versioning.h ../cups/ppd-private.h ../cups/ppd.h
+ppdc-file.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
+ppdc-file.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
+ppdc-file.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
 ppdc-file.o: ../cups/thread-private.h
 ppdc-filter.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-filter.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-filter.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-filter.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-filter.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdc-filter.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdc-filter.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdc-filter.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+ppdc-filter.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-filter.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-filter.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdc-filter.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdc-filter.o: ../cups/language-private.h ../cups/transcode.h
 ppdc-filter.o: ../cups/thread-private.h
 ppdc-font.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-font.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-font.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
 ppdc-font.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
-ppdc-font.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
-ppdc-font.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-ppdc-font.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-ppdc-font.o: ../cups/language-private.h ../cups/transcode.h
+ppdc-font.o: ../cups/versioning.h ../cups/ppd-private.h ../cups/ppd.h
+ppdc-font.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
+ppdc-font.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
+ppdc-font.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
 ppdc-font.o: ../cups/thread-private.h
 ppdc-group.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-group.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-group.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
 ppdc-group.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
-ppdc-group.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
-ppdc-group.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-ppdc-group.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-ppdc-group.o: ../cups/language-private.h ../cups/transcode.h
+ppdc-group.o: ../cups/versioning.h ../cups/ppd-private.h ../cups/ppd.h
+ppdc-group.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
+ppdc-group.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
+ppdc-group.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
 ppdc-group.o: ../cups/thread-private.h
 ppdc-import.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-import.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-import.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-import.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-import.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdc-import.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdc-import.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdc-import.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+ppdc-import.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-import.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-import.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdc-import.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdc-import.o: ../cups/language-private.h ../cups/transcode.h
 ppdc-import.o: ../cups/thread-private.h
 ppdc-mediasize.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-mediasize.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-mediasize.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-mediasize.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-mediasize.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdc-mediasize.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdc-mediasize.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdc-mediasize.o: ../cups/ipp.h ../cups/language-private.h
-ppdc-mediasize.o: ../cups/transcode.h ../cups/thread-private.h
+ppdc-mediasize.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-mediasize.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-mediasize.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdc-mediasize.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdc-mediasize.o: ../cups/language-private.h ../cups/transcode.h
+ppdc-mediasize.o: ../cups/thread-private.h
 ppdc-message.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-message.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-message.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-message.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-message.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdc-message.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdc-message.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdc-message.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+ppdc-message.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-message.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-message.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdc-message.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdc-message.o: ../cups/language-private.h ../cups/transcode.h
 ppdc-message.o: ../cups/thread-private.h
 ppdc-option.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-option.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-option.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-option.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-option.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdc-option.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdc-option.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdc-option.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+ppdc-option.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-option.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-option.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdc-option.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdc-option.o: ../cups/language-private.h ../cups/transcode.h
 ppdc-option.o: ../cups/thread-private.h
 ppdc-profile.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-profile.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-profile.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-profile.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-profile.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdc-profile.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdc-profile.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdc-profile.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+ppdc-profile.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-profile.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-profile.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdc-profile.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdc-profile.o: ../cups/language-private.h ../cups/transcode.h
 ppdc-profile.o: ../cups/thread-private.h
 ppdc-shared.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-shared.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-shared.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-shared.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-shared.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdc-shared.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdc-shared.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdc-shared.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+ppdc-shared.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-shared.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-shared.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdc-shared.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdc-shared.o: ../cups/language-private.h ../cups/transcode.h
 ppdc-shared.o: ../cups/thread-private.h
 ppdc-source.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-source.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-source.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-source.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-source.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdc-source.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdc-source.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdc-source.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+ppdc-source.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-source.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-source.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdc-source.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdc-source.o: ../cups/language-private.h ../cups/transcode.h
 ppdc-source.o: ../cups/thread-private.h ../cups/raster.h ../cups/ppd.h
 ppdc-source.o: ../data/epson.h ../data/hp.h ../data/label.h
 ppdc-string.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-string.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-string.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-string.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-string.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdc-string.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdc-string.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdc-string.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+ppdc-string.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-string.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-string.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdc-string.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdc-string.o: ../cups/language-private.h ../cups/transcode.h
 ppdc-string.o: ../cups/thread-private.h
 ppdc-variable.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc-variable.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdc-variable.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 ppdc-variable.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdc-variable.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdc-variable.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdc-variable.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdc-variable.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+ppdc-variable.o: ../cups/debug-private.h ../cups/versioning.h
+ppdc-variable.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdc-variable.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdc-variable.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdc-variable.o: ../cups/language-private.h ../cups/transcode.h
 ppdc-variable.o: ../cups/thread-private.h
 genstrings.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 genstrings.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 genstrings.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
 genstrings.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
-genstrings.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
-genstrings.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-genstrings.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-genstrings.o: ../cups/language-private.h ../cups/transcode.h
+genstrings.o: ../cups/versioning.h ../cups/ppd-private.h ../cups/ppd.h
+genstrings.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
+genstrings.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
+genstrings.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
 genstrings.o: ../cups/thread-private.h
 ppdc.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdc.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h
 ppdc.o: ../cups/http.h ../cups/array.h ../cups/language.h
 ppdc.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
-ppdc.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
-ppdc.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-ppdc.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-ppdc.o: ../cups/language-private.h ../cups/transcode.h
+ppdc.o: ../cups/versioning.h ../cups/ppd-private.h ../cups/ppd.h
+ppdc.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
+ppdc.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
+ppdc.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
 ppdc.o: ../cups/thread-private.h
 ppdhtml.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdhtml.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h
 ppdhtml.o: ../cups/http.h ../cups/array.h ../cups/language.h
 ppdhtml.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
-ppdhtml.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
-ppdhtml.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-ppdhtml.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-ppdhtml.o: ../cups/language-private.h ../cups/transcode.h
+ppdhtml.o: ../cups/versioning.h ../cups/ppd-private.h ../cups/ppd.h
+ppdhtml.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
+ppdhtml.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
+ppdhtml.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
 ppdhtml.o: ../cups/thread-private.h
 ppdi.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdi.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h
 ppdi.o: ../cups/http.h ../cups/array.h ../cups/language.h
 ppdi.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
-ppdi.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
-ppdi.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-ppdi.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-ppdi.o: ../cups/language-private.h ../cups/transcode.h
+ppdi.o: ../cups/versioning.h ../cups/ppd-private.h ../cups/ppd.h
+ppdi.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
+ppdi.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
+ppdi.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
 ppdi.o: ../cups/thread-private.h
 ppdmerge.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ppdmerge.o: ../cups/ipp.h ../cups/http.h ../cups/versioning.h ../cups/array.h
 ppdmerge.o: ../cups/language.h ../cups/string-private.h ../config.h
-ppdmerge.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ppdmerge.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ppdmerge.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ppdmerge.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+ppdmerge.o: ../cups/debug-private.h ../cups/versioning.h
+ppdmerge.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ppdmerge.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ppdmerge.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ppdmerge.o: ../cups/language-private.h ../cups/transcode.h
 ppdmerge.o: ../cups/thread-private.h ../cups/ppd-private.h ../cups/array.h
 ppdpo.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 ppdpo.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h
 ppdpo.o: ../cups/http.h ../cups/array.h ../cups/language.h
 ppdpo.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
-ppdpo.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
-ppdpo.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
-ppdpo.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
-ppdpo.o: ../cups/language-private.h ../cups/transcode.h
+ppdpo.o: ../cups/versioning.h ../cups/ppd-private.h ../cups/ppd.h
+ppdpo.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
+ppdpo.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
+ppdpo.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
 ppdpo.o: ../cups/thread-private.h
 testcatalog.o: ppdc-private.h ppdc.h ../cups/file.h ../cups/versioning.h
 testcatalog.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 testcatalog.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
 testcatalog.o: ../cups/language.h ../cups/string-private.h ../config.h
-testcatalog.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-testcatalog.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-testcatalog.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-testcatalog.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+testcatalog.o: ../cups/debug-private.h ../cups/versioning.h
+testcatalog.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+testcatalog.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+testcatalog.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+testcatalog.o: ../cups/language-private.h ../cups/transcode.h
 testcatalog.o: ../cups/thread-private.h
index 1cbb24ae14496a56e15acbc4bb38b2f3e5ea3cd5..db0388aa119c1c483fe1ae5dc2f92d47a266f419 100644 (file)
@@ -3,11 +3,11 @@
 auth.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 auth.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 auth.o: ../cups/language.h ../cups/string-private.h ../config.h
-auth.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-auth.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-auth.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-auth.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-auth.o: ../cups/thread-private.h ../cups/file-private.h
+auth.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+auth.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+auth.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+auth.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+auth.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
 auth.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h sysman.h
 auth.o: statbuf.h cert.h auth.h client.h policy.h printers.h
 auth.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
@@ -15,23 +15,23 @@ auth.o: network.h subscriptions.h
 banners.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 banners.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 banners.o: ../cups/language.h ../cups/string-private.h ../config.h
-banners.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-banners.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-banners.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-banners.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-banners.o: ../cups/thread-private.h ../cups/file-private.h
-banners.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
-banners.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h
-banners.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
-banners.o: network.h subscriptions.h ../cups/dir.h
+banners.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+banners.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+banners.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+banners.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+banners.o: ../cups/transcode.h ../cups/thread-private.h
+banners.o: ../cups/file-private.h ../cups/cups-private.h mime.h
+banners.o: ../cups/array.h ../cups/file.h sysman.h statbuf.h cert.h auth.h
+banners.o: client.h policy.h printers.h ../cups/pwg-private.h classes.h job.h
+banners.o: conf.h banners.h dirsvc.h network.h subscriptions.h ../cups/dir.h
 cert.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 cert.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 cert.o: ../cups/language.h ../cups/string-private.h ../config.h
-cert.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-cert.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-cert.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-cert.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-cert.o: ../cups/thread-private.h ../cups/file-private.h
+cert.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+cert.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+cert.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+cert.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+cert.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
 cert.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h sysman.h
 cert.o: statbuf.h cert.h auth.h client.h policy.h printers.h
 cert.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
@@ -39,23 +39,23 @@ cert.o: network.h subscriptions.h
 classes.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 classes.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 classes.o: ../cups/language.h ../cups/string-private.h ../config.h
-classes.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-classes.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-classes.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-classes.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-classes.o: ../cups/thread-private.h ../cups/file-private.h
-classes.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
-classes.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h
-classes.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
-classes.o: network.h subscriptions.h
+classes.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+classes.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+classes.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+classes.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+classes.o: ../cups/transcode.h ../cups/thread-private.h
+classes.o: ../cups/file-private.h ../cups/cups-private.h mime.h
+classes.o: ../cups/array.h ../cups/file.h sysman.h statbuf.h cert.h auth.h
+classes.o: client.h policy.h printers.h ../cups/pwg-private.h classes.h job.h
+classes.o: conf.h banners.h dirsvc.h network.h subscriptions.h
 client.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 client.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 client.o: ../cups/language.h ../cups/string-private.h ../config.h
-client.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-client.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-client.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-client.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-client.o: ../cups/thread-private.h ../cups/file-private.h
+client.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+client.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+client.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+client.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+client.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
 client.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
 client.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h
 client.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
@@ -63,11 +63,11 @@ client.o: network.h subscriptions.h
 conf.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 conf.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 conf.o: ../cups/language.h ../cups/string-private.h ../config.h
-conf.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-conf.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-conf.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-conf.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-conf.o: ../cups/thread-private.h ../cups/file-private.h
+conf.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+conf.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+conf.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+conf.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+conf.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
 conf.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h sysman.h
 conf.o: statbuf.h cert.h auth.h client.h policy.h printers.h
 conf.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
@@ -75,11 +75,11 @@ conf.o: network.h subscriptions.h
 dirsvc.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 dirsvc.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 dirsvc.o: ../cups/language.h ../cups/string-private.h ../config.h
-dirsvc.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-dirsvc.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-dirsvc.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-dirsvc.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-dirsvc.o: ../cups/thread-private.h ../cups/file-private.h
+dirsvc.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+dirsvc.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+dirsvc.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+dirsvc.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+dirsvc.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
 dirsvc.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
 dirsvc.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h
 dirsvc.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
@@ -87,22 +87,23 @@ dirsvc.o: network.h subscriptions.h
 env.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 env.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 env.o: ../cups/language.h ../cups/string-private.h ../config.h
-env.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-env.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-env.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-env.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-env.o: ../cups/thread-private.h ../cups/file-private.h ../cups/cups-private.h
-env.o: mime.h ../cups/array.h ../cups/file.h sysman.h statbuf.h cert.h auth.h
-env.o: client.h policy.h printers.h ../cups/pwg-private.h classes.h job.h
-env.o: conf.h banners.h dirsvc.h network.h subscriptions.h
+env.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+env.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+env.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+env.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+env.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
+env.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h sysman.h
+env.o: statbuf.h cert.h auth.h client.h policy.h printers.h
+env.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
+env.o: network.h subscriptions.h
 file.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 file.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 file.o: ../cups/language.h ../cups/string-private.h ../config.h
-file.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-file.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-file.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-file.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-file.o: ../cups/thread-private.h ../cups/file-private.h
+file.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+file.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+file.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+file.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+file.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
 file.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h sysman.h
 file.o: statbuf.h cert.h auth.h client.h policy.h printers.h
 file.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
@@ -110,11 +111,11 @@ file.o: network.h subscriptions.h ../cups/dir.h
 main.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 main.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 main.o: ../cups/language.h ../cups/string-private.h ../config.h
-main.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-main.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-main.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-main.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-main.o: ../cups/thread-private.h ../cups/file-private.h
+main.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+main.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+main.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+main.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+main.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
 main.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h sysman.h
 main.o: statbuf.h cert.h auth.h client.h policy.h printers.h
 main.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
@@ -122,23 +123,23 @@ main.o: network.h subscriptions.h
 ipp.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ipp.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 ipp.o: ../cups/language.h ../cups/string-private.h ../config.h
-ipp.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ipp.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ipp.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ipp.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-ipp.o: ../cups/thread-private.h ../cups/file-private.h ../cups/cups-private.h
-ipp.o: mime.h ../cups/array.h ../cups/file.h sysman.h statbuf.h cert.h auth.h
-ipp.o: client.h policy.h printers.h ../cups/pwg-private.h classes.h job.h
-ipp.o: conf.h banners.h dirsvc.h network.h subscriptions.h
-ipp.o: ../cups/ppd-private.h
+ipp.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+ipp.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+ipp.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+ipp.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+ipp.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
+ipp.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h sysman.h
+ipp.o: statbuf.h cert.h auth.h client.h policy.h printers.h
+ipp.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
+ipp.o: network.h subscriptions.h ../cups/ppd-private.h
 listen.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 listen.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 listen.o: ../cups/language.h ../cups/string-private.h ../config.h
-listen.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-listen.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-listen.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-listen.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-listen.o: ../cups/thread-private.h ../cups/file-private.h
+listen.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+listen.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+listen.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+listen.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+listen.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
 listen.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
 listen.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h
 listen.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
@@ -146,47 +147,48 @@ listen.o: network.h subscriptions.h
 job.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 job.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 job.o: ../cups/language.h ../cups/string-private.h ../config.h
-job.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-job.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-job.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-job.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-job.o: ../cups/thread-private.h ../cups/file-private.h ../cups/cups-private.h
-job.o: mime.h ../cups/array.h ../cups/file.h sysman.h statbuf.h cert.h auth.h
-job.o: client.h policy.h printers.h ../cups/pwg-private.h classes.h job.h
-job.o: conf.h banners.h dirsvc.h network.h subscriptions.h ../cups/backend.h
-job.o: ../cups/dir.h
+job.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+job.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+job.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+job.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+job.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
+job.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h sysman.h
+job.o: statbuf.h cert.h auth.h client.h policy.h printers.h
+job.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
+job.o: network.h subscriptions.h ../cups/backend.h ../cups/dir.h
 log.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 log.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 log.o: ../cups/language.h ../cups/string-private.h ../config.h
-log.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-log.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-log.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-log.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-log.o: ../cups/thread-private.h ../cups/file-private.h ../cups/cups-private.h
-log.o: mime.h ../cups/array.h ../cups/file.h sysman.h statbuf.h cert.h auth.h
-log.o: client.h policy.h printers.h ../cups/pwg-private.h classes.h job.h
-log.o: conf.h banners.h dirsvc.h network.h subscriptions.h
+log.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+log.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+log.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+log.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+log.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
+log.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h sysman.h
+log.o: statbuf.h cert.h auth.h client.h policy.h printers.h
+log.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
+log.o: network.h subscriptions.h
 network.o: ../cups/http-private.h ../config.h ../cups/http.h
 network.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h cupsd.h
 network.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 network.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 network.o: ../cups/language.h ../cups/string-private.h
-network.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-network.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-network.o: ../cups/language-private.h ../cups/transcode.h
-network.o: ../cups/thread-private.h ../cups/file-private.h
-network.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
-network.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h
-network.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
-network.o: network.h subscriptions.h
+network.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+network.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+network.o: ../cups/http-private.h ../cups/language-private.h
+network.o: ../cups/transcode.h ../cups/thread-private.h
+network.o: ../cups/file-private.h ../cups/cups-private.h mime.h
+network.o: ../cups/array.h ../cups/file.h sysman.h statbuf.h cert.h auth.h
+network.o: client.h policy.h printers.h ../cups/pwg-private.h classes.h job.h
+network.o: conf.h banners.h dirsvc.h network.h subscriptions.h
 policy.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 policy.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 policy.o: ../cups/language.h ../cups/string-private.h ../config.h
-policy.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-policy.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-policy.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-policy.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-policy.o: ../cups/thread-private.h ../cups/file-private.h
+policy.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+policy.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+policy.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+policy.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+policy.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
 policy.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
 policy.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h
 policy.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
@@ -194,10 +196,11 @@ policy.o: network.h subscriptions.h
 printers.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 printers.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 printers.o: ../cups/language.h ../cups/string-private.h ../config.h
-printers.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-printers.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-printers.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-printers.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+printers.o: ../cups/debug-private.h ../cups/versioning.h
+printers.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+printers.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+printers.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+printers.o: ../cups/language-private.h ../cups/transcode.h
 printers.o: ../cups/thread-private.h ../cups/file-private.h
 printers.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
 printers.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h
@@ -206,23 +209,23 @@ printers.o: network.h subscriptions.h ../cups/dir.h
 process.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 process.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 process.o: ../cups/language.h ../cups/string-private.h ../config.h
-process.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-process.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-process.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-process.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-process.o: ../cups/thread-private.h ../cups/file-private.h
-process.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
-process.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h
-process.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
-process.o: network.h subscriptions.h
+process.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+process.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+process.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+process.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+process.o: ../cups/transcode.h ../cups/thread-private.h
+process.o: ../cups/file-private.h ../cups/cups-private.h mime.h
+process.o: ../cups/array.h ../cups/file.h sysman.h statbuf.h cert.h auth.h
+process.o: client.h policy.h printers.h ../cups/pwg-private.h classes.h job.h
+process.o: conf.h banners.h dirsvc.h network.h subscriptions.h
 quotas.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 quotas.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 quotas.o: ../cups/language.h ../cups/string-private.h ../config.h
-quotas.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-quotas.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-quotas.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-quotas.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-quotas.o: ../cups/thread-private.h ../cups/file-private.h
+quotas.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+quotas.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+quotas.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+quotas.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+quotas.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
 quotas.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
 quotas.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h
 quotas.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
@@ -230,11 +233,11 @@ quotas.o: network.h subscriptions.h
 select.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 select.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 select.o: ../cups/language.h ../cups/string-private.h ../config.h
-select.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-select.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-select.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-select.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-select.o: ../cups/thread-private.h ../cups/file-private.h
+select.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+select.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+select.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+select.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+select.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
 select.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
 select.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h
 select.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
@@ -244,8 +247,8 @@ server.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h cupsd.h
 server.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 server.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 server.o: ../cups/language.h ../cups/string-private.h ../cups/debug-private.h
-server.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
-server.o: ../cups/pwg-private.h ../cups/http-private.h
+server.o: ../cups/versioning.h ../cups/ppd-private.h ../cups/ppd.h
+server.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
 server.o: ../cups/language-private.h ../cups/transcode.h
 server.o: ../cups/thread-private.h ../cups/file-private.h
 server.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
@@ -255,22 +258,22 @@ server.o: network.h subscriptions.h
 statbuf.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 statbuf.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 statbuf.o: ../cups/language.h ../cups/string-private.h ../config.h
-statbuf.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-statbuf.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-statbuf.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-statbuf.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-statbuf.o: ../cups/thread-private.h ../cups/file-private.h
-statbuf.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
-statbuf.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h
-statbuf.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
-statbuf.o: network.h subscriptions.h
+statbuf.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+statbuf.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+statbuf.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+statbuf.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+statbuf.o: ../cups/transcode.h ../cups/thread-private.h
+statbuf.o: ../cups/file-private.h ../cups/cups-private.h mime.h
+statbuf.o: ../cups/array.h ../cups/file.h sysman.h statbuf.h cert.h auth.h
+statbuf.o: client.h policy.h printers.h ../cups/pwg-private.h classes.h job.h
+statbuf.o: conf.h banners.h dirsvc.h network.h subscriptions.h
 subscriptions.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 subscriptions.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 subscriptions.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-subscriptions.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-subscriptions.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-subscriptions.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-subscriptions.o: ../cups/ipp-private.h ../cups/ipp.h
+subscriptions.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+subscriptions.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+subscriptions.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+subscriptions.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
 subscriptions.o: ../cups/language-private.h ../cups/transcode.h
 subscriptions.o: ../cups/thread-private.h ../cups/file-private.h
 subscriptions.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
@@ -280,32 +283,35 @@ subscriptions.o: banners.h dirsvc.h network.h subscriptions.h
 sysman.o: cupsd.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 sysman.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 sysman.o: ../cups/language.h ../cups/string-private.h ../config.h
-sysman.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-sysman.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-sysman.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-sysman.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-sysman.o: ../cups/thread-private.h ../cups/file-private.h
+sysman.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+sysman.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+sysman.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+sysman.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+sysman.o: ../cups/transcode.h ../cups/thread-private.h ../cups/file-private.h
 sysman.o: ../cups/cups-private.h mime.h ../cups/array.h ../cups/file.h
 sysman.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h
 sysman.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h
 sysman.o: network.h subscriptions.h
-filter.o: ../cups/string-private.h ../config.h ../cups/debug-private.h mime.h
-filter.o: ../cups/array.h ../cups/ipp.h ../cups/file.h
+filter.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
+filter.o: ../cups/versioning.h mime.h ../cups/array.h ../cups/ipp.h
+filter.o: ../cups/file.h
 mime.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
-mime.o: ../cups/dir.h ../cups/versioning.h mime-private.h mime.h
-mime.o: ../cups/array.h ../cups/ipp.h ../cups/file.h
-type.o: ../cups/string-private.h ../config.h ../cups/debug-private.h mime.h
-type.o: ../cups/array.h ../cups/ipp.h ../cups/file.h
+mime.o: ../cups/versioning.h ../cups/dir.h ../cups/versioning.h
+mime.o: mime-private.h mime.h ../cups/array.h ../cups/ipp.h ../cups/file.h
+type.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
+type.o: ../cups/versioning.h mime.h ../cups/array.h ../cups/ipp.h
+type.o: ../cups/file.h
 cupsfilter.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 cupsfilter.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 cupsfilter.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-cupsfilter.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-cupsfilter.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-cupsfilter.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-cupsfilter.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-cupsfilter.o: ../cups/transcode.h ../cups/thread-private.h
-cupsfilter.o: ../cups/file-private.h ../cups/cups-private.h
-cupsfilter.o: ../cups/ppd-private.h mime.h ../cups/array.h ../cups/file.h
+cupsfilter.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+cupsfilter.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+cupsfilter.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+cupsfilter.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+cupsfilter.o: ../cups/language-private.h ../cups/transcode.h
+cupsfilter.o: ../cups/thread-private.h ../cups/file-private.h
+cupsfilter.o: ../cups/cups-private.h ../cups/ppd-private.h mime.h
+cupsfilter.o: ../cups/array.h ../cups/file.h
 cups-deviced.o: util.h ../cups/array-private.h ../cups/array.h
 cups-deviced.o: ../cups/versioning.h ../cups/file-private.h
 cups-deviced.o: ../cups/cups-private.h ../cups/array.h ../cups/dir.h
@@ -313,19 +319,21 @@ cups-exec.o: ../cups/string-private.h ../config.h
 cups-lpd.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 cups-lpd.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 cups-lpd.o: ../cups/language.h ../cups/string-private.h ../config.h
-cups-lpd.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-cups-lpd.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-cups-lpd.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-cups-lpd.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+cups-lpd.o: ../cups/debug-private.h ../cups/versioning.h
+cups-lpd.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+cups-lpd.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+cups-lpd.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+cups-lpd.o: ../cups/language-private.h ../cups/transcode.h
 cups-lpd.o: ../cups/thread-private.h
 cups-polld.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 cups-polld.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 cups-polld.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-cups-polld.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-cups-polld.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-cups-polld.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-cups-polld.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-cups-polld.o: ../cups/transcode.h ../cups/thread-private.h
+cups-polld.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+cups-polld.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+cups-polld.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+cups-polld.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+cups-polld.o: ../cups/language-private.h ../cups/transcode.h
+cups-polld.o: ../cups/thread-private.h
 testdirsvc.o: ../cups/cups.h ../cups/file.h ../cups/versioning.h
 testdirsvc.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
 testdirsvc.o: ../cups/string-private.h ../config.h
@@ -333,16 +341,17 @@ testlpd.o: ../cups/cups.h ../cups/file.h ../cups/versioning.h ../cups/ipp.h
 testlpd.o: ../cups/http.h ../cups/array.h ../cups/language.h
 testlpd.o: ../cups/string-private.h ../config.h
 testmime.o: ../cups/string-private.h ../config.h ../cups/dir.h
-testmime.o: ../cups/versioning.h ../cups/debug-private.h
+testmime.o: ../cups/versioning.h ../cups/debug-private.h ../cups/versioning.h
 testmime.o: ../cups/ppd-private.h mime.h ../cups/array.h ../cups/ipp.h
 testmime.o: ../cups/file.h
 testspeed.o: ../cups/string-private.h ../config.h ../cups/cups.h
 testspeed.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 testspeed.o: ../cups/array.h ../cups/language.h ../cups/language.h
-testspeed.o: ../cups/debug-private.h
+testspeed.o: ../cups/debug-private.h ../cups/versioning.h
 testsub.o: ../cups/cups.h ../cups/file.h ../cups/versioning.h ../cups/ipp.h
 testsub.o: ../cups/http.h ../cups/array.h ../cups/language.h
-testsub.o: ../cups/debug-private.h ../cups/string-private.h ../config.h
+testsub.o: ../cups/debug-private.h ../cups/versioning.h
+testsub.o: ../cups/string-private.h ../config.h
 util.o: util.h ../cups/array-private.h ../cups/array.h ../cups/versioning.h
 util.o: ../cups/file-private.h ../cups/cups-private.h
 cups-driverd.o: util.h ../cups/array-private.h ../cups/array.h
index 83f90e5e7592c289f0feaadd3cbd3eb0ddb15799..01f16634eb57d0f20e3d8e95e46a947140312dc3 100644 (file)
@@ -2078,7 +2078,7 @@ cupsdIsAuthorized(cupsd_client_t *con,    /* I - Connection */
         return (HTTP_OK);
     }
 
-    return (HTTP_FORBIDDEN);
+    return (con->username[0] ? HTTP_FORBIDDEN : HTTP_UNAUTHORIZED);
   }
 
  /*
@@ -2117,7 +2117,7 @@ cupsdIsAuthorized(cupsd_client_t *con,    /* I - Connection */
   cupsdLogMessage(CUPSD_LOG_DEBUG,
                   "cupsdIsAuthorized: User not in group(s)!");
 
-  return (HTTP_FORBIDDEN);
+  return (con->username[0] ? HTTP_FORBIDDEN : HTTP_UNAUTHORIZED);
 }
 
 
index 9ee65ab742679ad1eff6cda4cc971b0ed229dcf9..c8995916a539a6a7df52d79b040823776e6f8457 100644 (file)
  *
  * Contents:
  *
- *   cupsdAcceptClient()    - Accept a new client.
- *   cupsdCloseAllClients() - Close all remote clients immediately.
- *   cupsdCloseClient()     - Close a remote client.
- *   cupsdFlushHeader()     - Flush the header fields to the client.
- *   cupsdReadClient()      - Read data from a client.
- *   cupsdSendCommand()     - Send output from a command via HTTP.
- *   cupsdSendError()       - Send an error message via HTTP.
- *   cupsdSendHeader()      - Send an HTTP request.
- *   cupsdUpdateCGI()       - Read status messages from CGI scripts and
- *                            programs.
- *   cupsdWriteClient()     - Write data to a client as needed.
- *   check_if_modified()    - Decode an "If-Modified-Since" line.
- *   compare_clients()      - Compare two client connections.
- *   data_ready()           - Check whether data is available from a client.
- *   encrypt_client()       - Enable encryption for the client...
- *   get_cdsa_certificate() - Get a SSL/TLS certificate from the System
- *                            keychain.
- *   get_file()             - Get a filename and state info.
- *   install_conf_file()    - Install a configuration file.
- *   is_cgi()               - Is the resource a CGI script/program?
- *   is_path_absolute()     - Is a path absolute and free of relative elements
- *                            (i.e. "..").
- *   make_certificate()     - Make a self-signed SSL/TLS certificate.
- *   pipe_command()         - Pipe the output of a command to the remote client.
- *   valid_host()           - Is the Host: field valid?
- *   write_file()           - Send a file via HTTP.
- *   write_pipe()           - Flag that data is available on the CGI pipe.
+ *   cupsdAcceptClient()     - Accept a new client.
+ *   cupsdCloseAllClients()  - Close all remote clients immediately.
+ *   cupsdCloseClient()      - Close a remote client.
+ *   cupsdFlushHeader()      - Flush the header fields to the client.
+ *   cupsdReadClient()       - Read data from a client.
+ *   cupsdSendCommand()      - Send output from a command via HTTP.
+ *   cupsdSendError()        - Send an error message via HTTP.
+ *   cupsdSendHeader()       - Send an HTTP request.
+ *   cupsdUpdateCGI()        - Read status messages from CGI scripts and
+ *                             programs.
+ *   cupsdWriteClient()      - Write data to a client as needed.
+ *   check_if_modified()     - Decode an "If-Modified-Since" line.
+ *   compare_clients()       - Compare two client connections.
+ *   copy_cdsa_certificate() - Copy a SSL/TLS certificate from the System
+ *                             keychain.
+ *   data_ready()            - Check whether data is available from a client.
+ *   encrypt_client()        - Enable encryption for the client...
+ *   get_file()              - Get a filename and state info.
+ *   install_conf_file()     - Install a configuration file.
+ *   is_cgi()                - Is the resource a CGI script/program?
+ *   is_path_absolute()      - Is a path absolute and free of relative elements
+ *                             (i.e. "..").
+ *   make_certificate()      - Make a self-signed SSL/TLS certificate.
+ *   pipe_command()          - Pipe the output of a command to the remote
+ *                             client.
+ *   valid_host()            - Is the Host: field valid?
+ *   write_file()            - Send a file via HTTP.
+ *   write_pipe()            - Flag that data is available on the CGI pipe.
  */
 
 /*
 #endif /* HAVE_TCPD_H */
 
 
+/*
+ * Local globals...
+ */
+
+static const char      * const http_states[] =
+                       {               /* HTTP state strings */
+                         "HTTP_WAITING",
+                         "HTTP_OPTIONS",
+                         "HTTP_GET",
+                         "HTTP_GET_SEND",
+                         "HTTP_HEAD",
+                         "HTTP_POST",
+                         "HTTP_POST_RECV",
+                         "HTTP_POST_SEND",
+                         "HTTP_PUT",
+                         "HTTP_PUT_RECV",
+                         "HTTP_DELETE",
+                         "HTTP_TRACE",
+                         "HTTP_CLOSE",
+                         "HTTP_STATUS"
+                       };
+static const char      * const ipp_states[] =
+                       {               /* IPP state strings */
+                         "IPP_IDLE",
+                         "IPP_HEADER",
+                         "IPP_ATTRIBUTE",
+                         "IPP_DATA"
+                       };
+
+
 /*
  * Local functions...
  */
@@ -65,13 +96,13 @@ static int          check_if_modified(cupsd_client_t *con,
                                          struct stat *filestats);
 static int             compare_clients(cupsd_client_t *a, cupsd_client_t *b,
                                        void *data);
+#ifdef HAVE_CDSASSL
+static CFArrayRef      copy_cdsa_certificate(cupsd_client_t *con);
+#endif /* HAVE_CDSASSL */
 static int             data_ready(cupsd_client_t *con);
 #ifdef HAVE_SSL
 static int             encrypt_client(cupsd_client_t *con);
 #endif /* HAVE_SSL */
-#ifdef HAVE_CDSASSL
-static CFArrayRef      get_cdsa_certificate(cupsd_client_t *con);
-#endif /* HAVE_CDSASSL */
 static char            *get_file(cupsd_client_t *con, struct stat *filestats,
                                  char *filename, int len);
 static http_status_t   install_conf_file(cupsd_client_t *con);
@@ -156,9 +187,10 @@ cupsdAcceptClient(cupsd_listener_t *lis)/* I - Listener socket */
     return;
   }
 
-  con->http.activity = time(NULL);
-  con->file          = -1;
-  con->http.hostaddr = &(con->clientaddr);
+  con->http.activity   = time(NULL);
+  con->file            = -1;
+  con->http.hostaddr   = &(con->clientaddr);
+  con->http.wait_value = 10000;
 
  /*
   * Accept the client and get the remote address...
@@ -354,11 +386,11 @@ cupsdAcceptClient(cupsd_listener_t *lis)/* I - Listener socket */
 
 #ifdef AF_LOCAL
   if (con->http.hostaddr->addr.sa_family == AF_LOCAL)
-    cupsdLogMessage(CUPSD_LOG_DEBUG, "cupsdAcceptClient: %d from %s (Domain)",
+    cupsdLogMessage(CUPSD_LOG_DEBUG, "[Client %d] Accepted from %s (Domain)",
                     con->http.fd, con->http.hostname);
   else
 #endif /* AF_LOCAL */
-  cupsdLogMessage(CUPSD_LOG_DEBUG, "cupsdAcceptClient: %d from %s:%d (IPv%d)",
+  cupsdLogMessage(CUPSD_LOG_DEBUG, "[Client %d] Accepted from %s:%d (IPv%d)",
                   con->http.fd, con->http.hostname,
                  _httpAddrPort(con->http.hostaddr),
                  _httpAddrFamily(con->http.hostaddr) == AF_INET ? 4 : 6);
@@ -487,7 +519,8 @@ cupsdCloseClient(cupsd_client_t *con)       /* I - Client to close */
 #endif /* HAVE_LIBSSL */
 
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG, "cupsdCloseClient: %d", con->http.fd);
+  cupsdLogMessage(CUPSD_LOG_DEBUG, "[Client %d] Closing connection.",
+                  con->http.fd);
 
  /*
   * Flush pending writes before closing...
@@ -717,18 +750,22 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
   status = HTTP_CONTINUE;
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                 "cupsdReadClient(con=%p(%d)) "
-                 "con->http.error=%d "
-                 "con->http.used=%d, "
-                 "con->http.state=%d "
-                 "con->data_encoding=HTTP_ENCODE_%s, "
-                 "con->data_remaining=" CUPS_LLFMT ", "
-                 "con->file=%d",
-                 con, con->http.fd, con->http.error, con->http.used,
-                 con->http.state,
+                 "[Client %d] cupsdReadClient "
+                 "error=%d, "
+                 "used=%d, "
+                 "state=%s, "
+                 "data_encoding=HTTP_ENCODE_%s, "
+                 "data_remaining=" CUPS_LLFMT ", "
+                 "request=%p(%s), "
+                 "file=%d",
+                 con->http.fd, con->http.error, con->http.used,
+                 http_states[con->http.state],
                  con->http.data_encoding == HTTP_ENCODE_CHUNKED ?
                      "CHUNKED" : "LENGTH",
-                 CUPS_LLCAST con->http.data_remaining, con->file);
+                 CUPS_LLCAST con->http.data_remaining,
+                 con->request,
+                 con->request ? ipp_states[con->request->state] : "",
+                 con->file);
 
 #ifdef HAVE_SSL
   if (con->auto_ssl)
@@ -747,8 +784,8 @@ cupsdReadClient(cupsd_client_t *con)        /* I - Client to read from */
       */
 
       cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                      "cupsdReadClient: Saw first byte %02X, auto-negotiating "
-                     "SSL/TLS session...", buf[0] & 255);
+                      "[Client %d] Saw first byte %02X, auto-negotiating "
+                     "SSL/TLS session.", con->http.fd, buf[0] & 255);
 
       if (!encrypt_client(con))
         cupsdCloseClient(con);
@@ -769,12 +806,12 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
        {
          if (con->http.error && con->http.error != EPIPE)
            cupsdLogMessage(CUPSD_LOG_DEBUG,
-                           "cupsdReadClient: %d WAITING Closing for error %d "
+                           "[Client %d] HTTP_WAITING Closing for error %d "
                            "(%s)", con->http.fd, con->http.error,
                            strerror(con->http.error));
          else
            cupsdLogMessage(CUPSD_LOG_DEBUG,
-                           "cupsdReadClient: %d WAITING Closing on EOF",
+                           "[Client %d] HTTP_WAITING Closing on EOF",
                            con->http.fd);
 
          cupsdCloseClient(con);
@@ -846,7 +883,8 @@ cupsdReadClient(cupsd_client_t *con)        /* I - Client to read from */
              if (line[0])
              {
                cupsdLogMessage(CUPSD_LOG_ERROR,
-                               "Bad request line \"%s\" from %s!",
+                               "[Client %d] Bad request line \"%s\" from %s.",
+                               con->http.fd,
                                _httpEncodeURI(buf, line, sizeof(buf)),
                                con->http.hostname);
                cupsdSendError(con, HTTP_BAD_REQUEST, CUPSD_AUTH_NONE);
@@ -860,7 +898,8 @@ cupsdReadClient(cupsd_client_t *con)        /* I - Client to read from */
              if (sscanf(version, "HTTP/%d.%d", &major, &minor) != 2)
              {
                cupsdLogMessage(CUPSD_LOG_ERROR,
-                               "Bad request line \"%s\" from %s!",
+                               "[Client %d] Bad request line \"%s\" from %s.",
+                               con->http.fd,
                                _httpEncodeURI(buf, line, sizeof(buf)),
                                con->http.hostname);
                cupsdSendError(con, HTTP_BAD_REQUEST, CUPSD_AUTH_NONE);
@@ -879,7 +918,8 @@ cupsdReadClient(cupsd_client_t *con)        /* I - Client to read from */
              else
              {
                cupsdLogMessage(CUPSD_LOG_ERROR,
-                               "Unsupported request line \"%s\" from %s!",
+                               "[Client %d] Unsupported request line \"%s\" "
+                               "from %s.", con->http.fd,
                                _httpEncodeURI(buf, line, sizeof(buf)),
                                con->http.hostname);
                cupsdSendError(con, HTTP_NOT_SUPPORTED, CUPSD_AUTH_NONE);
@@ -926,8 +966,9 @@ cupsdReadClient(cupsd_client_t *con)        /* I - Client to read from */
            * Nope, we don't do proxies...
            */
 
-           cupsdLogMessage(CUPSD_LOG_ERROR, "Bad URI \"%s\" in request!",
-                           con->uri);
+           cupsdLogMessage(CUPSD_LOG_ERROR,
+                           "[Client %d] Bad URI \"%s\" in request.",
+                           con->http.fd, con->uri);
            cupsdSendError(con, HTTP_METHOD_NOT_ALLOWED, CUPSD_AUTH_NONE);
            cupsdCloseClient(con);
            return;
@@ -961,7 +1002,9 @@ cupsdReadClient(cupsd_client_t *con)       /* I - Client to read from */
          con->http.state = HTTP_HEAD;
        else
        {
-         cupsdLogMessage(CUPSD_LOG_ERROR, "Bad operation \"%s\"!", operation);
+         cupsdLogMessage(CUPSD_LOG_ERROR,
+                         "[Client %d] Bad operation \"%s\".", con->http.fd,
+                         operation);
          cupsdSendError(con, HTTP_BAD_REQUEST, CUPSD_AUTH_NONE);
          cupsdCloseClient(con);
          return;
@@ -970,7 +1013,7 @@ cupsdReadClient(cupsd_client_t *con)       /* I - Client to read from */
         gettimeofday(&(con->start), NULL);
         con->operation = con->http.state;
 
-        cupsdLogMessage(CUPSD_LOG_DEBUG, "cupsdReadClient: %d %s %s HTTP/%d.%d",
+        cupsdLogMessage(CUPSD_LOG_DEBUG, "[Client %d] %s %s HTTP/%d.%d",
                        con->http.fd, operation, con->uri,
                        con->http.version / 100, con->http.version % 100);
 
@@ -1001,13 +1044,14 @@ cupsdReadClient(cupsd_client_t *con)    /* I - Client to read from */
        {
          if (con->http.error && con->http.error != EPIPE)
            cupsdLogMessage(CUPSD_LOG_DEBUG,
-                           "cupsdReadClient: %d FIELDS Closing for error %d "
-                           "(%s)", con->http.fd, con->http.error,
+                           "[Client %d] Closing for error %d (%s) while "
+                           "reading headers.",
+                           con->http.fd, con->http.error,
                            strerror(con->http.error));
          else
            cupsdLogMessage(CUPSD_LOG_DEBUG,
-                           "cupsdReadClient: %d FIELDS Closing on EOF",
-                           con->http.fd);
+                           "[Client %d] Closing on EOF while reading headers.",
+                           con->http.fd);
 
          cupsdSendError(con, HTTP_BAD_REQUEST, CUPSD_AUTH_NONE);
          cupsdCloseClient(con);
@@ -1023,7 +1067,7 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
          */
 
          cupsdLogMessage(CUPSD_LOG_DEBUG,
-                         "cupsdReadClient: %d Closing on EOF", con->http.fd);
+                         "[Client %d] Closing on EOF", con->http.fd);
           cupsdCloseClient(con);
          return;
        }
@@ -1076,10 +1120,11 @@ cupsdReadClient(cupsd_client_t *con)    /* I - Client to read from */
 
     cupsdAuthorize(con);
 
-    if (!_cups_strncasecmp(con->http.fields[HTTP_FIELD_CONNECTION], "Keep-Alive",
-                    10) && KeepAlive)
+    if (!_cups_strncasecmp(con->http.fields[HTTP_FIELD_CONNECTION],
+                           "Keep-Alive", 10) && KeepAlive)
       con->http.keep_alive = HTTP_KEEPALIVE_ON;
-    else if (!_cups_strncasecmp(con->http.fields[HTTP_FIELD_CONNECTION], "close", 5))
+    else if (!_cups_strncasecmp(con->http.fields[HTTP_FIELD_CONNECTION],
+                                "close", 5))
       con->http.keep_alive = HTTP_KEEPALIVE_OFF;
 
     if (!con->http.fields[HTTP_FIELD_HOST][0] &&
@@ -1091,7 +1136,9 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
 
       if (!cupsdSendError(con, HTTP_BAD_REQUEST, CUPSD_AUTH_NONE))
       {
-        cupsdLogMessage(CUPSD_LOG_ERROR, "Missing Host: field in request!");
+        cupsdLogMessage(CUPSD_LOG_ERROR,
+                        "[Client %d] Missing Host: field in request.",
+                        con->http.fd);
        cupsdCloseClient(con);
        return;
       }
@@ -1104,8 +1151,9 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
       */
 
       cupsdLogMessage(CUPSD_LOG_ERROR,
-                      "Request from \"%s\" using invalid Host: field \"%s\"",
-                     con->http.hostname, con->http.fields[HTTP_FIELD_HOST]);
+                      "[Client %d] Request from \"%s\" using invalid Host: "
+                      "field \"%s\"", con->http.fd, con->http.hostname,
+                      con->http.fields[HTTP_FIELD_HOST]);
 
       if (!cupsdSendError(con, HTTP_BAD_REQUEST, CUPSD_AUTH_NONE))
       {
@@ -1190,7 +1238,8 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
       */
 
       cupsdLogMessage(CUPSD_LOG_ERROR,
-                      "Request for non-absolute resource \"%s\"!", con->uri);
+                      "[Client %d] Request for non-absolute resource \"%s\".",
+                      con->http.fd, con->uri);
 
       if (!cupsdSendError(con, HTTP_FORBIDDEN, CUPSD_AUTH_NONE))
       {
@@ -1200,15 +1249,16 @@ cupsdReadClient(cupsd_client_t *con)    /* I - Client to read from */
     }
     else
     {
-      if (!_cups_strcasecmp(con->http.fields[HTTP_FIELD_CONNECTION], "Upgrade") &&
-         con->http.tls == NULL)
+      if (!_cups_strcasecmp(con->http.fields[HTTP_FIELD_CONNECTION],
+                            "Upgrade") && con->http.tls == NULL)
       {
 #ifdef HAVE_SSL
        /*
         * Do encryption stuff...
        */
 
-       if (!cupsdSendHeader(con, HTTP_SWITCHING_PROTOCOLS, NULL, CUPSD_AUTH_NONE))
+       if (!cupsdSendHeader(con, HTTP_SWITCHING_PROTOCOLS, NULL,
+                            CUPSD_AUTH_NONE))
        {
          cupsdCloseClient(con);
          return;
@@ -1693,7 +1743,8 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
              */
 
              cupsdLogMessage(CUPSD_LOG_ERROR,
-                             "Request for subdirectory \"%s\"!", con->uri);
+                             "[Client %d] Request for subdirectory \"%s\".",
+                             con->http.fd, con->uri);
 
              if (!cupsdSendError(con, HTTP_FORBIDDEN, CUPSD_AUTH_NONE))
              {
@@ -1751,8 +1802,9 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
            if (con->file < 0)
            {
              cupsdLogMessage(CUPSD_LOG_ERROR,
-                             "Unable to create request file %s: %s",
-                             con->filename, strerror(errno));
+                             "[Client %d] Unable to create request file "
+                             "\"%s\": %s", con->http.fd, con->filename,
+                             strerror(errno));
 
              if (!cupsdSendError(con, HTTP_REQUEST_TOO_LARGE, CUPSD_AUTH_NONE))
              {
@@ -1888,7 +1940,8 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
              */
 
              cupsdLogMessage(CUPSD_LOG_ERROR,
-                             "Request for subdirectory \"%s\"!", con->uri);
+                             "[Client %d] Request for subdirectory \"%s\".",
+                             con->http.fd, con->uri);
 
              if (!cupsdSendError(con, HTTP_FORBIDDEN, CUPSD_AUTH_NONE))
              {
@@ -1989,12 +2042,12 @@ cupsdReadClient(cupsd_client_t *con)    /* I - Client to read from */
          {
            if (con->http.error && con->http.error != EPIPE)
              cupsdLogMessage(CUPSD_LOG_DEBUG,
-                             "cupsdReadClient: %d PUT_RECV Closing for error "
+                             "[Client %d] HTTP_PUT_RECV Closing for error "
                              "%d (%s)", con->http.fd, con->http.error,
                              strerror(con->http.error));
            else
              cupsdLogMessage(CUPSD_LOG_DEBUG,
-                             "cupsdReadClient: %d PUT_RECV Closing on EOF",
+                             "[Client %d] HTTP_PUT_RECV Closing on EOF",
                              con->http.fd);
 
            cupsdCloseClient(con);
@@ -2007,8 +2060,9 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
             if (write(con->file, line, bytes) < bytes)
            {
               cupsdLogMessage(CUPSD_LOG_ERROR,
-                             "cupsdReadClient: Unable to write %d bytes to %s: %s",
-                             bytes, con->filename, strerror(errno));
+                             "[Client %d] Unable to write %d bytes to "
+                             "\"%s\": %s", con->http.fd, bytes, con->filename,
+                             strerror(errno));
 
              close(con->file);
              con->file = -1;
@@ -2083,8 +2137,8 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
            if ((ipp_state = ippRead(&(con->http), con->request)) == IPP_ERROR)
            {
               cupsdLogMessage(CUPSD_LOG_ERROR,
-                             "cupsdReadClient: %d IPP Read Error!",
-                             con->http.fd);
+                              "[Client %d] IPP read error: %s", con->http.fd,
+                              cupsLastErrorString());
 
              cupsdSendError(con, HTTP_BAD_REQUEST, CUPSD_AUTH_NONE);
              cupsdCloseClient(con);
@@ -2103,7 +2157,7 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
             }
            else
            {
-             cupsdLogMessage(CUPSD_LOG_DEBUG, "cupsdReadClient: %d %d.%d %s %d",
+             cupsdLogMessage(CUPSD_LOG_DEBUG, "[Client %d] %d.%d %s %d",
                              con->http.fd, con->request->request.op.version[0],
                              con->request->request.op.version[1],
                              ippOpString(con->request->request.op.operation_id),
@@ -2125,8 +2179,9 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
            if (con->file < 0)
            {
              cupsdLogMessage(CUPSD_LOG_ERROR,
-                             "Unable to create request file %s: %s",
-                             con->filename, strerror(errno));
+                             "[Client %d] Unable to create request file "
+                             "\"%s\": %s", con->http.fd, con->filename,
+                             strerror(errno));
 
              if (!cupsdSendError(con, HTTP_REQUEST_TOO_LARGE, CUPSD_AUTH_NONE))
              {
@@ -2146,12 +2201,12 @@ cupsdReadClient(cupsd_client_t *con)    /* I - Client to read from */
            {
              if (con->http.error && con->http.error != EPIPE)
                cupsdLogMessage(CUPSD_LOG_DEBUG,
-                               "cupsdReadClient: %d POST_SEND Closing for "
+                               "[Client %d] HTTP_POST_SEND Closing for "
                                "error %d (%s)", con->http.fd, con->http.error,
                                strerror(con->http.error));
              else
                cupsdLogMessage(CUPSD_LOG_DEBUG,
-                               "cupsdReadClient: %d POST_SEND Closing on EOF",
+                               "[Client %d] HTTP_POST_SEND Closing on EOF",
                                con->http.fd);
 
              cupsdCloseClient(con);
@@ -2164,9 +2219,9 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
               if (write(con->file, line, bytes) < bytes)
              {
                cupsdLogMessage(CUPSD_LOG_ERROR,
-                               "cupsdReadClient: Unable to write %d bytes to "
-                               "%s: %s", bytes, con->filename,
-                               strerror(errno));
+                               "[Client %d] Unable to write %d bytes to "
+                               "\"%s\": %s", con->http.fd, bytes,
+                               con->filename, strerror(errno));
 
                close(con->file);
                con->file = -1;
@@ -2186,8 +2241,8 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
            else if (con->http.state != HTTP_POST_SEND)
            {
              cupsdLogMessage(CUPSD_LOG_DEBUG,
-                             "cupsdReadClient: %d Closing on unknown HTTP "
-                             "state %d", con->http.fd, con->http.state);
+                             "[Client %d] Closing on unexpected state %s.",
+                             con->http.fd, http_states[con->http.state]);
              cupsdCloseClient(con);
              return;
            }
@@ -2279,7 +2334,7 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
     if (!con->http.keep_alive)
     {
       cupsdLogMessage(CUPSD_LOG_DEBUG,
-                     "cupsdReadClient: %d Closing because Keep-Alive disabled",
+                     "[Client %d] Closing because Keep-Alive disabled",
                      con->http.fd);
       cupsdCloseClient(con);
     }
@@ -2313,7 +2368,7 @@ cupsdSendCommand(
     if (fd < 0)
     {
       cupsdLogMessage(CUPSD_LOG_ERROR,
-                      "cupsdSendCommand: %d Unable to open \"%s\" for reading: %s",
+                      "[Client %d] Unable to open \"%s\" for reading: %s",
                       con->http.fd, con->filename ? con->filename : "/dev/null",
                      strerror(errno));
       return (0);
@@ -2329,11 +2384,11 @@ cupsdSendCommand(
   if (fd >= 0)
     close(fd);
 
-  cupsdLogMessage(CUPSD_LOG_INFO, "Started \"%s\" (pid=%d)", command,
-                  con->pipe_pid);
+  cupsdLogMessage(CUPSD_LOG_INFO, "[Client %d] Started \"%s\" (pid=%d)",
+                  con->http.fd, command, con->pipe_pid);
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG, "cupsdSendCommand: %d file=%d",
-                  con->http.fd, con->file);
+  cupsdLogMessage(CUPSD_LOG_DEBUG, "[Client %d] file=%d", con->http.fd,
+                  con->file);
 
   if (con->pipe_pid == 0)
     return (0);
@@ -2361,7 +2416,7 @@ cupsdSendError(cupsd_client_t *con,       /* I - Connection */
               int            auth_type)/* I - Authentication type */
 {
   cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                  "cupsdSendError(con=%p(%d), code=%d, auth_type=%d", con,
+                  "[Client %d] cupsdSendError code=%d, auth_type=%d",
                  con->http.fd, code, auth_type);
 
 #ifdef HAVE_SSL
@@ -2517,10 +2572,6 @@ cupsdSendHeader(
     int            auth_type)          /* I - Type of authentication */
 {
   char         auth_str[1024];         /* Authorization string */
-#if 0 /* def HAVE_GSSAPI */
-  static char  *gss_buf = NULL;        /* Kerberos auth data buffer */
-  static int   gss_bufsize = 0;        /* Size of Kerberos auth data buffer */
-#endif /* HAVE_GSSAPI */
 
 
  /*
@@ -2650,7 +2701,7 @@ cupsdSendHeader(
     if (auth_str[0])
     {
       cupsdLogMessage(CUPSD_LOG_DEBUG,
-                      "cupsdSendHeader: %d WWW-Authenticate: %s", con->http.fd,
+                      "[Client %d] WWW-Authenticate: %s", con->http.fd,
                       auth_str);
 
       if (httpPrintf(HTTP(con), "WWW-Authenticate: %s\r\n", auth_str) < 0)
@@ -2731,11 +2782,23 @@ cupsdWriteClient(cupsd_client_t *con)   /* I - Client connection */
 
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                  "cupsdWriteClient(con=%p(%d)) response=%p(%d), file=%d "
-                 "pipe_pid=%d state=%d",
-                  con, con->http.fd, con->response,
-                 con->response ? con->response->state : -1,
-                 con->file, con->pipe_pid, con->http.state);
+                 "[Client %d] cupsdWriteClient "
+                 "error=%d, "
+                 "used=%d, "
+                 "state=%s, "
+                 "data_encoding=HTTP_ENCODE_%s, "
+                 "data_remaining=" CUPS_LLFMT ", "
+                 "response=%p(%s), "
+                 "pipe_pid=%d, "
+                 "file=%d",
+                 con->http.fd, con->http.error, con->http.used,
+                 http_states[con->http.state],
+                 con->http.data_encoding == HTTP_ENCODE_CHUNKED ?
+                     "CHUNKED" : "LENGTH",
+                 CUPS_LLCAST con->http.data_remaining,
+                 con->response,
+                 con->response ? ipp_states[con->response->state] : "",
+                 con->pipe_pid, con->file);
 
   if (con->http.state != HTTP_GET_SEND &&
       con->http.state != HTTP_POST_SEND)
@@ -2746,8 +2809,8 @@ cupsdWriteClient(cupsd_client_t *con)     /* I - Client connection */
     */
 
     cupsdLogMessage(CUPSD_LOG_DEBUG,
-                   "cupsdWriteClient: %d Closing on unknown HTTP state %d",
-                   con->http.fd, con->http.state);
+                   "[Client %d] Closing on unexpected HTTP state %s.",
+                   con->http.fd, http_states[con->http.state]);
     cupsdCloseClient(con);
     return;
   }
@@ -2900,7 +2963,7 @@ cupsdWriteClient(cupsd_client_t *con)     /* I - Client connection */
       if (httpWrite2(HTTP(con), con->header, con->header_used) < 0)
       {
        cupsdLogMessage(CUPSD_LOG_DEBUG,
-                       "cupsdWriteClient: %d Closing for error %d (%s)",
+                       "[Client %d] Closing for error %d (%s)",
                        con->http.fd, con->http.error,
                        strerror(con->http.error));
        cupsdCloseClient(con);
@@ -2937,7 +3000,7 @@ cupsdWriteClient(cupsd_client_t *con)     /* I - Client connection */
        if (httpWrite2(HTTP(con), "", 0) < 0)
        {
          cupsdLogMessage(CUPSD_LOG_DEBUG,
-                         "cupsdWriteClient: %d Closing for error %d (%s)",
+                         "[Client %d] Closing for error %d (%s)",
                          con->http.fd, con->http.error,
                          strerror(con->http.error));
          cupsdCloseClient(con);
@@ -2987,7 +3050,7 @@ cupsdWriteClient(cupsd_client_t *con)     /* I - Client connection */
     if (!con->http.keep_alive)
     {
       cupsdLogMessage(CUPSD_LOG_DEBUG,
-                     "cupsdWriteClient: %d Closing because Keep-Alive disabled",
+                     "[Client %d] Closing because Keep-Alive disabled.",
                      con->http.fd);
       cupsdCloseClient(con);
       return;
@@ -3025,9 +3088,9 @@ check_if_modified(
     return (1);
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                  "check_if_modified(con=%p(%d), "
+                  "[Client %d] check_if_modified "
                  "filestats=%p(" CUPS_LLFMT ", %d)) If-Modified-Since=\"%s\"",
-                  con, con->http.fd, filestats, CUPS_LLCAST filestats->st_size,
+                  con->http.fd, filestats, CUPS_LLCAST filestats->st_size,
                  (int)filestats->st_mtime, ptr);
 
   while (*ptr != '\0')
@@ -3079,557 +3142,558 @@ compare_clients(cupsd_client_t *a,    /* I - First client */
 }
 
 
+#ifdef HAVE_CDSASSL
 /*
- * 'data_ready()' - Check whether data is available from a client.
+ * 'copy_cdsa_certificate()' - Copy a SSL/TLS certificate from the System
+ *                             keychain.
  */
 
-static int                             /* O - 1 if data is ready, 0 otherwise */
-data_ready(cupsd_client_t *con)                /* I - Client */
+static CFArrayRef                              /* O - Array of certificates */
+copy_cdsa_certificate(
+    cupsd_client_t *con)                       /* I - Client connection */
 {
-  if (con->http.used > 0)
-    return (1);
-#ifdef HAVE_SSL
-  else if (con->http.tls)
-  {
-#  ifdef HAVE_LIBSSL
-    if (SSL_pending((SSL *)(con->http.tls)))
-      return (1);
-#  elif defined(HAVE_GNUTLS)
-    if (gnutls_record_check_pending(con->http.tls))
-      return (1);
-#  elif defined(HAVE_CDSASSL)
-    size_t bytes;                      /* Bytes that are available */
+  OSStatus             err;            /* Error info */
+  SecKeychainRef       keychain = NULL;/* Keychain reference */
+  SecIdentitySearchRef search = NULL;  /* Search reference */
+  SecIdentityRef       identity = NULL;/* Identity */
+  CFArrayRef           certificates = NULL;
+                                       /* Certificate array */
+#  if HAVE_SECPOLICYCREATESSL
+  SecPolicyRef         policy = NULL;  /* Policy ref */
+  CFStringRef          servername = NULL;
+                                       /* Server name */
+  CFMutableDictionaryRef query = NULL; /* Query qualifiers */
+  char                 localname[1024];/* Local hostname */
+#  elif defined(HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY)
+  SecPolicyRef         policy = NULL;  /* Policy ref */
+  SecPolicySearchRef   policy_search = NULL;
+                                       /* Policy search ref */
+  CSSM_DATA            options;        /* Policy options */
+  CSSM_APPLE_TP_SSL_OPTIONS
+                       ssl_options;    /* SSL Option for hostname */
+  char                 localname[1024];/* Local hostname */
+#  endif /* HAVE_SECPOLICYCREATESSL */
 
-    if (!SSLGetBufferedReadSize(con->http.tls, &bytes) && bytes > 0)
-      return (1);
-#  endif /* HAVE_LIBSSL */
+
+  cupsdLogMessage(CUPSD_LOG_DEBUG,
+                  "copy_cdsa_certificate: Looking for certs for \"%s\"...",
+                 con->servername);
+
+  if ((err = SecKeychainOpen(ServerCertificate, &keychain)))
+  {
+    cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot open keychain \"%s\" - %s (%d)",
+                   ServerCertificate, cssmErrorString(err), (int)err);
+    goto cleanup;
   }
-#endif /* HAVE_SSL */
 
-  return (0);
-}
+#  if HAVE_SECPOLICYCREATESSL
+  servername = CFStringCreateWithCString(kCFAllocatorDefault, con->servername,
+                                        kCFStringEncodingUTF8);
 
+  policy = SecPolicyCreateSSL(1, servername);
 
-#ifdef HAVE_SSL
-/*
- * 'encrypt_client()' - Enable encryption for the client...
- */
+  if (servername)
+    CFRelease(servername);
 
-static int                             /* O - 1 on success, 0 on error */
-encrypt_client(cupsd_client_t *con)    /* I - Client to encrypt */
-{
-#  ifdef HAVE_LIBSSL
-  SSL_CTX      *context;               /* Context for encryption */
-  BIO          *bio;                   /* BIO data */
-  unsigned long        error;                  /* Error code */
+  if (!policy)
+  {
+    cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot create ssl policy reference");
+    goto cleanup;
+  }
 
+  if (!(query = CFDictionaryCreateMutable(kCFAllocatorDefault, 0,
+                                         &kCFTypeDictionaryKeyCallBacks,
+                                         &kCFTypeDictionaryValueCallBacks)))
+  {
+    cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot create query dictionary");
+    goto cleanup;
+  }
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG2, "encrypt_client(con=%p(%d))", con,
-                  con->http.fd);
+  CFDictionaryAddValue(query, kSecClass, kSecClassIdentity);
+  CFDictionaryAddValue(query, kSecMatchPolicy, policy);
+  CFDictionaryAddValue(query, kSecReturnRef, kCFBooleanTrue);
+  CFDictionaryAddValue(query, kSecMatchLimit, kSecMatchLimitOne);
 
- /*
-  * Verify that we have a certificate...
-  */
+  err = SecItemCopyMatching(query, (CFTypeRef *)&identity);
 
-  if (access(ServerKey, 0) || access(ServerCertificate, 0))
+  if (err && DNSSDHostName)
   {
    /*
-    * Nope, make a self-signed certificate...
+    * Search for the connection server name failed; try the DNS-SD .local
+    * hostname instead...
     */
 
-    if (!make_certificate(con))
-      return (0);
-  }
+    snprintf(localname, sizeof(localname), "%s.local", DNSSDHostName);
 
- /*
-  * Create the SSL context and accept the connection...
-  */
+    cupsdLogMessage(CUPSD_LOG_DEBUG,
+                   "copy_cdsa_certificate: Looking for certs for \"%s\"...",
+                   localname);
 
-  context = SSL_CTX_new(SSLv23_server_method());
+    servername = CFStringCreateWithCString(kCFAllocatorDefault, localname,
+                                          kCFStringEncodingUTF8);
 
-  SSL_CTX_set_options(context, SSL_OP_NO_SSLv2); /* Only use SSLv3 or TLS */
-  if (SSLOptions & CUPSD_SSL_NOEMPTY)
-    SSL_CTX_set_options(context, SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS);
-  SSL_CTX_use_PrivateKey_file(context, ServerKey, SSL_FILETYPE_PEM);
-  SSL_CTX_use_certificate_chain_file(context, ServerCertificate);
+    CFRelease(policy);
 
-  bio = BIO_new(_httpBIOMethods());
-  BIO_ctrl(bio, BIO_C_SET_FILE_PTR, 0, (char *)HTTP(con));
+    policy = SecPolicyCreateSSL(1, servername);
 
-  con->http.tls = SSL_new(context);
-  SSL_set_bio(con->http.tls, bio, bio);
+    if (servername)
+      CFRelease(servername);
 
-  if (SSL_accept(con->http.tls) != 1)
-  {
-    cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to encrypt connection from %s!",
-                    con->http.hostname);
+    if (!policy)
+    {
+      cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot create ssl policy reference");
+      goto cleanup;
+    }
 
-    while ((error = ERR_get_error()) != 0)
-      cupsdLogMessage(CUPSD_LOG_ERROR, "%s", ERR_error_string(error, NULL));
+    CFDictionarySetValue(query, kSecMatchPolicy, policy);
 
-    SSL_CTX_free(context);
-    SSL_free(con->http.tls);
-    con->http.tls = NULL;
-    return (0);
+    err = SecItemCopyMatching(query, (CFTypeRef *)&identity);
   }
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG, "Connection from %s now encrypted.",
-                  con->http.hostname);
-
-  return (1);
-
-#  elif defined(HAVE_GNUTLS)
-  int          status;                 /* Error code */
-  gnutls_certificate_server_credentials *credentials;
-                                       /* TLS credentials */
-  const char   *priority;              /* Priority string */
-
-
-  cupsdLogMessage(CUPSD_LOG_DEBUG2, "encrypt_client(con=%p(%d))", con,
-                  con->http.fd);
+  if (err)
+  {
+    cupsdLogMessage(CUPSD_LOG_DEBUG,
+                   "Cannot find signing key in keychain \"%s\": %s (%d)",
+                   ServerCertificate, cssmErrorString(err), (int)err);
+    goto cleanup;
+  }
 
+#  elif defined(HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY)
  /*
-  * Verify that we have a certificate...
+  * Use a policy to search for valid certificates whose common name matches the
+  * servername...
   */
 
-  if (access(ServerKey, 0) || access(ServerCertificate, 0))
+  if (SecPolicySearchCreate(CSSM_CERT_X_509v3, &CSSMOID_APPLE_TP_SSL,
+                           NULL, &policy_search))
   {
-   /*
-    * Nope, make a self-signed certificate...
-    */
-
-    if (!make_certificate(con))
-      return (0);
+    cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot create a policy search reference");
+    goto cleanup;
   }
 
- /*
-  * Create the SSL object and perform the SSL handshake...
-  */
-
-  credentials = (gnutls_certificate_server_credentials *)
-                    malloc(sizeof(gnutls_certificate_server_credentials));
-  if (credentials == NULL)
+  if (SecPolicySearchCopyNext(policy_search, &policy))
   {
     cupsdLogMessage(CUPSD_LOG_ERROR,
-                    "Unable to encrypt connection from %s - %s",
-                    con->http.hostname, strerror(errno));
-
-    return (0);
+                   "Cannot find a policy to use for searching");
+    goto cleanup;
   }
 
-  gnutls_certificate_allocate_credentials(credentials);
-  gnutls_certificate_set_x509_key_file(*credentials, ServerCertificate,
-                                      ServerKey, GNUTLS_X509_FMT_PEM);
+  memset(&ssl_options, 0, sizeof(ssl_options));
+  ssl_options.Version = CSSM_APPLE_TP_SSL_OPTS_VERSION;
+  ssl_options.ServerName = con->servername;
+  ssl_options.ServerNameLen = strlen(con->servername);
 
-  gnutls_init(&con->http.tls, GNUTLS_SERVER);
-  gnutls_set_default_priority(con->http.tls);
-  status = gnutls_priority_set_direct(con->http.tls,
-                                      "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:"
-                                      "+VERS-SSL3.0:%COMPAT", &priority);
-  if (status != GNUTLS_E_SUCCESS)
+  options.Data = (uint8 *)&ssl_options;
+  options.Length = sizeof(ssl_options);
+
+  if (SecPolicySetValue(policy, &options))
   {
     cupsdLogMessage(CUPSD_LOG_ERROR,
-                    "Unable to encrypt connection from %s - %s (%s)",
-                    con->http.hostname, gnutls_strerror(status), priority);
+                   "Cannot set policy value to use for searching");
+    goto cleanup;
+  }
 
-    gnutls_deinit(con->http.tls);
-    gnutls_certificate_free_credentials(*credentials);
-    con->http.tls = NULL;
-    free(credentials);
-    return (0);
+  if ((err = SecIdentitySearchCreateWithPolicy(policy, NULL, CSSM_KEYUSE_SIGN,
+                                              keychain, FALSE, &search)))
+  {
+    cupsdLogMessage(CUPSD_LOG_ERROR,
+                   "Cannot create identity search reference: %s (%d)",
+                   cssmErrorString(err), (int)err);
+    goto cleanup;
   }
 
-  gnutls_credentials_set(con->http.tls, GNUTLS_CRD_CERTIFICATE, *credentials);
-  gnutls_transport_set_ptr(con->http.tls, (gnutls_transport_ptr)HTTP(con));
-  gnutls_transport_set_pull_function(con->http.tls, _httpReadGNUTLS);
-  gnutls_transport_set_push_function(con->http.tls, _httpWriteGNUTLS);
+  err = SecIdentitySearchCopyNext(search, &identity);
 
-  while ((status = gnutls_handshake(con->http.tls)) != GNUTLS_E_SUCCESS)
+  if (err && DNSSDHostName)
   {
-    if (gnutls_error_is_fatal(status))
-    {
-      cupsdLogMessage(CUPSD_LOG_ERROR,
-                      "Unable to encrypt connection from %s - %s",
-                      con->http.hostname, gnutls_strerror(status));
+   /*
+    * Search for the connection server name failed; try the DNS-SD .local
+    * hostname instead...
+    */
 
-      gnutls_deinit(con->http.tls);
-      gnutls_certificate_free_credentials(*credentials);
-      con->http.tls = NULL;
-      free(credentials);
-      return (0);
+    snprintf(localname, sizeof(localname), "%s.local", DNSSDHostName);
+
+    ssl_options.ServerName    = localname;
+    ssl_options.ServerNameLen = strlen(localname);
+
+    cupsdLogMessage(CUPSD_LOG_DEBUG,
+                   "copy_cdsa_certificate: Looking for certs for \"%s\"...",
+                   localname);
+
+    if (SecPolicySetValue(policy, &options))
+    {
+      cupsdLogMessage(CUPSD_LOG_ERROR,
+                     "Cannot set policy value to use for searching");
+      goto cleanup;
     }
-  }
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG, "Connection from %s now encrypted.",
-                  con->http.hostname);
+    CFRelease(search);
+    search = NULL;
+    if ((err = SecIdentitySearchCreateWithPolicy(policy, NULL, CSSM_KEYUSE_SIGN,
+                                              keychain, FALSE, &search)))
+    {
+      cupsdLogMessage(CUPSD_LOG_ERROR,
+                     "Cannot create identity search reference: %s (%d)",
+                     cssmErrorString(err), (int)err);
+      goto cleanup;
+    }
 
-  con->http.tls_credentials = credentials;
-  return (1);
+    err = SecIdentitySearchCopyNext(search, &identity);
 
-#  elif defined(HAVE_CDSASSL)
-  OSStatus     error = 0;              /* Error code */
-  CFArrayRef   peerCerts;              /* Peer certificates */
+  }
 
+  if (err)
+  {
+    cupsdLogMessage(CUPSD_LOG_DEBUG,
+                   "Cannot find signing key in keychain \"%s\": %s (%d)",
+                   ServerCertificate, cssmErrorString(err), (int)err);
+    goto cleanup;
+  }
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG2, "encrypt_client(con=%p(%d))", con,
-                  con->http.fd);
+#  else
+ /*
+  * Assume there is exactly one SecIdentity in the keychain...
+  */
 
-  con->http.tls_credentials = get_cdsa_certificate(con);
+  if ((err = SecIdentitySearchCreate(keychain, CSSM_KEYUSE_SIGN, &search)))
+  {
+    cupsdLogMessage(CUPSD_LOG_DEBUG,
+                   "Cannot create identity search reference (%d)", (int)err);
+    goto cleanup;
+  }
 
-  if (!con->http.tls_credentials)
+  if ((err = SecIdentitySearchCopyNext(search, &identity)))
   {
-   /*
-    * No keychain (yet), make a self-signed certificate...
-    */
+    cupsdLogMessage(CUPSD_LOG_DEBUG,
+                   "Cannot find signing key in keychain \"%s\": %s (%d)",
+                   ServerCertificate, cssmErrorString(err), (int)err);
+    goto cleanup;
+  }
+#  endif /* HAVE_SECPOLICYCREATESSL */
 
-    if (make_certificate(con))
-      con->http.tls_credentials = get_cdsa_certificate(con);
+  if (CFGetTypeID(identity) != SecIdentityGetTypeID())
+  {
+    cupsdLogMessage(CUPSD_LOG_ERROR, "SecIdentity CFTypeID failure!");
+    goto cleanup;
   }
 
-  if (!con->http.tls_credentials)
+  if ((certificates = CFArrayCreate(NULL, (const void **)&identity,
+                                 1, &kCFTypeArrayCallBacks)) == NULL)
   {
-    cupsdLogMessage(CUPSD_LOG_ERROR,
-                   "Could not find signing key in keychain \"%s\"",
-                   ServerCertificate);
-    error = errSSLBadCert; /* errSSLBadConfiguration is a better choice, but not available on 10.2.x */
+    cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot create certificate array");
+    goto cleanup;
   }
 
-  if (!error)
-    error = SSLNewContext(true, &con->http.tls);
+  cleanup :
 
-  if (!error)
-    error = SSLSetIOFuncs(con->http.tls, _httpReadCDSA, _httpWriteCDSA);
+  if (keychain)
+    CFRelease(keychain);
+  if (search)
+    CFRelease(search);
+  if (identity)
+    CFRelease(identity);
 
-  if (!error)
-    error = SSLSetConnection(con->http.tls, HTTP(con));
+#  if HAVE_SECPOLICYCREATESSL
+  if (policy)
+    CFRelease(policy);
+  if (query)
+    CFRelease(query);
+#  elif defined(HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY)
+  if (policy)
+    CFRelease(policy);
+  if (policy_search)
+    CFRelease(policy_search);
+#  endif /* HAVE_SECPOLICYCREATESSL */
 
-  if (!error)
-    error = SSLSetAllowsExpiredCerts(con->http.tls, true);
+  return (certificates);
+}
+#endif /* HAVE_CDSASSL */
 
-  if (!error)
-    error = SSLSetAllowsAnyRoot(con->http.tls, true);
 
-  if (!error)
-    error = SSLSetCertificate(con->http.tls, con->http.tls_credentials);
+/*
+ * 'data_ready()' - Check whether data is available from a client.
+ */
 
-  if (!error)
+static int                             /* O - 1 if data is ready, 0 otherwise */
+data_ready(cupsd_client_t *con)                /* I - Client */
+{
+  if (con->http.used > 0)
+    return (1);
+#ifdef HAVE_SSL
+  else if (con->http.tls)
   {
-   /*
-    * Perform SSL/TLS handshake
-    */
+#  ifdef HAVE_LIBSSL
+    if (SSL_pending((SSL *)(con->http.tls)))
+      return (1);
+#  elif defined(HAVE_GNUTLS)
+    if (gnutls_record_check_pending(con->http.tls))
+      return (1);
+#  elif defined(HAVE_CDSASSL)
+    size_t bytes;                      /* Bytes that are available */
 
-    while ((error = SSLHandshake(con->http.tls)) == errSSLWouldBlock)
-      usleep(1000);
+    if (!SSLGetBufferedReadSize(con->http.tls, &bytes) && bytes > 0)
+      return (1);
+#  endif /* HAVE_LIBSSL */
   }
+#endif /* HAVE_SSL */
 
-  if (error)
-  {
-    cupsdLogMessage(CUPSD_LOG_ERROR,
-                    "Unable to encrypt connection from %s - %s (%d)",
-                    con->http.hostname, cssmErrorString(error), (int)error);
+  return (0);
+}
 
-    con->http.error  = error;
-    con->http.status = HTTP_ERROR;
 
-    if (con->http.tls)
-    {
-      SSLDisposeContext(con->http.tls);
-      con->http.tls = NULL;
-    }
+#ifdef HAVE_SSL
+/*
+ * 'encrypt_client()' - Enable encryption for the client...
+ */
 
-    if (con->http.tls_credentials)
-    {
-      CFRelease(con->http.tls_credentials);
-      con->http.tls_credentials = NULL;
-    }
+static int                             /* O - 1 on success, 0 on error */
+encrypt_client(cupsd_client_t *con)    /* I - Client to encrypt */
+{
+#  ifdef HAVE_LIBSSL
+  SSL_CTX      *context;               /* Context for encryption */
+  BIO          *bio;                   /* BIO data */
+  unsigned long        error;                  /* Error code */
 
-    return (0);
-  }
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG, "Connection from %s now encrypted.",
-                  con->http.hostname);
+  cupsdLogMessage(CUPSD_LOG_DEBUG, "[Client %d] Encrypting connection.",
+                  con->http.fd);
 
-  if (!SSLCopyPeerCertificates(con->http.tls, &peerCerts) && peerCerts)
+ /*
+  * Verify that we have a certificate...
+  */
+
+  if (access(ServerKey, 0) || access(ServerCertificate, 0))
   {
-    cupsdLogMessage(CUPSD_LOG_DEBUG, "Received %d peer certificates!",
-                   (int)CFArrayGetCount(peerCerts));
-    CFRelease(peerCerts);
+   /*
+    * Nope, make a self-signed certificate...
+    */
+
+    if (!make_certificate(con))
+      return (0);
   }
-  else
-    cupsdLogMessage(CUPSD_LOG_DEBUG, "Received NO peer certificates!");
 
-  return (1);
+ /*
+  * Create the SSL context and accept the connection...
+  */
 
-#  endif /* HAVE_LIBSSL */
-}
-#endif /* HAVE_SSL */
+  context = SSL_CTX_new(SSLv23_server_method());
 
+  SSL_CTX_set_options(context, SSL_OP_NO_SSLv2); /* Only use SSLv3 or TLS */
+  if (SSLOptions & CUPSD_SSL_NOEMPTY)
+    SSL_CTX_set_options(context, SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS);
+  SSL_CTX_use_PrivateKey_file(context, ServerKey, SSL_FILETYPE_PEM);
+  SSL_CTX_use_certificate_chain_file(context, ServerCertificate);
 
-#ifdef HAVE_CDSASSL
-/*
- * 'get_cdsa_certificate()' - Get a SSL/TLS certificate from the System keychain.
- */
+  bio = BIO_new(_httpBIOMethods());
+  BIO_ctrl(bio, BIO_C_SET_FILE_PTR, 0, (char *)HTTP(con));
 
-static CFArrayRef                              /* O - Array of certificates */
-get_cdsa_certificate(
-    cupsd_client_t *con)                       /* I - Client connection */
-{
-  OSStatus             err;            /* Error info */
-  SecKeychainRef       keychain = NULL;/* Keychain reference */
-  SecIdentitySearchRef search = NULL;  /* Search reference */
-  SecIdentityRef       identity = NULL;/* Identity */
-  CFArrayRef           certificates = NULL;
-                                       /* Certificate array */
-#  if HAVE_SECPOLICYCREATESSL
-  SecPolicyRef         policy = NULL;  /* Policy ref */
-  CFStringRef          servername = NULL;
-                                       /* Server name */
-  CFMutableDictionaryRef query = NULL; /* Query qualifiers */
-  char                 localname[1024];/* Local hostname */
-#  elif defined(HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY)
-  SecPolicyRef         policy = NULL;  /* Policy ref */
-  SecPolicySearchRef   policy_search = NULL;
-                                       /* Policy search ref */
-  CSSM_DATA            options;        /* Policy options */
-  CSSM_APPLE_TP_SSL_OPTIONS
-                       ssl_options;    /* SSL Option for hostname */
-  char                 localname[1024];/* Local hostname */
-#  endif /* HAVE_SECPOLICYCREATESSL */
+  con->http.tls = SSL_new(context);
+  SSL_set_bio(con->http.tls, bio, bio);
 
+  if (SSL_accept(con->http.tls) != 1)
+  {
+    cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to encrypt connection from %s!",
+                    con->http.hostname);
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG,
-                  "get_cdsa_certificate: Looking for certs for \"%s\"...",
-                 con->servername);
+    while ((error = ERR_get_error()) != 0)
+      cupsdLogMessage(CUPSD_LOG_ERROR, "%s", ERR_error_string(error, NULL));
 
-  if ((err = SecKeychainOpen(ServerCertificate, &keychain)))
-  {
-    cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot open keychain \"%s\" - %s (%d)",
-                   ServerCertificate, cssmErrorString(err), (int)err);
-    goto cleanup;
+    SSL_CTX_free(context);
+    SSL_free(con->http.tls);
+    con->http.tls = NULL;
+    return (0);
   }
 
-#  if HAVE_SECPOLICYCREATESSL
-  servername = CFStringCreateWithCString(kCFAllocatorDefault, con->servername,
-                                        kCFStringEncodingUTF8);
+  cupsdLogMessage(CUPSD_LOG_DEBUG, "Connection from %s now encrypted.",
+                  con->http.hostname);
 
-  policy = SecPolicyCreateSSL(1, servername);
+  return (1);
 
-  if (servername)
-    CFRelease(servername);
+#  elif defined(HAVE_GNUTLS)
+  int          status;                 /* Error code */
+  gnutls_certificate_server_credentials *credentials;
+                                       /* TLS credentials */
+  const char   *priority;              /* Priority string */
 
-  if (!policy)
-  {
-    cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot create ssl policy reference");
-    goto cleanup;
-  }
 
-  if (!(query = CFDictionaryCreateMutable(kCFAllocatorDefault, 0,
-                                         &kCFTypeDictionaryKeyCallBacks,
-                                         &kCFTypeDictionaryValueCallBacks)))
+  cupsdLogMessage(CUPSD_LOG_DEBUG, "[Client %d] Encrypting connection.",
+                  con->http.fd);
+
+ /*
+  * Verify that we have a certificate...
+  */
+
+  if (access(ServerKey, 0) || access(ServerCertificate, 0))
   {
-    cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot create query dictionary");
-    goto cleanup;
-  }
+   /*
+    * Nope, make a self-signed certificate...
+    */
 
-  CFDictionaryAddValue(query, kSecClass, kSecClassIdentity);
-  CFDictionaryAddValue(query, kSecMatchPolicy, policy);
-  CFDictionaryAddValue(query, kSecReturnRef, kCFBooleanTrue);
-  CFDictionaryAddValue(query, kSecMatchLimit, kSecMatchLimitOne);
+    if (!make_certificate(con))
+      return (0);
+  }
 
-  err = SecItemCopyMatching(query, (CFTypeRef *)&identity);
+ /*
+  * Create the SSL object and perform the SSL handshake...
+  */
 
-  if (err && DNSSDHostName)
+  credentials = (gnutls_certificate_server_credentials *)
+                    malloc(sizeof(gnutls_certificate_server_credentials));
+  if (credentials == NULL)
   {
-   /*
-    * Search for the connection server name failed; try the DNS-SD .local
-    * hostname instead...
-    */
-
-    snprintf(localname, sizeof(localname), "%s.local", DNSSDHostName);
+    cupsdLogMessage(CUPSD_LOG_ERROR,
+                    "Unable to encrypt connection from %s - %s",
+                    con->http.hostname, strerror(errno));
 
-    cupsdLogMessage(CUPSD_LOG_DEBUG,
-                   "get_cdsa_certificate: Looking for certs for \"%s\"...",
-                   localname);
+    return (0);
+  }
 
-    servername = CFStringCreateWithCString(kCFAllocatorDefault, localname,
-                                          kCFStringEncodingUTF8);
+  gnutls_certificate_allocate_credentials(credentials);
+  gnutls_certificate_set_x509_key_file(*credentials, ServerCertificate,
+                                      ServerKey, GNUTLS_X509_FMT_PEM);
 
-    CFRelease(policy);
+  gnutls_init(&con->http.tls, GNUTLS_SERVER);
+  gnutls_set_default_priority(con->http.tls);
+  status = gnutls_priority_set_direct(con->http.tls,
+                                      "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:"
+                                      "+VERS-SSL3.0:%COMPAT", &priority);
+  if (status != GNUTLS_E_SUCCESS)
+  {
+    cupsdLogMessage(CUPSD_LOG_ERROR,
+                    "Unable to encrypt connection from %s - %s (%s)",
+                    con->http.hostname, gnutls_strerror(status), priority);
 
-    policy = SecPolicyCreateSSL(1, servername);
+    gnutls_deinit(con->http.tls);
+    gnutls_certificate_free_credentials(*credentials);
+    con->http.tls = NULL;
+    free(credentials);
+    return (0);
+  }
 
-    if (servername)
-      CFRelease(servername);
+  gnutls_credentials_set(con->http.tls, GNUTLS_CRD_CERTIFICATE, *credentials);
+  gnutls_transport_set_ptr(con->http.tls, (gnutls_transport_ptr)HTTP(con));
+  gnutls_transport_set_pull_function(con->http.tls, _httpReadGNUTLS);
+  gnutls_transport_set_push_function(con->http.tls, _httpWriteGNUTLS);
 
-    if (!policy)
+  while ((status = gnutls_handshake(con->http.tls)) != GNUTLS_E_SUCCESS)
+  {
+    if (gnutls_error_is_fatal(status))
     {
-      cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot create ssl policy reference");
-      goto cleanup;
+      cupsdLogMessage(CUPSD_LOG_ERROR,
+                      "Unable to encrypt connection from %s - %s",
+                      con->http.hostname, gnutls_strerror(status));
+
+      gnutls_deinit(con->http.tls);
+      gnutls_certificate_free_credentials(*credentials);
+      con->http.tls = NULL;
+      free(credentials);
+      return (0);
     }
+  }
 
-    CFDictionarySetValue(query, kSecMatchPolicy, policy);
+  cupsdLogMessage(CUPSD_LOG_DEBUG, "Connection from %s now encrypted.",
+                  con->http.hostname);
 
-    err = SecItemCopyMatching(query, (CFTypeRef *)&identity);
-  }
+  con->http.tls_credentials = credentials;
+  return (1);
 
-  if (err)
-  {
-    cupsdLogMessage(CUPSD_LOG_DEBUG,
-                   "Cannot find signing key in keychain \"%s\": %s (%d)",
-                   ServerCertificate, cssmErrorString(err), (int)err);
-    goto cleanup;
-  }
+#  elif defined(HAVE_CDSASSL)
+  OSStatus     error = 0;              /* Error code */
+  CFArrayRef   peerCerts;              /* Peer certificates */
 
-#  elif defined(HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY)
- /*
-  * Use a policy to search for valid certificates whose common name matches the
-  * servername...
-  */
 
-  if (SecPolicySearchCreate(CSSM_CERT_X_509v3, &CSSMOID_APPLE_TP_SSL,
-                           NULL, &policy_search))
+  cupsdLogMessage(CUPSD_LOG_DEBUG, "[Client %d] Encrypting connection.",
+                  con->http.fd);
+
+  con->http.tls_credentials = copy_cdsa_certificate(con);
+
+  if (!con->http.tls_credentials)
   {
-    cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot create a policy search reference");
-    goto cleanup;
+   /*
+    * No keychain (yet), make a self-signed certificate...
+    */
+
+    if (make_certificate(con))
+      con->http.tls_credentials = copy_cdsa_certificate(con);
   }
 
-  if (SecPolicySearchCopyNext(policy_search, &policy))
+  if (!con->http.tls_credentials)
   {
     cupsdLogMessage(CUPSD_LOG_ERROR,
-                   "Cannot find a policy to use for searching");
-    goto cleanup;
+                   "Could not find signing key in keychain \"%s\"",
+                   ServerCertificate);
+    error = errSSLBadCert; /* errSSLBadConfiguration is a better choice, but not available on 10.2.x */
   }
 
-  memset(&ssl_options, 0, sizeof(ssl_options));
-  ssl_options.Version = CSSM_APPLE_TP_SSL_OPTS_VERSION;
-  ssl_options.ServerName = con->servername;
-  ssl_options.ServerNameLen = strlen(con->servername);
+  if (!error)
+    error = SSLNewContext(true, &con->http.tls);
 
-  options.Data = (uint8 *)&ssl_options;
-  options.Length = sizeof(ssl_options);
+  if (!error)
+    error = SSLSetIOFuncs(con->http.tls, _httpReadCDSA, _httpWriteCDSA);
 
-  if (SecPolicySetValue(policy, &options))
-  {
-    cupsdLogMessage(CUPSD_LOG_ERROR,
-                   "Cannot set policy value to use for searching");
-    goto cleanup;
-  }
+  if (!error)
+    error = SSLSetConnection(con->http.tls, HTTP(con));
 
-  if ((err = SecIdentitySearchCreateWithPolicy(policy, NULL, CSSM_KEYUSE_SIGN,
-                                              keychain, FALSE, &search)))
-  {
-    cupsdLogMessage(CUPSD_LOG_ERROR,
-                   "Cannot create identity search reference: %s (%d)",
-                   cssmErrorString(err), (int)err);
-    goto cleanup;
-  }
+  if (!error)
+    error = SSLSetAllowsExpiredCerts(con->http.tls, true);
 
-  err = SecIdentitySearchCopyNext(search, &identity);
+  if (!error)
+    error = SSLSetAllowsAnyRoot(con->http.tls, true);
 
-  if (err && DNSSDHostName)
+  if (!error)
+    error = SSLSetCertificate(con->http.tls, con->http.tls_credentials);
+
+  if (!error)
   {
    /*
-    * Search for the connection server name failed; try the DNS-SD .local
-    * hostname instead...
+    * Perform SSL/TLS handshake
     */
 
-    snprintf(localname, sizeof(localname), "%s.local", DNSSDHostName);
+    while ((error = SSLHandshake(con->http.tls)) == errSSLWouldBlock)
+      usleep(1000);
+  }
 
-    ssl_options.ServerName    = localname;
-    ssl_options.ServerNameLen = strlen(localname);
+  if (error)
+  {
+    cupsdLogMessage(CUPSD_LOG_ERROR,
+                    "Unable to encrypt connection from %s - %s (%d)",
+                    con->http.hostname, cssmErrorString(error), (int)error);
 
-    cupsdLogMessage(CUPSD_LOG_DEBUG,
-                   "get_cdsa_certificate: Looking for certs for \"%s\"...",
-                   localname);
+    con->http.error  = error;
+    con->http.status = HTTP_ERROR;
 
-    if (SecPolicySetValue(policy, &options))
+    if (con->http.tls)
     {
-      cupsdLogMessage(CUPSD_LOG_ERROR,
-                     "Cannot set policy value to use for searching");
-      goto cleanup;
+      SSLDisposeContext(con->http.tls);
+      con->http.tls = NULL;
     }
 
-    CFRelease(search);
-    search = NULL;
-    if ((err = SecIdentitySearchCreateWithPolicy(policy, NULL, CSSM_KEYUSE_SIGN,
-                                              keychain, FALSE, &search)))
+    if (con->http.tls_credentials)
     {
-      cupsdLogMessage(CUPSD_LOG_ERROR,
-                     "Cannot create identity search reference: %s (%d)",
-                     cssmErrorString(err), (int)err);
-      goto cleanup;
+      CFRelease(con->http.tls_credentials);
+      con->http.tls_credentials = NULL;
     }
 
-    err = SecIdentitySearchCopyNext(search, &identity);
-
-  }
-
-  if (err)
-  {
-    cupsdLogMessage(CUPSD_LOG_DEBUG,
-                   "Cannot find signing key in keychain \"%s\": %s (%d)",
-                   ServerCertificate, cssmErrorString(err), (int)err);
-    goto cleanup;
-  }
-
-#  else
- /*
-  * Assume there is exactly one SecIdentity in the keychain...
-  */
-
-  if ((err = SecIdentitySearchCreate(keychain, CSSM_KEYUSE_SIGN, &search)))
-  {
-    cupsdLogMessage(CUPSD_LOG_DEBUG,
-                   "Cannot create identity search reference (%d)", (int)err);
-    goto cleanup;
-  }
-
-  if ((err = SecIdentitySearchCopyNext(search, &identity)))
-  {
-    cupsdLogMessage(CUPSD_LOG_DEBUG,
-                   "Cannot find signing key in keychain \"%s\": %s (%d)",
-                   ServerCertificate, cssmErrorString(err), (int)err);
-    goto cleanup;
+    return (0);
   }
-#  endif /* HAVE_SECPOLICYCREATESSL */
 
-  if (CFGetTypeID(identity) != SecIdentityGetTypeID())
-  {
-    cupsdLogMessage(CUPSD_LOG_ERROR, "SecIdentity CFTypeID failure!");
-    goto cleanup;
-  }
+  cupsdLogMessage(CUPSD_LOG_DEBUG, "Connection from %s now encrypted.",
+                  con->http.hostname);
 
-  if ((certificates = CFArrayCreate(NULL, (const void **)&identity,
-                                 1, &kCFTypeArrayCallBacks)) == NULL)
+  if (!SSLCopyPeerCertificates(con->http.tls, &peerCerts) && peerCerts)
   {
-    cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot create certificate array");
-    goto cleanup;
+    cupsdLogMessage(CUPSD_LOG_DEBUG, "Received %d peer certificates!",
+                   (int)CFArrayGetCount(peerCerts));
+    CFRelease(peerCerts);
   }
+  else
+    cupsdLogMessage(CUPSD_LOG_DEBUG, "Received NO peer certificates!");
 
-  cleanup :
-
-  if (keychain)
-    CFRelease(keychain);
-  if (search)
-    CFRelease(search);
-  if (identity)
-    CFRelease(identity);
-
-#  if HAVE_SECPOLICYCREATESSL
-  if (policy)
-    CFRelease(policy);
-  if (query)
-    CFRelease(query);
-#  elif defined(HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY)
-  if (policy)
-    CFRelease(policy);
-  if (policy_search)
-    CFRelease(policy_search);
-#  endif /* HAVE_SECPOLICYCREATESSL */
+  return (1);
 
-  return (certificates);
+#  endif /* HAVE_LIBSSL */
 }
-#endif /* HAVE_CDSASSL */
+#endif /* HAVE_SSL */
 
 
 /*
@@ -3815,8 +3879,8 @@ get_file(cupsd_client_t *con,             /* I  - Client connection */
   }
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                  "get_file(con=%p(%d), filestats=%p, filename=%p, len=%d) = "
-                 "%s", con, con->http.fd, filestats, filename, len,
+                  "[Client %d] get_file filestats=%p, filename=%p, len=%d, "
+                 "returning \"%s\".", con->http.fd, filestats, filename, len,
                  status ? "(null)" : filename);
 
   if (status)
@@ -3955,9 +4019,9 @@ is_cgi(cupsd_client_t *con,               /* I - Client connection */
   if (!type || _cups_strcasecmp(type->super, "application"))
   {
     cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                   "is_cgi(con=%p(%d), filename=\"%s\", filestats=%p, "
-                   "type=%s/%s) = 0", con, con->http.fd, filename, filestats,
-                   type ? type->super : "unknown",
+                   "[Client %d] is_cgi filename=\"%s\", filestats=%p, "
+                   "type=%s/%s, returning 0", con->http.fd, filename,
+                   filestats, type ? type->super : "unknown",
                    type ? type->type : "unknown");
     return (0);
   }
@@ -3975,9 +4039,9 @@ is_cgi(cupsd_client_t *con,               /* I - Client connection */
       cupsdSetStringf(&con->options, " %s", options);
 
     cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                   "is_cgi(con=%p(%d), filename=\"%s\", filestats=%p, "
-                   "type=%s/%s) = 1", con, con->http.fd, filename, filestats,
-                   type->super, type->type);
+                   "[Client %d] is_cgi filename=\"%s\", filestats=%p, "
+                   "type=%s/%s, returning 1", con->http.fd, filename,
+                   filestats, type->super, type->type);
     return (1);
   }
 #ifdef HAVE_JAVA
@@ -3995,9 +4059,9 @@ is_cgi(cupsd_client_t *con,               /* I - Client connection */
       cupsdSetStringf(&con->options, " %s", filename);
 
     cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                   "is_cgi(con=%p(%d), filename=\"%s\", filestats=%p, "
-                   "type=%s/%s) = 1", con, con->http.fd, filename, filestats,
-                   type->super, type->type);
+                   "[Client %d] is_cgi filename=\"%s\", filestats=%p, "
+                   "type=%s/%s, returning 1", con->http.fd, filename,
+                   filestats, type->super, type->type);
     return (1);
   }
 #endif /* HAVE_JAVA */
@@ -4016,9 +4080,9 @@ is_cgi(cupsd_client_t *con,               /* I - Client connection */
       cupsdSetStringf(&con->options, " %s", filename);
 
     cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                   "is_cgi(con=%p(%d), filename=\"%s\", filestats=%p, "
-                   "type=%s/%s) = 1", con, con->http.fd, filename, filestats,
-                   type->super, type->type);
+                   "[Client %d] is_cgi filename=\"%s\", filestats=%p, "
+                   "type=%s/%s, returning 1", con->http.fd, filename,
+                   filestats, type->super, type->type);
     return (1);
   }
 #endif /* HAVE_PERL */
@@ -4037,9 +4101,9 @@ is_cgi(cupsd_client_t *con,               /* I - Client connection */
       cupsdSetStringf(&con->options, " %s", filename);
 
     cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                   "is_cgi(con=%p(%d), filename=\"%s\", filestats=%p, "
-                   "type=%s/%s) = 1", con, con->http.fd, filename, filestats,
-                   type->super, type->type);
+                   "[Client %d] is_cgi filename=\"%s\", filestats=%p, "
+                   "type=%s/%s, returning 1", con->http.fd, filename,
+                   filestats, type->super, type->type);
     return (1);
   }
 #endif /* HAVE_PHP */
@@ -4058,17 +4122,17 @@ is_cgi(cupsd_client_t *con,             /* I - Client connection */
       cupsdSetStringf(&con->options, " %s", filename);
 
     cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                   "is_cgi(con=%p(%d), filename=\"%s\", filestats=%p, "
-                   "type=%s/%s) = 1", con, con->http.fd, filename, filestats,
-                   type->super, type->type);
+                   "[Client %d] is_cgi filename=\"%s\", filestats=%p, "
+                   "type=%s/%s, returning 1", con->http.fd, filename,
+                   filestats, type->super, type->type);
     return (1);
   }
 #endif /* HAVE_PYTHON */
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                 "is_cgi(con=%p(%d), filename=\"%s\", filestats=%p, "
-                 "type=%s/%s) = 0", con, con->http.fd, filename, filestats,
-                 type->super, type->type);
+                 "[Client %d] is_cgi filename=\"%s\", filestats=%p, "
+                 "type=%s/%s, returning 0", con->http.fd, filename,
+                 filestats, type->super, type->type);
   return (0);
 }
 
@@ -4624,9 +4688,9 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */
   */
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                  "pipe_command(con=%p(%d), infile=%d, outfile=%p, "
-                 "command=\"%s\", options=\"%s\", root=%d)",
-                  con, con->http.fd, infile, outfile, command,
+                  "[Client %d] pipe_command infile=%d, outfile=%p, "
+                 "command=\"%s\", options=\"%s\", root=%d",
+                  con->http.fd, infile, outfile, command,
                  options ? options : "(null)", root);
 
   argv[0] = command;
@@ -5139,8 +5203,8 @@ write_file(cupsd_client_t *con,           /* I - Client connection */
   con->file = open(filename, O_RDONLY);
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                  "write_file(con=%p(%d), code=%d, filename=\"%s\" (%d), "
-                 "type=\"%s\", filestats=%p)", con, con->http.fd,
+                  "[Client %d] write_file code=%d, filename=\"%s\" (%d), "
+                 "type=\"%s\", filestats=%p", con->http.fd,
                  code, filename, con->file, type ? type : "(null)", filestats);
 
   if (con->file < 0)
@@ -5188,8 +5252,8 @@ static void
 write_pipe(cupsd_client_t *con)                /* I - Client connection */
 {
   cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                  "write_pipe(con=%p(%d)) CGI output on fd %d",
-                  con, con->http.fd, con->file);
+                  "[Client %d] write_pipe CGI output on fd %d",
+                  con->http.fd, con->file);
 
   con->file_ready = 1;
 
index 4d669027a67158b22f000c790062a3cf3430bafc..a68c31d3bc98d819de1f378825f838e65e6cfab8 100644 (file)
@@ -278,16 +278,10 @@ extern int        cupsdLogGSSMessage(int level, int major_status,
                                   int minor_status,
                                   const char *message, ...);
 #endif /* HAVE_GSSAPI */
-extern int     cupsdLogJob(cupsd_job_t *job, int level, const char *message, ...)
-#ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 3, 4)))
-#endif /* __GNUC__ */
-;
+extern int     cupsdLogJob(cupsd_job_t *job, int level, const char *message,
+                           ...) __attribute__((__format__(__printf__, 3, 4)));
 extern int     cupsdLogMessage(int level, const char *message, ...)
-#ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 2, 3)))
-#endif /* __GNUC__ */
-;
+               __attribute__ ((__format__ (__printf__, 2, 3)));
 extern int     cupsdLogPage(cupsd_job_t *job, const char *page);
 extern int     cupsdLogRequest(cupsd_client_t *con, http_status_t code);
 extern int     cupsdReadConfiguration(void);
index 9215c6bef6e2ff69da01aabb22c00ed19f092b29..e677620435254bf20449035e6c9b6e55808975b0 100644 (file)
@@ -172,6 +172,10 @@ esac
 case $1 in
        start | restart | reload)
                if $IS_ON cups; then
+                       if test -x /sbin/portrelease; then
+                               /sbin/portrelease cups
+                       fi
+
                        if test "$pid" != ""; then
                                kill -HUP $pid
                        else
index d742467a79a5e63527acd98ffe3c9f00f8dd8a54..630285f3ec5357ef65df846b8b575a8ac714629a 100644 (file)
@@ -183,10 +183,7 @@ extern void                cupsdInitEnv(void);
 extern int             cupsdLoadEnv(char *envp[], int envmax);
 extern void            cupsdSetEnv(const char *name, const char *value);
 extern void            cupsdSetEnvf(const char *name, const char *value, ...)
-#ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 2, 3)))
-#endif /* __GNUC__ */
-;
+                       __attribute__ ((__format__ (__printf__, 2, 3)));
 extern void            cupsdUpdateEnv(void);
 
 /* file.c */
@@ -210,10 +207,7 @@ extern char                *cupsdMakeUUID(const char *name, int number,
 extern void            cupsdReleaseSignals(void);
 extern void            cupsdSetString(char **s, const char *v);
 extern void            cupsdSetStringf(char **s, const char *f, ...)
-#ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 2, 3)))
-#endif /* __GNUC__ */
-;
+                       __attribute__ ((__format__ (__printf__, 2, 3)));
 
 /* process.c */
 extern void            *cupsdCreateProfile(int job_id);
index 2b0fadf5f066dfde575f89991759c9351baf087f..a33e0132ca3d6c96e9fff0fdd884e62e35e4863e 100644 (file)
@@ -102,7 +102,8 @@ static int          open_pipe(int *fds);
 static int             read_cupsd_conf(const char *filename);
 static void            set_string(char **s, const char *val);
 static void            sighandler(int sig);
-static void            usage(const char *command, const char *opt);
+static void            usage(const char *command, const char *opt)
+                       __attribute__((noreturn));
 
 
 /*
index a2e2a13f73fff3765a99ba9ae5cec5c3e02f6f76..ac5f8c2b9d5fb9015b81f4a9b3b26967d1df265a 100644 (file)
@@ -228,10 +228,7 @@ static void        send_http_error(cupsd_client_t *con, http_status_t status,
                                cupsd_printer_t *printer);
 static void    send_ipp_status(cupsd_client_t *con, ipp_status_t status,
                                const char *message, ...)
-#    ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 3, 4)))
-#    endif /* __GNUC__ */
-;
+               __attribute__((__format__(__printf__, 3, 4)));
 static void    set_default(cupsd_client_t *con, ipp_attribute_t *uri);
 static void    set_job_attrs(cupsd_client_t *con, ipp_attribute_t *uri);
 static void    set_printer_attrs(cupsd_client_t *con, ipp_attribute_t *uri);
@@ -10311,7 +10308,7 @@ save_auth_info(
   int                  i;              /* Looping var */
   char                 filename[1024]; /* Job authentication filename */
   cups_file_t          *fp;            /* Job authentication file */
-  char                 line[2048];     /* Line for file */
+  char                 line[65536];    /* Line for file */
   cupsd_printer_t      *dest;          /* Destination printer/class */
 
 
index fdd09f0a03abf8dd441d4c5f9b021584b496aced..59e06dd55843bcf5feefcde1df6c37385fa9576d 100644 (file)
@@ -1816,8 +1816,8 @@ cupsdLoadJob(cupsd_job_t *job)            /* I - Job */
     if ((fp = cupsFileOpen(jobfile, "r")) != NULL)
     {
       int      bytes;                  /* Size of auth data */
-      char     line[255],              /* Line from file */
-               data[255];              /* Decoded data */
+      char     line[65536],            /* Line from file */
+               data[65536];            /* Decoded data */
 
 
       for (i = 0;
@@ -3371,6 +3371,9 @@ get_options(cupsd_job_t *job,             /* I - Job */
   * Then allocate/reallocate the option buffer as needed...
   */
 
+  if (newlength == 0)                  /* This can never happen, but Clang */
+    newlength = 1;                     /* thinks it can... */
+
   if (newlength > optlength || !options)
   {
     if (!options)
index 3764478fdb4cd70bfb15beb14be60a6efa40a3d4..4fa63c6b1d0c0fece8961d23d6b2b42c06e03486 100644 (file)
@@ -149,10 +149,8 @@ extern void                cupsdSetJobState(cupsd_job_t *job,
                                         ipp_jstate_t newstate,
                                         cupsd_jobaction_t action,
                                         const char *message, ...)
-#ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 4, 5)))
-#endif /* __GNUC__ */
-;
+                                       __attribute__((__format__(__printf__,
+                                                                 4, 5)));
 extern void            cupsdStopAllJobs(cupsd_jobaction_t action,
                                         int kill_delay);
 extern int             cupsdTimeoutJob(cupsd_job_t *job);
index c5dff97546e62bd3ee0028a67f8240cedf2d7b7c..ecabb7f469c571ef479729ea4c5f2862f4ef7f27 100644 (file)
@@ -516,7 +516,7 @@ cupsdLogMessage(int        level,   /* I - Log level */
   * See if we want to log this message...
   */
 
-  if (TestConfigFile || (level <= LogLevel && !ErrorLog))
+  if ((TestConfigFile || !ErrorLog) && level <= CUPSD_LOG_WARN)
   {
     va_start(ap, message);
     vfprintf(stderr, message, ap);
index ec05b5b9abfff664cda7bdee27293f6e3a791323..0f4a711eaaf9b4da1e4a51b1b4f0b3db277bc514 100644 (file)
@@ -84,7 +84,7 @@ static void           sigchld_handler(int sig);
 static void            sighup_handler(int sig);
 static void            sigterm_handler(int sig);
 static long            select_timeout(int fds);
-static void            usage(int status);
+static void            usage(int status) __attribute__((noreturn));
 
 
 /*
@@ -1514,7 +1514,7 @@ launchd_checkout(void)
 
   if (cupsArrayCount(ActiveJobs) || NumPolled ||
       (Browsing &&
-       (BrowseRemoteProtocols || 
+       (BrowseRemoteProtocols ||
         (BrowseLocalProtocols && cupsArrayCount(Printers)))))
   {
     cupsdLogMessage(CUPSD_LOG_DEBUG,
index ffd769f12ae3c3abfa2a156e75365a468c3b159c..c448e5ac8a9af535cd126ec508268dd07a7c069b 100644 (file)
@@ -32,10 +32,7 @@ extern "C" {
  */
 
 extern void    _mimeError(mime_t *mime, const char *format, ...)
-#ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 2, 3)))
-#endif /* __GNUC__ */
-;
+               __attribute__ ((__format__ (__printf__, 2, 3)));
 
 
 #  ifdef __cplusplus
index bf3030428f089440c493cc126594de24dc4e3fe4..88046a95c29f5f26f0bcd6d204186ac0435ad940 100644 (file)
@@ -30,7 +30,7 @@
  * Local functions...
  */
 
-static void    usage(void);
+static void    usage(void) __attribute__((noreturn));
 
 
 /*
index 64ade1fd5b76e9cde1716e7f7e733cf945bdabdb..c534f593c1a644725bdc7af587ce9fcc29f50701 100644 (file)
@@ -47,7 +47,7 @@ static int    print_waiting(int outfd, int infd, char *dest);
 static int     remove_job(int outfd, int infd, char *dest, char **args);
 static int     status_long(int outfd, int infd, char *dest, char **args);
 static int     status_short(int outfd, int infd, char *dest, char **args);
-static void    usage(void);
+static void    usage(void) __attribute__((noreturn));
 
 
 /*
index 7048d2ac73add6c99b1d2d3039bc2b3bb1a9a713..4aeaf26769e0e12305994fbacd5588e77a1b7511 100644 (file)
@@ -40,7 +40,7 @@
 static int     do_test(const char *server, int port,
                        http_encryption_t encryption, int requests,
                        int verbose);
-static void    usage(void);
+static void    usage(void) __attribute__((noreturn));
 
 
 /*
index 92f6788559385cf9c7db74d78ffa392114263ce5..8726774cb3f2ae5234557090210f82110123d6be 100644 (file)
@@ -43,7 +43,7 @@ static int    terminate = 0;
 
 static void    print_attributes(ipp_t *ipp, int indent);
 static void    sigterm_handler(int sig);
-static void    usage(void);
+static void    usage(void) __attribute__((noreturn));
 
 
 /*
index a7aa88c31ad0780a01d81540e51638178c595962..f40f77b87a9a1f0760a64b75c764ab5d5a3c67ca 100644 (file)
 cancel.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 cancel.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 cancel.o: ../cups/language.h ../cups/string-private.h ../config.h
-cancel.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-cancel.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-cancel.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-cancel.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-cancel.o: ../cups/thread-private.h
+cancel.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+cancel.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+cancel.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+cancel.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+cancel.o: ../cups/transcode.h ../cups/thread-private.h
 cupsaccept.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 cupsaccept.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 cupsaccept.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-cupsaccept.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-cupsaccept.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-cupsaccept.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-cupsaccept.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-cupsaccept.o: ../cups/transcode.h ../cups/thread-private.h
+cupsaccept.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+cupsaccept.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+cupsaccept.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+cupsaccept.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+cupsaccept.o: ../cups/language-private.h ../cups/transcode.h
+cupsaccept.o: ../cups/thread-private.h
 cupsaddsmb.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 cupsaddsmb.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 cupsaddsmb.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-cupsaddsmb.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-cupsaddsmb.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-cupsaddsmb.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-cupsaddsmb.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-cupsaddsmb.o: ../cups/transcode.h ../cups/thread-private.h
-cupsaddsmb.o: ../cups/adminutil.h
+cupsaddsmb.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+cupsaddsmb.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+cupsaddsmb.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+cupsaddsmb.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+cupsaddsmb.o: ../cups/language-private.h ../cups/transcode.h
+cupsaddsmb.o: ../cups/thread-private.h ../cups/adminutil.h
 cupsctl.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 cupsctl.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 cupsctl.o: ../cups/language.h ../cups/string-private.h ../config.h
-cupsctl.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-cupsctl.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-cupsctl.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-cupsctl.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-cupsctl.o: ../cups/thread-private.h ../cups/adminutil.h
+cupsctl.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+cupsctl.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+cupsctl.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+cupsctl.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+cupsctl.o: ../cups/transcode.h ../cups/thread-private.h ../cups/adminutil.h
 cupstestdsc.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 cupstestdsc.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 cupstestdsc.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-cupstestdsc.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-cupstestdsc.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-cupstestdsc.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-cupstestdsc.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-cupstestdsc.o: ../cups/transcode.h ../cups/thread-private.h
+cupstestdsc.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+cupstestdsc.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+cupstestdsc.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+cupstestdsc.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+cupstestdsc.o: ../cups/language-private.h ../cups/transcode.h
+cupstestdsc.o: ../cups/thread-private.h
 cupstestppd.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 cupstestppd.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 cupstestppd.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-cupstestppd.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-cupstestppd.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-cupstestppd.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-cupstestppd.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-cupstestppd.o: ../cups/transcode.h ../cups/thread-private.h ../cups/dir.h
-cupstestppd.o: ../cups/ppd-private.h ../cups/raster.h ../cups/ppd.h
+cupstestppd.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+cupstestppd.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+cupstestppd.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+cupstestppd.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+cupstestppd.o: ../cups/language-private.h ../cups/transcode.h
+cupstestppd.o: ../cups/thread-private.h ../cups/dir.h ../cups/ppd-private.h
+cupstestppd.o: ../cups/raster.h ../cups/ppd.h
 lp.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 lp.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 lp.o: ../cups/language.h ../cups/string-private.h ../config.h
-lp.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-lp.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-lp.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-lp.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-lp.o: ../cups/thread-private.h
+lp.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+lp.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+lp.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+lp.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+lp.o: ../cups/transcode.h ../cups/thread-private.h
 lpadmin.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 lpadmin.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 lpadmin.o: ../cups/language.h ../cups/string-private.h ../config.h
-lpadmin.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-lpadmin.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-lpadmin.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-lpadmin.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-lpadmin.o: ../cups/thread-private.h
+lpadmin.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+lpadmin.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+lpadmin.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+lpadmin.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+lpadmin.o: ../cups/transcode.h ../cups/thread-private.h
 lpinfo.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 lpinfo.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 lpinfo.o: ../cups/language.h ../cups/string-private.h ../config.h
-lpinfo.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-lpinfo.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-lpinfo.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-lpinfo.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-lpinfo.o: ../cups/thread-private.h
+lpinfo.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+lpinfo.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+lpinfo.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+lpinfo.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+lpinfo.o: ../cups/transcode.h ../cups/thread-private.h
 lpmove.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 lpmove.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 lpmove.o: ../cups/language.h ../cups/string-private.h ../config.h
-lpmove.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-lpmove.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-lpmove.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-lpmove.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-lpmove.o: ../cups/thread-private.h
+lpmove.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+lpmove.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+lpmove.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+lpmove.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+lpmove.o: ../cups/transcode.h ../cups/thread-private.h
 lpoptions.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 lpoptions.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 lpoptions.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-lpoptions.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-lpoptions.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-lpoptions.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-lpoptions.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-lpoptions.o: ../cups/transcode.h ../cups/thread-private.h
+lpoptions.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+lpoptions.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+lpoptions.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+lpoptions.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+lpoptions.o: ../cups/language-private.h ../cups/transcode.h
+lpoptions.o: ../cups/thread-private.h
 lppasswd.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 lppasswd.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 lppasswd.o: ../cups/language.h ../cups/string-private.h ../config.h
-lppasswd.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-lppasswd.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-lppasswd.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-lppasswd.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
+lppasswd.o: ../cups/debug-private.h ../cups/versioning.h
+lppasswd.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+lppasswd.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+lppasswd.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+lppasswd.o: ../cups/language-private.h ../cups/transcode.h
 lppasswd.o: ../cups/thread-private.h ../cups/md5-private.h
 lpstat.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 lpstat.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 lpstat.o: ../cups/language.h ../cups/string-private.h ../config.h
-lpstat.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-lpstat.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-lpstat.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-lpstat.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-lpstat.o: ../cups/thread-private.h
+lpstat.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+lpstat.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+lpstat.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+lpstat.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+lpstat.o: ../cups/transcode.h ../cups/thread-private.h
index ae5f5a06309062d29b3613b1b517c93615140ac8..e8df3deaf413e4950bdb1cce1e303e0c7fec93a1 100644 (file)
@@ -210,7 +210,7 @@ cupstestdsc:        cupstestdsc.o ../cups/$(LIBCUPS)
 
 cupstestppd:   cupstestppd.o ../cups/$(LIBCUPS) ../filter/$(LIBCUPSIMAGE)
        echo Linking $@...
-       $(CC) $(LDFLAGS) -o $@ cupstestppd.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS)
+       $(CC) $(LDFLAGS) -o $@ cupstestppd.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS) -lm
 
 cupstestppd-static:    cupstestppd.o ../cups/$(LIBCUPSSTATIC) ../filter/libcupsimage.a
        echo Linking $@...
index 18dc8df25f1705f43d72e1ad9c8e92a52aaede1a..946c620805e918157ead206a9eb31fa5b8855fca 100644 (file)
@@ -45,7 +45,7 @@ const char    *SAMBAUser,
  */
 
 int    export_dest(http_t *http, const char *dest);
-void   usage(void);
+void   usage(void) __attribute__((noreturn));
 
 
 /*
index eabc6e479ef6011d16a039d1c83a5412de6d4356..e53a7147756ddb334b24a5fc5b374ea4ff66f07f 100644 (file)
@@ -32,7 +32,7 @@
  * Local functions...
  */
 
-static void    usage(const char *opt);
+static void    usage(const char *opt) __attribute__((noreturn));
 
 
 /*
index 6944b42c56ffbe7ca5ae00528ec9be34b7a9c786..5ec01aee7dec7459b1166ec229232eb9d75b22bd 100644 (file)
@@ -35,7 +35,7 @@
  */
 
 static int     check_file(const char *filename);
-static void    usage(void);
+static void    usage(void) __attribute__((noreturn));
 
 
 /*
index 3dfa7bf5fae0b84e64fb025e5bea8ca4c1389ad1..3765f4754593d8c61a73d99eacee02f1a11fd808 100644 (file)
@@ -129,7 +129,7 @@ static int  check_translations(ppd_file_t *ppd, int errors, int verbose,
                                   int warn);
 static void    show_conflicts(ppd_file_t *ppd, const char *prefix);
 static int     test_raster(ppd_file_t *ppd, int verbose);
-static void    usage(void);
+static void    usage(void) __attribute__((noreturn));
 static int     valid_path(const char *keyword, const char *path, int errors,
                           int verbose, int warn);
 static int     valid_utf8(const char *s);
@@ -2320,7 +2320,6 @@ check_filters(ppd_file_t *ppd,            /* I - PPD file */
              int        verbose,       /* I - Verbosity level */
              int        warn)          /* I - Warnings only? */
 {
-  int          i;                      /* Looping var */
   ppd_attr_t   *attr;                  /* PPD attribute */
   const char   *ptr;                   /* Pointer into string */
   char         super[16],              /* Super-type for filter */
@@ -2368,7 +2367,7 @@ check_filters(ppd_file_t *ppd,            /* I - PPD file */
       if (verbose >= 0)
        _cupsLangPrintf(stdout,
                        _("      %s  Bad cupsFilter value \"%s\"."),
-                       prefix, ppd->filters[i]);
+                       prefix, attr->value);
 
       if (!warn)
         errors ++;
@@ -2454,7 +2453,7 @@ check_filters(ppd_file_t *ppd,            /* I - PPD file */
       if (verbose >= 0)
        _cupsLangPrintf(stdout,
                        _("      %s  Bad cupsFilter2 value \"%s\"."),
-                       prefix, ppd->filters[i]);
+                       prefix, attr->value);
 
       if (!warn)
         errors ++;
index 0d81312d340e30c5a3b5af7510e3ad622a41b062..06a1762c6f5a148f6821360232b80f6edb88924a 100644 (file)
@@ -33,7 +33,7 @@
 
 static void    list_group(ppd_file_t *ppd, ppd_group_t *group);
 static void    list_options(cups_dest_t *dest);
-static void    usage(void);
+static void    usage(void) __attribute__((noreturn));
 
 
 /*
index 7baa53a9334c5f7105dafe8b2b403ab309473277..b9962ecfc02cacab8c6ad592a4653fd9674b6190 100644 (file)
@@ -3,7 +3,7 @@
  *
  *   MD5 password program for CUPS.
  *
- *   Copyright 2007-2010 by Apple Inc.
+ *   Copyright 2007-2011 by Apple Inc.
  *   Copyright 1997-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
@@ -48,7 +48,7 @@
  * Local functions...
  */
 
-static void    usage(FILE *fp);
+static void    usage(FILE *fp) __attribute__((noreturn));
 
 
 /*
@@ -429,7 +429,7 @@ main(int  argc,                             /* I - Number of command-line arguments */
   if (error)
   {
     _cupsLangPuts(stderr, _("lppasswd: Password file not updated."));
-    
+
     unlink(passwdnew);
 
     return (1);
@@ -475,7 +475,7 @@ usage(FILE *fp)             /* I - File to send usage to */
   if (getuid())
     _cupsLangPuts(fp, _("Usage: lppasswd [-g groupname]"));
   else
-    _cupsLangPuts(fp, 
+    _cupsLangPuts(fp,
                   _("Usage: lppasswd [-g groupname] [username]\n"
                    "       lppasswd [-g groupname] -a [username]\n"
                    "       lppasswd [-g groupname] -x [username]"));
index 1c29663623ad23493432920be7fc222c45123e5d..32891447ef8e69813a38b27ad2e29ef057831161 100644 (file)
@@ -3,17 +3,18 @@
 ippserver.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ippserver.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
 ippserver.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
-ippserver.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
-ippserver.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
-ippserver.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
-ippserver.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
-ippserver.o: ../cups/transcode.h ../cups/thread-private.h
+ippserver.o: ../config.h ../cups/debug-private.h ../cups/versioning.h
+ippserver.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
+ippserver.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
+ippserver.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
+ippserver.o: ../cups/language-private.h ../cups/transcode.h
+ippserver.o: ../cups/thread-private.h
 ipptool.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
 ipptool.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
 ipptool.o: ../cups/language.h ../cups/string-private.h ../config.h
-ipptool.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
-ipptool.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
-ipptool.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
-ipptool.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
-ipptool.o: ../cups/thread-private.h ../cups/file-private.h
-ipptool.o: ../cups/cups-private.h
+ipptool.o: ../cups/debug-private.h ../cups/versioning.h ../cups/ppd-private.h
+ipptool.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
+ipptool.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
+ipptool.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
+ipptool.o: ../cups/transcode.h ../cups/thread-private.h
+ipptool.o: ../cups/file-private.h ../cups/cups-private.h
index 0a849596228d9f38a804ec0823cdc4040bb909b0..cf73f9039175a62ee005b1a1751e9f9535c7349b 100644 (file)
@@ -285,11 +285,8 @@ static _ipp_job_t  *find_job(_ipp_client_t *client);
 static void            html_escape(_ipp_client_t *client, const char *s,
                                    size_t slen);
 static void            html_printf(_ipp_client_t *client, const char *format,
-                                   ...)
-#  ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 2, 3)))
-#  endif /* __GNUC__ */
-;
+                                   ...) __attribute__((__format__(__printf__,
+                                                                  2, 3)));
 static void            ipp_cancel_job(_ipp_client_t *client);
 #if 0
 static void            ipp_create_job(_ipp_client_t *client);
@@ -317,12 +314,9 @@ static int         respond_http(_ipp_client_t *client, http_status_t code,
                                     const char *type, size_t length);
 static void            respond_ipp(_ipp_client_t *client, ipp_status_t status,
                                    const char *message, ...)
-#ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 3, 4)))
-#endif /* __GNUC__ */
-;
+                       __attribute__ ((__format__ (__printf__, 3, 4)));
 static void            run_printer(_ipp_printer_t *printer);
-static void            usage(int status);
+static void            usage(int status) __attribute__((noreturn));
 static int             valid_job_attributes(_ipp_client_t *client);
 
 
index 5fdcd09a7ada6a773ae212f65ec2a8b1adb3907f..ef3d86c76aeacbadd71f736a694e3b3627f0dbbc 100644 (file)
@@ -38,6 +38,7 @@
  *   print_xml_string()  - Print an XML string with escaping.
  *   print_xml_trailer() - Print the XML trailer with success/fail value.
  *   set_variable()      - Set a variable value.
+ *   sigterm_handler()   - Handle SIGINT and SIGTERM.
  *   timeout_cb()        - Handle HTTP timeouts.
  *   usage()             - Show program usage.
  *   validate_attr()     - Determine whether an attribute is valid.
@@ -51,6 +52,7 @@
 #include <cups/cups-private.h>
 #include <cups/file-private.h>
 #include <regex.h>
+#include <sys/stat.h>
 
 #ifndef O_BINARY
 #  define O_BINARY 0
@@ -132,7 +134,8 @@ _cups_transfer_t Transfer = _CUPS_TRANSFER_AUTO;
                                        /* How to transfer requests */
 _cups_output_t Output = _CUPS_OUTPUT_LIST;
                                        /* Output mode */
-int            IgnoreErrors = 0,       /* Ignore errors? */
+int            Cancel = 0,             /* Cancel test? */
+               IgnoreErrors = 0,       /* Ignore errors? */
                Verbosity = 0,          /* Show all attributes? */
                Version = 11,           /* Default IPP version */
                XMLHeader = 0;          /* 1 if header is written */
@@ -161,11 +164,7 @@ const char * const URIStatusStrings[] =    /* URI status strings */
 static int     compare_vars(_cups_var_t *a, _cups_var_t *b);
 static int     do_tests(_cups_vars_t *vars, const char *testfile);
 static void    expand_variables(_cups_vars_t *vars, char *dst, const char *src,
-                                size_t dstsize)
-#ifdef __GNUC__
-__attribute((nonnull(1,2,3)))
-#endif /* __GNUC__ */
-;
+                                size_t dstsize) __attribute((nonnull(1,2,3)));
 static int      expect_matches(_cups_expect_t *expect, ipp_tag_t value_tag);
 static ipp_t   *get_collection(_cups_vars_t *vars, FILE *fp, int *linenum);
 static char    *get_filename(const char *testfile, char *dst, const char *src,
@@ -180,24 +179,19 @@ static void       print_col(ipp_t *col);
 static void    print_csv(ipp_attribute_t *attr, int num_displayed,
                          char **displayed, size_t *widths);
 static void    print_fatal_error(const char *s, ...)
-#ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 1, 2)))
-#endif /* __GNUC__ */
-;
+               __attribute__ ((__format__ (__printf__, 1, 2)));
 static void    print_line(ipp_attribute_t *attr, int num_displayed,
                           char **displayed, size_t *widths);
 static void    print_test_error(const char *s, ...)
-#ifdef __GNUC__
-__attribute__ ((__format__ (__printf__, 1, 2)))
-#endif /* __GNUC__ */
-;
+               __attribute__ ((__format__ (__printf__, 1, 2)));
 static void    print_xml_header(void);
 static void    print_xml_string(const char *element, const char *s);
 static void    print_xml_trailer(int success, const char *message);
 static void    set_variable(_cups_vars_t *vars, const char *name,
                             const char *value);
+static void    sigterm_handler(int sig);
 static int     timeout_cb(http_t *http, void *user_data);
-static void    usage(void);
+static void    usage(void) __attribute__((noreturn));
 static int     validate_attr(ipp_attribute_t *attr, int print);
 static int      with_value(char *value, int regex, ipp_attribute_t *attr,
                           int report);
@@ -227,6 +221,12 @@ main(int  argc,                            /* I - Number of command-line args */
                                        /* Global data */
 
 
+ /*
+  * Catch SIGINT and SIGTERM...
+  */
+
+  signal(SIGINT, sigterm_handler);
+  signal(SIGTERM, sigterm_handler);
 
  /*
   * Initialize the locale and variables...
@@ -613,9 +613,14 @@ do_tests(_cups_vars_t *vars,               /* I - Variables */
   char         resource[512],          /* Resource for request */
                token[1024],            /* Token from file */
                *tokenptr,              /* Pointer into token */
-               temp[1024];             /* Temporary string */
-  ipp_t                *request = NULL;        /* IPP request */
-  ipp_t                *response = NULL;       /* IPP response */
+               temp[1024],             /* Temporary string */
+               buffer[8192];           /* Copy buffer */
+  ipp_t                *request = NULL,        /* IPP request */
+               *response = NULL;       /* IPP response */
+  size_t       length;                 /* Length of IPP request */
+  http_status_t        status;                 /* HTTP status */
+  int          fd;                     /* File to send */
+  ssize_t      bytes;                  /* Bytes read/written */
   char         attr[128];              /* Attribute name */
   ipp_op_t     op;                     /* Operation */
   ipp_tag_t    group;                  /* Current group */
@@ -686,7 +691,7 @@ do_tests(_cups_vars_t *vars,                /* I - Variables */
   linenum    = 1;
   request_id = (CUPS_RAND() % 1000) * 137 + 1;
 
-  while (get_token(fp, token, sizeof(token), &linenum) != NULL)
+  while (!Cancel && get_token(fp, token, sizeof(token), &linenum) != NULL)
   {
    /*
     * Expect an open brace...
@@ -2000,48 +2005,105 @@ do_tests(_cups_vars_t *vars,           /* I - Variables */
       goto skip_error;
     }
 
+    status = HTTP_OK;
+
     if (transfer == _CUPS_TRANSFER_CHUNKED ||
         (transfer == _CUPS_TRANSFER_AUTO && filename[0]))
     {
      /*
-      * Send request using chunking...
+      * Send request using chunking - a 0 length means "chunk".
       */
 
-      http_status_t status = cupsSendRequest(http, request, resource, 0);
+      length = 0;
+    }
+    else
+    {
+     /*
+      * Send request using content length...
+      */
+
+      length = ippLength(request);
 
-      if (status == HTTP_CONTINUE && filename[0])
+      if (filename[0])
       {
-        int    fd;                     /* File to send */
-        char   buffer[8192];           /* Copy buffer */
-        ssize_t        bytes;                  /* Bytes read/written */
+        struct stat    fileinfo;       /* File information */
 
-        if ((fd = open(filename, O_RDONLY | O_BINARY)) >= 0)
+        if (stat(filename, &fileinfo))
         {
-          while ((bytes = read(fd, buffer, sizeof(buffer))) > 0)
-            if ((status = cupsWriteRequestData(http, buffer,
-                                               bytes)) != HTTP_CONTINUE)
-              break;
-        }
-        else
-       {
          snprintf(buffer, sizeof(buffer), "%s: %s", filename, strerror(errno));
          _cupsSetError(IPP_INTERNAL_ERROR, buffer, 0);
 
           status = HTTP_ERROR;
-       }
+        }
+        else
+          length += fileinfo.st_size;
       }
+    }
 
-      ippDelete(request);
+   /*
+    * Send the request...
+    */
 
-      if (status == HTTP_CONTINUE)
-       response = cupsGetResponse(http, resource);
-      else
-       response = NULL;
+    response = NULL;
+
+    if (status != HTTP_ERROR)
+    {
+      while (!response && !Cancel)
+      {
+       status = cupsSendRequest(http, request, resource, length);
+
+       if (!Cancel && status == HTTP_CONTINUE && request->state == IPP_DATA &&
+           filename[0])
+       {
+         if ((fd = open(filename, O_RDONLY | O_BINARY)) >= 0)
+         {
+           while (!Cancel && (bytes = read(fd, buffer, sizeof(buffer))) > 0)
+             if ((status = cupsWriteRequestData(http, buffer,
+                                                bytes)) != HTTP_CONTINUE)
+               break;
+         }
+         else
+         {
+           snprintf(buffer, sizeof(buffer), "%s: %s", filename,
+                    strerror(errno));
+           _cupsSetError(IPP_INTERNAL_ERROR, buffer, 0);
+
+           status = HTTP_ERROR;
+         }
+       }
+
+       /*
+       * Get the server's response...
+       */
+
+       if (!Cancel && (status == HTTP_CONTINUE || status == HTTP_OK))
+       {
+         response = cupsGetResponse(http, resource);
+         status   = http->status;
+       }
+       else
+         httpFlush(http);
+
+       if ((status == HTTP_ERROR && cupsLastError() != IPP_INTERNAL_ERROR) ||
+           (status >= HTTP_BAD_REQUEST && status != HTTP_UNAUTHORIZED &&
+            status != HTTP_UPGRADE_REQUIRED))
+       {
+         _cupsSetHTTPError(status);
+         break;
+       }
+
+       if (http->state != HTTP_WAITING)
+       {
+        /*
+         * Flush any remaining data...
+         */
+
+         httpFlush(http);
+       }
+      }
     }
-    else if (filename[0])
-      response = cupsDoFileRequest(http, request, resource, filename);
-    else
-      response = cupsDoRequest(http, request, resource);
+
+    ippDelete(request);
 
     request   = NULL;
     prev_pass = 1;
@@ -3956,6 +4018,19 @@ set_variable(_cups_vars_t *vars, /* I - Variables */
 }
 
 
+/*
+ * 'sigterm_handler()' - Handle SIGINT and SIGTERM.
+ */
+
+static void
+sigterm_handler(int sig)               /* I - Signal number (unused) */
+{
+  (void)sig;
+
+  Cancel = 1;
+}
+
+
 /*
  * 'timeout_cb()' - Handle HTTP timeouts.
  */
@@ -3967,6 +4042,7 @@ timeout_cb(http_t *http,          /* I - Connection to server (unused) */
   (void)http;
   (void)user_data;
 
+ /* Always cancel on timeout */
   return (0);
 }
 
index fa943fc95b644d86a3c0be0923d2914e053e3665..85aa9ce32823b3246000a3576381be1686594041 100755 (executable)
@@ -212,6 +212,43 @@ case "$usevalgrind" in
                ;;
 esac
 
+#
+# See if we want to do debug logging of the libraries...
+#
+
+echo ""
+echo "If CUPS was built with the --enable-debug-printfs configure option, you"
+echo "can enable debug logging of the libraries."
+echo ""
+echo $ac_n "Enter Y or a number from 0 to 9 to enable debug logging or N to not: [N] $ac_c"
+
+if test $# -gt 0; then
+       usedebugprintfs=$1
+       shift
+else
+       read usedebugprintfs
+fi
+echo ""
+
+case "$usedebugprintfs" in
+       Y* | y*)
+               echo "Enabling debug printfs; log files can be found in /tmp/cups-$user/log..."
+               CUPS_DEBUG_LOG="/tmp/cups-$user/log/debug_printfs.%d"; export CUPS_DEBUG_LOG
+               CUPS_DEBUG_LEVEL=5; export CUPS_DEBUG_LEVEL
+               CUPS_DEBUG_FILTER='^(http|_http|ipp|_ipp|cups.*Request|cupsGetRespond|cupsSend).*$'; export CUPS_DEBUG_FILTER
+               ;;
+
+       0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9)
+               echo "Enabling debug printfs; log files can be found in /tmp/cups-$user/log..."
+               CUPS_DEBUG_LOG="/tmp/cups-$user/log/debug_printfs.%d"; export CUPS_DEBUG_LOG
+               CUPS_DEBUG_LEVEL=$usedebugprintf; export CUPS_DEBUG_LEVEL
+               CUPS_DEBUG_FILTER='^(http|_http|ipp|_ipp|cups.*Request|cupsGetRespond|cupsSend).*$'; export CUPS_DEBUG_FILTER
+               ;;
+
+       *)
+               ;;
+esac
+
 #
 # Start by creating temporary directories for the tests...
 #
@@ -338,6 +375,7 @@ CacheDir /tmp/cups-$user/share
 DataDir /tmp/cups-$user/share
 FontPath /tmp/cups-$user/share/fonts
 PassEnv LOCALEDIR
+PassEnv DYLD_INSERT_LIBRARIES
 DocumentRoot $root/doc
 RequestRoot /tmp/cups-$user/spool
 TempDir /tmp/cups-$user/spool/temp
@@ -476,8 +514,8 @@ echo "    $valgrind ../scheduler/cupsd -c /tmp/cups-$user/cupsd.conf -f >/tmp/cu
 echo ""
 
 if test `uname` = Darwin -a "x$valgrind" = x; then
-       DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib \
-       $valgrind ../scheduler/cupsd -c /tmp/cups-$user/cupsd.conf -f >/tmp/cups-$user/log/debug_log 2>&1 &
+       DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib
+       ../scheduler/cupsd -c /tmp/cups-$user/cupsd.conf -f >/tmp/cups-$user/log/debug_log 2>&1 &
 else
        $valgrind ../scheduler/cupsd -c /tmp/cups-$user/cupsd.conf -f >/tmp/cups-$user/log/debug_log 2>&1 &
 fi