From: msweet Date: Thu, 27 Jun 2013 18:36:13 +0000 (+0000) Subject: Fix a state transition issue that affected ippserver. X-Git-Tag: release-1.7rc1~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ad29aeab8c30ab40295af8e7d39753b5c9f374df;p=thirdparty%2Fcups.git Fix a state transition issue that affected ippserver. Fix a crasher for handling of sides in ippserver. git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11074 a1ca3aef-8c08-0410-bb20-df032aa958be --- diff --git a/cups/http.c b/cups/http.c index 8ac7674012..d893bf7ed4 100644 --- a/cups/http.c +++ b/cups/http.c @@ -3730,6 +3730,8 @@ httpWrite2(http_t *http, /* I - Connection to server */ if (http->state == HTTP_STATE_POST_RECV) http->state ++; + else if (http->state == HTTP_STATE_POST_SEND) + http->state = HTTP_STATE_WAITING; else http->state = HTTP_STATE_STATUS; diff --git a/doc/help/man-client.conf.html b/doc/help/man-client.conf.html index ee9324460d..dfcac80f6e 100644 --- a/doc/help/man-client.conf.html +++ b/doc/help/man-client.conf.html @@ -11,7 +11,7 @@ client.conf - client configuration file for cups

Description

The client.conf file configures the CUPS client and is -normally located in the /etc/cups or ~/.cups +normally located in the /private/etc/cups or ~/.cups directory. Each line in the file can be a configuration directive, a blank line, or a comment. Comment lines start with the # character. diff --git a/doc/help/man-cups-deviced.html b/doc/help/man-cups-deviced.html index 1940f642d2..a64b7a7077 100644 --- a/doc/help/man-cups-deviced.html +++ b/doc/help/man-cups-deviced.html @@ -14,7 +14,7 @@ cups-deviced - cups device daemon request-id limit user-id options

Description

cups-deviced polls the backends in -/usr/lib/cups/backend for a list of available devices. +/usr/libexec/cups/backend for a list of available devices. It is run by cupsd(8) in response to a CUPS-Get-Devices request. The output format is an IPP response message. The request-id argument is the request ID diff --git a/doc/help/man-cups-driverd.html b/doc/help/man-cups-driverd.html index e161435b6f..1fe8572722 100644 --- a/doc/help/man-cups-driverd.html +++ b/doc/help/man-cups-driverd.html @@ -36,7 +36,7 @@ accordingly.

Drivers

Drivers can be static PPD files under the /usr/share/cups/model directory or programs under the -/usr/lib/cups/driver directory. Static PPD files must +/usr/libexec/cups/driver directory. Static PPD files must conform to the Adobe PPD File Format Specification version 4.3 and may be compressed using the gzip(1) program. Driver programs must implement the command-line interface shown in the diff --git a/doc/help/man-cups-files.conf.html b/doc/help/man-cups-files.conf.html index 8c3a610fd4..2d686e9e2c 100644 --- a/doc/help/man-cups-files.conf.html +++ b/doc/help/man-cups-files.conf.html @@ -12,7 +12,7 @@ cups-files.conf - file and directory configuration file for cups

Description

The cups-files.conf file configures the files and directories used by the CUPS scheduler, cupsd(8). It is normally located in the -/etc/cups directory. +/private/etc/cups directory.

Each line in the file can be a configuration directive, a blank line, or a comment. Comment lines start with the # character.

Directives

diff --git a/doc/help/man-cups-lpd.html b/doc/help/man-cups-lpd.html index fc891605ab..69f098db4b 100644 --- a/doc/help/man-cups-lpd.html +++ b/doc/help/man-cups-lpd.html @@ -27,7 +27,7 @@ add the following line to the inetd.conf file to enable the
 
-    printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd \
+    printer stream tcp nowait lp /usr/libexec/cups/daemon/cups-lpd cups-lpd \
         -o document-format=application/octet-stream
 

Note: If you are using Solaris 10 or higher, you must run @@ -46,7 +46,7 @@ named /etc/xinetd.d/cups containing the following lines: user = lp group = sys passenv = - server = /usr/lib/cups/daemon/cups-lpd + server = /usr/libexec/cups/daemon/cups-lpd server_args = -o document-format=application/octet-stream } diff --git a/doc/help/man-cups-snmp.html b/doc/help/man-cups-snmp.html index 9b80a8f7f9..c354a6206b 100644 --- a/doc/help/man-cups-snmp.html +++ b/doc/help/man-cups-snmp.html @@ -10,7 +10,7 @@

