From 85dda01c84763aecc4d31e15246d0ac5986eedae Mon Sep 17 00:00:00 2001 From: msweet Date: Wed, 7 Sep 2011 22:31:27 +0000 Subject: [PATCH] Merge changes from CUPS 1.6svn-r9968. git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3411 a1ca3aef-8c08-0410-bb20-df032aa958be --- CHANGES-1.5.txt | 8 + CHANGES.txt | 3 +- Makefile | 6 +- backend/Dependencies | 83 +-- backend/dnssd.c | 4 +- backend/ipp.c | 6 +- backend/testbackend.c | 4 +- berkeley/Dependencies | 40 +- berkeley/lpq.c | 2 +- cgi-bin/Dependencies | 55 +- cgi-bin/help-index.c | 57 +- cgi-bin/var.c | 10 +- config-scripts/cups-compiler.m4 | 7 +- cups/Dependencies | 930 +++++++++++++----------- cups/auth.c | 1 - cups/cups.h | 12 - cups/debug-private.h | 13 +- cups/file.c | 18 +- cups/file.h | 26 +- cups/http-private.h | 49 +- cups/http-support.c | 2 +- cups/http.c | 299 +++++--- cups/http.h | 5 +- cups/language-private.h | 10 +- cups/raster-private.h | 6 +- cups/request.c | 32 +- cups/string-private.h | 5 +- cups/testsnmp.c | 4 +- cups/usersys.c | 10 +- cups/versioning.h | 15 +- filter/Dependencies | 129 ++-- filter/interpret.c | 2 +- filter/pstops.c | 10 +- locale/Dependencies | 32 +- man/client.conf.man.in | 6 +- monitor/Dependencies | 20 +- notifier/Dependencies | 21 +- ppdc/Dependencies | 229 +++--- scheduler/Dependencies | 355 +++++----- scheduler/auth.c | 4 +- scheduler/client.c | 1166 ++++++++++++++++--------------- scheduler/conf.h | 12 +- scheduler/cups.sh.in | 4 + scheduler/cupsd.h | 10 +- scheduler/cupsfilter.c | 3 +- scheduler/ipp.c | 7 +- scheduler/job.c | 7 +- scheduler/job.h | 6 +- scheduler/log.c | 2 +- scheduler/main.c | 4 +- scheduler/mime-private.h | 5 +- scheduler/testdirsvc.c | 2 +- scheduler/testlpd.c | 2 +- scheduler/testspeed.c | 2 +- scheduler/testsub.c | 2 +- systemv/Dependencies | 137 ++-- systemv/Makefile | 2 +- systemv/cupsaddsmb.c | 2 +- systemv/cupsctl.c | 2 +- systemv/cupstestdsc.c | 2 +- systemv/cupstestppd.c | 7 +- systemv/lpoptions.c | 2 +- systemv/lppasswd.c | 8 +- test/Dependencies | 23 +- test/ippserver.c | 14 +- test/ipptool.c | 162 +++-- test/run-stp-tests.sh | 42 +- 67 files changed, 2262 insertions(+), 1905 deletions(-) diff --git a/CHANGES-1.5.txt b/CHANGES-1.5.txt index 100312bab..b2808cf0e 100644 --- a/CHANGES-1.5.txt +++ b/CHANGES-1.5.txt @@ -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) diff --git a/CHANGES.txt b/CHANGES.txt index 58b9973db..8bca37893 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -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 diff --git a/Makefile b/Makefile index 96c73aba8..b7b21698c 100644 --- 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 # diff --git a/backend/Dependencies b/backend/Dependencies index 291418160..a738f9f97 100644 --- a/backend/Dependencies +++ b/backend/Dependencies @@ -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 diff --git a/backend/dnssd.c b/backend/dnssd.c index d1392ed2a..e8de61c25 100644 --- a/backend/dnssd.c +++ b/backend/dnssd.c @@ -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); diff --git a/backend/ipp.c b/backend/ipp.c index 67d05cfd9..f8337bc88 100644 --- a/backend/ipp.c +++ b/backend/ipp.c @@ -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, diff --git a/backend/testbackend.c b/backend/testbackend.c index 2c2d5beaf..cdb9a6695 100644 --- a/backend/testbackend.c +++ b/backend/testbackend.c @@ -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) diff --git a/berkeley/Dependencies b/berkeley/Dependencies index de9ba9799..9d43ccaf8 100644 --- a/berkeley/Dependencies +++ b/berkeley/Dependencies @@ -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 diff --git a/berkeley/lpq.c b/berkeley/lpq.c index 24e49e423..e798cf8c6 100644 --- a/berkeley/lpq.c +++ b/berkeley/lpq.c @@ -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)); /* diff --git a/cgi-bin/Dependencies b/cgi-bin/Dependencies index 9a5f11d57..9b7f87e8e 100644 --- a/cgi-bin/Dependencies +++ b/cgi-bin/Dependencies @@ -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 diff --git a/cgi-bin/help-index.c b/cgi-bin/help-index.c index 5cfbefb2e..c48ffeb4d 100644 --- a/cgi-bin/help-index.c +++ b/cgi-bin/help-index.c @@ -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)); diff --git a/cgi-bin/var.c b/cgi-bin/var.c index f199c4cc8..d5e58eb1e 100644 --- a/cgi-bin/var.c +++ b/cgi-bin/var.c @@ -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'); } diff --git a/config-scripts/cups-compiler.m4 b/config-scripts/cups-compiler.m4 index 8699f6e55..b00b05571 100644 --- a/config-scripts/cups-compiler.m4 +++ b/config-scripts/cups-compiler.m4 @@ -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" diff --git a/cups/Dependencies b/cups/Dependencies index 5e6359f7d..a1042de8a 100644 --- a/cups/Dependencies +++ b/cups/Dependencies @@ -2,213 +2,237 @@ 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 diff --git a/cups/auth.c b/cups/auth.c index 5a75d2b42..1351581e0 100644 --- a/cups/auth.c +++ b/cups/auth.c @@ -419,7 +419,6 @@ _cupsSetNegotiateAuthString( } } } - else #endif /* HAVE_GSS_ACQUIRED_CRED_EX_F */ if (GSS_ERROR(major_status)) diff --git a/cups/cups.h b/cups/cups.h index 857f17fbe..0a123c728 100644 --- a/cups/cups.h +++ b/cups/cups.h @@ -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... */ diff --git a/cups/debug-private.h b/cups/debug-private.h index c739fa68a..e40e58386 100644 --- a/cups/debug-private.h +++ b/cups/debug-private.h @@ -18,6 +18,14 @@ #ifndef _CUPS_DEBUG_PRIVATE_H_ # define _CUPS_DEBUG_PRIVATE_H_ + +/* + * Include necessary headers... + */ + +# include + + /* * 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, diff --git a/cups/file.c b/cups/file.c index daa09da85..c6c1cfe56 100644 --- a/cups/file.c +++ b/cups/file.c @@ -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 */ { diff --git a/cups/file.h b/cups/file.h index 5f02b5c91..1428c576d 100644 --- a/cups/file.h +++ b/cups/file.h @@ -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 diff --git a/cups/http-private.h b/cups/http-private.h index 56a9b7282..ab98b5ab3 100644 --- a/cups/http-private.h +++ b/cups/http-private.h @@ -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); diff --git a/cups/http-support.c b/cups/http-support.c index c6ca6c2a5..7c30f4d9f 100644 --- a/cups/http-support.c +++ b/cups/http-support.c @@ -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) diff --git a/cups/http.c b/cups/http.c index 8aab65a1d..c5489e71b 100644 --- a/cups/http.c +++ b/cups/http.c @@ -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. @@ -107,6 +107,8 @@ * 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); diff --git a/cups/http.h b/cups/http.h index 7e4eeb4a2..5e3a42d3a 100644 --- a/cups/http.h +++ b/cups/http.h @@ -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); diff --git a/cups/language-private.h b/cups/language-private.h index 0c10ca54c..6a2a886b1 100644 --- a/cups/language-private.h +++ b/cups/language-private.h @@ -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); diff --git a/cups/raster-private.h b/cups/raster-private.h index 0a1996c5c..169631e68 100644 --- a/cups/raster-private.h +++ b/cups/raster-private.h @@ -56,8 +56,10 @@ 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_ */ diff --git a/cups/request.c b/cups/request.c index e8b142512..a38ec1960 100644 --- a/cups/request.c +++ b/cups/request.c @@ -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); } } diff --git a/cups/string-private.h b/cups/string-private.h index e16d63b84..bef1aea80 100644 --- a/cups/string-private.h +++ b/cups/string-private.h @@ -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 */ diff --git a/cups/testsnmp.c b/cups/testsnmp.c index 3a3eb9f70..f1498c834 100644 --- a/cups/testsnmp.c +++ b/cups/testsnmp.c @@ -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); } diff --git a/cups/usersys.c b/cups/usersys.c index 879b31539..a8784d8a5 100644 --- a/cups/usersys.c +++ b/cups/usersys.c @@ -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)); diff --git a/cups/versioning.h b/cups/versioning.h index 92a0a52eb..719483dd7 100644 --- a/cups/versioning.h +++ b/cups/versioning.h @@ -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 @@ -20,13 +20,15 @@ /* * 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 */ /* diff --git a/filter/Dependencies b/filter/Dependencies index d51a06c8f..ff42a38fa 100644 --- a/filter/Dependencies +++ b/filter/Dependencies @@ -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 diff --git a/filter/interpret.c b/filter/interpret.c index 32e6821db..eed4432d8 100644 --- a/filter/interpret.c +++ b/filter/interpret.c @@ -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); diff --git a/filter/pstops.c b/filter/pstops.c index c87ca2a78..8390a204f 100644 --- a/filter/pstops.c +++ b/filter/pstops.c @@ -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) diff --git a/locale/Dependencies b/locale/Dependencies index 45dd3faec..4543566ca 100644 --- a/locale/Dependencies +++ b/locale/Dependencies @@ -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 diff --git a/man/client.conf.man.in b/man/client.conf.man.in index 0f85f305f..ca659ff54 100644 --- a/man/client.conf.man.in +++ b/man/client.conf.man.in @@ -12,11 +12,11 @@ .\" 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 diff --git a/monitor/Dependencies b/monitor/Dependencies index 005e3eb1e..451a95a32 100644 --- a/monitor/Dependencies +++ b/monitor/Dependencies @@ -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 diff --git a/notifier/Dependencies b/notifier/Dependencies index 5f48964f6..9e723214b 100644 --- a/notifier/Dependencies +++ b/notifier/Dependencies @@ -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 diff --git a/ppdc/Dependencies b/ppdc/Dependencies index ef9bd5a8e..28b289cf7 100644 --- a/ppdc/Dependencies +++ b/ppdc/Dependencies @@ -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 diff --git a/scheduler/Dependencies b/scheduler/Dependencies index 1cbb24ae1..db0388aa1 100644 --- a/scheduler/Dependencies +++ b/scheduler/Dependencies @@ -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 diff --git a/scheduler/auth.c b/scheduler/auth.c index 83f90e5e7..01f16634e 100644 --- a/scheduler/auth.c +++ b/scheduler/auth.c @@ -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); } diff --git a/scheduler/client.c b/scheduler/client.c index 9ee65ab74..c8995916a 100644 --- a/scheduler/client.c +++ b/scheduler/client.c @@ -17,33 +17,34 @@ * * 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. */ /* @@ -57,6 +58,36 @@ #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; diff --git a/scheduler/conf.h b/scheduler/conf.h index 4d669027a..a68c31d3b 100644 --- a/scheduler/conf.h +++ b/scheduler/conf.h @@ -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); diff --git a/scheduler/cups.sh.in b/scheduler/cups.sh.in index 9215c6bef..e67762043 100644 --- a/scheduler/cups.sh.in +++ b/scheduler/cups.sh.in @@ -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 diff --git a/scheduler/cupsd.h b/scheduler/cupsd.h index d742467a7..630285f3e 100644 --- a/scheduler/cupsd.h +++ b/scheduler/cupsd.h @@ -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); diff --git a/scheduler/cupsfilter.c b/scheduler/cupsfilter.c index 2b0fadf5f..a33e0132c 100644 --- a/scheduler/cupsfilter.c +++ b/scheduler/cupsfilter.c @@ -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)); /* diff --git a/scheduler/ipp.c b/scheduler/ipp.c index a2e2a13f7..ac5f8c2b9 100644 --- a/scheduler/ipp.c +++ b/scheduler/ipp.c @@ -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 */ diff --git a/scheduler/job.c b/scheduler/job.c index fdd09f0a0..59e06dd55 100644 --- a/scheduler/job.c +++ b/scheduler/job.c @@ -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) diff --git a/scheduler/job.h b/scheduler/job.h index 3764478fd..4fa63c6b1 100644 --- a/scheduler/job.h +++ b/scheduler/job.h @@ -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); diff --git a/scheduler/log.c b/scheduler/log.c index c5dff9754..ecabb7f46 100644 --- a/scheduler/log.c +++ b/scheduler/log.c @@ -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); diff --git a/scheduler/main.c b/scheduler/main.c index ec05b5b9a..0f4a711ea 100644 --- a/scheduler/main.c +++ b/scheduler/main.c @@ -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, diff --git a/scheduler/mime-private.h b/scheduler/mime-private.h index ffd769f12..c448e5ac8 100644 --- a/scheduler/mime-private.h +++ b/scheduler/mime-private.h @@ -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 diff --git a/scheduler/testdirsvc.c b/scheduler/testdirsvc.c index bf3030428..88046a95c 100644 --- a/scheduler/testdirsvc.c +++ b/scheduler/testdirsvc.c @@ -30,7 +30,7 @@ * Local functions... */ -static void usage(void); +static void usage(void) __attribute__((noreturn)); /* diff --git a/scheduler/testlpd.c b/scheduler/testlpd.c index 64ade1fd5..c534f593c 100644 --- a/scheduler/testlpd.c +++ b/scheduler/testlpd.c @@ -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)); /* diff --git a/scheduler/testspeed.c b/scheduler/testspeed.c index 7048d2ac7..4aeaf2676 100644 --- a/scheduler/testspeed.c +++ b/scheduler/testspeed.c @@ -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)); /* diff --git a/scheduler/testsub.c b/scheduler/testsub.c index 92f678855..8726774cb 100644 --- a/scheduler/testsub.c +++ b/scheduler/testsub.c @@ -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)); /* diff --git a/systemv/Dependencies b/systemv/Dependencies index a7aa88c31..f40f77b87 100644 --- a/systemv/Dependencies +++ b/systemv/Dependencies @@ -3,106 +3,111 @@ 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 diff --git a/systemv/Makefile b/systemv/Makefile index ae5f5a063..e8df3deaf 100644 --- a/systemv/Makefile +++ b/systemv/Makefile @@ -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 $@... diff --git a/systemv/cupsaddsmb.c b/systemv/cupsaddsmb.c index 18dc8df25..946c62080 100644 --- a/systemv/cupsaddsmb.c +++ b/systemv/cupsaddsmb.c @@ -45,7 +45,7 @@ const char *SAMBAUser, */ int export_dest(http_t *http, const char *dest); -void usage(void); +void usage(void) __attribute__((noreturn)); /* diff --git a/systemv/cupsctl.c b/systemv/cupsctl.c index eabc6e479..e53a71477 100644 --- a/systemv/cupsctl.c +++ b/systemv/cupsctl.c @@ -32,7 +32,7 @@ * Local functions... */ -static void usage(const char *opt); +static void usage(const char *opt) __attribute__((noreturn)); /* diff --git a/systemv/cupstestdsc.c b/systemv/cupstestdsc.c index 6944b42c5..5ec01aee7 100644 --- a/systemv/cupstestdsc.c +++ b/systemv/cupstestdsc.c @@ -35,7 +35,7 @@ */ static int check_file(const char *filename); -static void usage(void); +static void usage(void) __attribute__((noreturn)); /* diff --git a/systemv/cupstestppd.c b/systemv/cupstestppd.c index 3dfa7bf5f..3765f4754 100644 --- a/systemv/cupstestppd.c +++ b/systemv/cupstestppd.c @@ -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 ++; diff --git a/systemv/lpoptions.c b/systemv/lpoptions.c index 0d81312d3..06a1762c6 100644 --- a/systemv/lpoptions.c +++ b/systemv/lpoptions.c @@ -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)); /* diff --git a/systemv/lppasswd.c b/systemv/lppasswd.c index 7baa53a93..b9962ecfc 100644 --- a/systemv/lppasswd.c +++ b/systemv/lppasswd.c @@ -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]")); diff --git a/test/Dependencies b/test/Dependencies index 1c2966362..32891447e 100644 --- a/test/Dependencies +++ b/test/Dependencies @@ -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 diff --git a/test/ippserver.c b/test/ippserver.c index 0a8495962..cf73f9039 100644 --- a/test/ippserver.c +++ b/test/ippserver.c @@ -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); diff --git a/test/ipptool.c b/test/ipptool.c index 5fdcd09a7..ef3d86c76 100644 --- a/test/ipptool.c +++ b/test/ipptool.c @@ -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 #include #include +#include #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); } diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh index fa943fc95..85aa9ce32 100755 --- a/test/run-stp-tests.sh +++ b/test/run-stp-tests.sh @@ -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 -- 2.39.2