IPP Server-Side Support
The IPP listening service provides an IPP network protocol service that enables print
client systems a means of interacting with a print service on the system
that is running the listener. This listener implements server-side IPP protocol support that
includes a broad set of standard operations and attributes. The listener is implemented
in the Solaris OS as an Apache module and a series of shared
libraries that contain IPP operation and wire support. The IPP software stack is
installed when the Solaris OS is installed on the system. The IPP listening
service is an SMF service that depends on the print service to run.
As a result, IPP is automatically enabled on a print server when the
first print queue has been added . IPP is disabled when the
last print queue has been removed.
Server-side support for IPP starts with the IPP module, mod_ipp. The listening service
uses the Apache web server because the Solaris OS already ships with Apache
software. The Apache module uses the Dynamic Shared Object (DSO) interface to plug
in under the web server. Using the DSO interface, the module includes configuration
support for the IPP Listening service and an entry point for the web
server to hand the listener the HTTP connection. This modular approach enables the
IPP support to reuse Apache delivered encryption and authentication mechanisms
Configuration of IPP Server-Side Data
The IPP listening service configuration file, /etc/apache/httpd-standalone-ipp.conf, is like any normal Apache
1.3 configuration file. The configuration files takes any Apache 1.3 configuration directives that
you want to use.
The default configuration includes the following features:
The default operations that are enabled for /printers/ is limited to a set
of operations that poses less of a security risk. However, all operations are
enabled at the /admin/path (ipp://server/admin/), with basic authentication required.
The mod_ipp Apache configuration options to choose from are described in the following
table:
Table A-2 mod_ipp Apache Module Configuration Options:
Value |
Description |
ipp-conformance |
Selects level of protocol checking. The default is automatic, which provides maximal client
interaction. |
ipp-operation |
Enables you to selectively enable or disable IPP operation support for one more
IPP operations. |
ipp-default-user |
Selects the user name to use when contacting the local print
service. The default is the lp print user, which enables more functional proxying. |
ip-default-service |
Selects
the default print service to direct requests to. The default is the
lpsched daemon and currently only has been tested against lpsched. |
The following table shows the conformance checking types for the Apache Web Server
Configuration. The syntax to use is:
ipp-conformance value
Table A-3 Apache Web Server Conformance Checking Types
Value |
Meaning |
Automatic |
Only check that the requested operation is
supported by the protocol listener. (default) |
1.0 |
Check that the request conforms to IPP/1.0. |
1.1 |
Check
that the request conforms to IPP/1.1. |
The following is an annotated example of an apache configuration file:
if mod_ipp is loaded User lp run as "lp"
URI: ipp://{host]/printers/{queue}
SetHandler application/ipp use mod_ipp for this location
ipp-conformance strict enable strict protocol checking (default)
ipp-operation all enable enable all supported operations
IPP Operation Keywords
IPP objects support operations. An operation consists of a request and a response.
When a print client communicates with an IPP object, the client issues an
operation request to the URI for that object. Operation requests and responses have
parameters that identify the operation. Operations also have attributes that affect the run
time characteristics of the operation. These operation-specific attributes are defined as operation attributes.
Print requests contain operation attributes, object attributes, and the required document data to perform
the specific operation. Each request requires a response from the object. Each response
indicates success or failure of the operation with a corresponding status code as
a response parameter. Responses contain operation attributes, object attributes, and status messages that
are generated during the operation request.
The following table describes the IPP operation keywords for the Apache Web Server
Configuration.
Table A-4 IPP Operation Keywords
Value |
Meaning |
All |
This keyword is used in place of an operation. The keyword is
meant to signify that all operations that are supported by mod_ipp are selected. |
Required |
This keyword
is used in place of an operation. The keyword is meant to signify
that all the required operations, as defined in RFC-2911, are selected, including the
following: print-job, cancel-job, get-job-attributes, get-jobs, and get-printer-attributes. |
Print-job |
A client wants to submit
a print job with only a single document. The document data is sent
with the request. |
Print-uri |
Unsupported |
Validate-job |
A client wants to validate that a print job
can be handled by the scheduler before submitting a print job. |
Create-job |
A client wants
to submit a print job with multiple documents. The documents are sent with
the send-document and send-uri operations. |
Send-document |
A client wants to add a document to
a print job that is created with the print-job operation. The document data
is sent with the request. |
Send-uri |
Unsupported |
Cancel-job |
A client wants to cancel a print job. |
Get-job-attributes |
A client wants to gather information about a print job. |
Get-jobs |
A client
wants to gather a list of print jobs in a particular print queue. |
Get-printer-attributes |
A client wants to gather information about a particular print queue. |
Hold-job |
A
client wants to hold a particular print job. |
Release-job |
A client wants to release
a particular print job. |
Restart-job |
A client wants to restart a particular print |
Pause-printer |
A
client wants to pause (disable) a particular print queue. This operation will stop
the processing of print requests in the queue. Note that the operation does
not stop the queue from accepting jobs. |
Resume-printer |
A client wants to resume (enable)
processing of jobs in a particular print queue. |
Purge-jobs |
A client wants to remove all
jobs from a particular print queue. |
Set-printer-attributes |
Create or modify attributes of a printer. |
Set-job-attributes |
Modify
attributes of an existing print job. |
Enable-printer |
Resume (accept) queueing of print jobs. |
Disable-printer |
Disable (reject)
queueing of print jobs. |
cups-get-default |
Retrieve the default destination for a print service. |
cups-get-printers |
Enumerate all
printers available from the print service. |
cups-get-classes |
Enumerate all classes available from the print
service. |
cups-accept-jobs |
CUPS specific equivalent of Enable-printer. |
cups-reject-jobs |
CUPS specific equivalent of Disable-printer. |
cups-move-jobs |
Move jobs between queues
in the same print service. |