Name

snmp - cups snmp backend

Synopsis

-/usr/lib/cups/backend/snmp +/usr/libexec/cups/backend/snmp ip-address-or-hostname
lpinfo -v --include-schemes snmp @@ -34,7 +34,7 @@ The CUPS SNMP backend uses the information from the Host, Printer, and Port Monitor MIBs along with some vendor private MIBs and intelligent port probes to determine the correct device URI and make and model for each printer.

Configuration

-The SNMP backend reads the /etc/cups/snmp.conf configuration file, if +The SNMP backend reads the /private/etc/cups/snmp.conf configuration file, if present, to set the default broadcast address, community name, and logging level. The configuration file is documented in cups-snmp.conf(5). The DebugLevel value can be overridden using the CUPS_DEBUG_LEVEL environment diff --git a/doc/help/man-cupsd.conf.html b/doc/help/man-cupsd.conf.html index 995fda2dcf..032b8db872 100644 --- a/doc/help/man-cupsd.conf.html +++ b/doc/help/man-cupsd.conf.html @@ -11,7 +11,7 @@ cupsd.conf - server configuration file for cups

Description

The cupsd.conf file configures the CUPS scheduler, cupsd(8). It -is normally located in the /etc/cups directory. Note: +is normally located in the /private/etc/cups directory. Note: File, directory, and user configuration directives that used to be allowed in the cupsd.conf file are now stored in the cups-files.conf(5) instead in order to prevent certain types of privilege escalation attacks. diff --git a/doc/help/man-cupsd.html b/doc/help/man-cupsd.html index b292cba208..6df5475fc5 100644 --- a/doc/help/man-cupsd.html +++ b/doc/help/man-cupsd.html @@ -18,7 +18,7 @@ cupsd - cups scheduler cupsd is the scheduler for CUPS. It implements a printing system based upon the Internet Printing Protocol, version 2.1. If no options are specified on the command-line then the default configuration file -/etc/cups/cupsd.conf will be used. +/private/etc/cups/cupsd.conf will be used.

Options

-c config-file diff --git a/doc/help/man-lpoptions.html b/doc/help/man-lpoptions.html index c5c2fa7ca7..c342652cc0 100644 --- a/doc/help/man-lpoptions.html +++ b/doc/help/man-lpoptions.html @@ -118,14 +118,14 @@ standard output.

Root Account Options

When run by the root user, lpoptions gets and sets default options and instances for all users in the -/etc/cups/lpoptions file. +/private/etc/cups/lpoptions file.

Compatibility

The lpoptions command is unique to CUPS.

Files

~/.cups/lpoptions - user defaults and instances created by non-root users.
-/etc/cups/lpoptions - system-wide defaults and instances +/private/etc/cups/lpoptions - system-wide defaults and instances created by the root user.

See Also

cancel(1), lp(1), lpadmin(8), lpr(1), diff --git a/test/ippserver.c b/test/ippserver.c index 1b5e652c6a..4050d54493 100644 --- a/test/ippserver.c +++ b/test/ippserver.c @@ -5166,29 +5166,26 @@ valid_job_attributes( if ((attr = ippFindAttribute(client->request, "sides", IPP_TAG_ZERO)) != NULL) { + const char *sides = NULL; /* "sides" value... */ + if (ippGetCount(attr) != 1 || ippGetValueTag(attr) != IPP_TAG_KEYWORD) { respond_unsupported(client, attr); valid = 0; } - if ((supported = ippFindAttribute(client->printer->attrs, "sides", + sides = ippGetString(attr, 0, NULL); + + if ((supported = ippFindAttribute(client->printer->attrs, "sides-supported", IPP_TAG_KEYWORD)) != NULL) { - int count = ippGetCount(supported); - const char *sides = ippGetString(attr, 0, NULL); - - for (i = 0; i < count; i ++) - if (!strcmp(sides, ippGetString(supported, i, NULL))) - break; - - if (i >= count) + if (!ippContainsString(supported, sides)) { respond_unsupported(client, attr); valid = 0; } } - else + else if (strcmp(sides, "one-sided")) { respond_unsupported(client, attr); valid = 0;