Copyright (c) 2003, Sun Microsystems, Inc.
All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
/usr/apache/libexec/mod_ipp.so
The mod_ipp module implements RFCs 2910 and 2911 to provide an IPP handling service for the Apache HTTP server. When loaded on the Apache server, mod_ipp processes all HTTP requests with MIME types of application/ipp. The mod_ipp module also processes additional configuration directives to enable or disable portions of the protocol support.
The following is a list of configuration directives that apply to the Apache IPP Listening service:
ipp-conformance (automatic|1.0|1.1)
ipp-operation (operation) (enable|disable)
enable|disable The values true, yes, on, enable are considered to be synonymous and will enable support for the named operation. All other values will disable support for the named operation.
The following is a list of IPP handling service operations: print-job
This operation is a required IPP operation that allows client systems to submit a print job with a single document embedded in the data stream. This operation is primarily used from the IPP support Microsoft has provided for its Windows (9X/ME/NT/2K/XP).
This is an optional IPP operation that allows client systems to submit a print job with a reference (URL) for a single document. This operation is currently not supported by the mod_ipp Apache Module.
This is a required IPP operation that allows client systems to simulate the submission of a print job to verify that the server is capable of handling the job. This operation is supported by mod_ipp.
This is an optional IPP operation that allows client systems to submit a print job. The operation is used with the send-document and send-uri operations.
This is a required IPP operation that allows client systems to retrieve a list of print jobs from the print service.
This is a required IPP operation that allows client systems to retrieve attributes from the print service that describes the named printer object.
This an optional IPP operation that allows client systems to stop job processing on the named print queue.
This is an optional IPP operation that allows client systems to resume job processing on the named print queue.
This is an optional IPP operation that allows client systems to cancel all print jobs on the named print queue.
This is a required IPP operation that allows client systems to add documents to print jobs created with the create-job operation, but not yet submitted.
This is an optional IPP operation that allows a client system to add a document reference (URI) to a print job created with the create-job operation, but not yet submitted. This operation is currently not supported by the mod_ipp Apache Module.
This is a required IPP operation that allows client systems to cancel print jobs.
This is a required IPP operation that allows client systems to retrieve attributes that describe a print job from the print service.
This is an optional IPP operation that allows client systems to hold print jobs.
This is an optional IPP operation that allows client systems to release print jobs.
This is an optional IPP operation that allows client systems to restart print jobs.
This is a place holder for enabling or disabling support for all IPP operations implemented by the mod_ipp Apache module.
This is a place holder for enabling or disabling support for the required IPP operations implemented by the mod_ipp Apache module.
Example 1 Using a Configuration File to Start a Standalone Apache Server
The following configuration file can be used to start a standalone Apache server to respond to IPP request sent to port 631.
ServerType standalone ServerRoot "/usr/apache" PidFile /var/run/httpd-standalone-ipp.pid ErrorLog /var/lp/logs/ipp-errors Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 MinSpareServers 1 MaxSpareServers 3 StartServers 1 MaxClients 150 MaxRequestsPerChild 0 LoadModule ipp_module libexec/mod_ipp.so ClearModuleList AddModule mod_ipp.c AddModule mod_so.c Port 631 User lp Group lp ServerAdmin lp@localhost DefaultType application/ipp <IFModule mod_app> <Location /> ipp-operation all on </Location> </IFModule mod_app>
A more restrictive configuration might include the following parameters:
<IFModule mod_app> <Location /> ipp-operation all offn ipp-operation required on </Location> </IFModule mod_app>
See attributes(5) or descriptions of the following attributes:
ATTRIBUTE TYPE ATTRIBUTE VALUE |
Interface Stability External |
man(1), catman(1M), attributes(5)
Herriot, R., Ed., Butler, S., Moore, P., Turner, R., Wenn, J. RFC 2910, Internet Printing Protocol/1.1: Encoding and Transport. Network Working Group. September 2000.
Hastings, T., Ed., Herriot, R., deBry, R., Isaacson, S., Powell, P. RFC 2911, Internet Printing Protocol/1.1: Model and Semantics. Network Working Group. September 2000.
http://www.apache.org
Configuration file directives are processed in the order listed in the config file. The default behavior is to enable support for all operations implemented in the mod_ipp Apache module.
Since the Apache IPP listening service implements some capabilities that are more of operator features, it may not be desirable to enable all IPP operations without requiring user authentication on the Apache listening service.
The following is an example of a more reasonable configuration for Apache IPP servers without user authentication enabled:
ipp-operations all disabled ipp-operations required enabled
The printers and jobs available under this service can be accessed using URIs of the following form:
printer: http://server[:port]/printers/{queue} ipp://server[:port]/printers/{queue} job: http://server[:port]/printers/{queue}/{job-id} ipp://server[:port]/printers/{queue}/{job-id}
631 is the default IPP port and implied when the URI scheme is ipp. However, some client implementations do not recognize the ipp URI scheme and require http://server:631/... instead. For example, Microsoft's IPP client implementation does not recognize the ipp scheme.
In addition to the documentation and man pages included with Solaris, more information is available at http://www.apache.org
The httpd(8) man page and other Apache man pages are provided with the programming modules. To view the Apache manual pages with the man command, add /usr/apache/man to the MANPATH environment variable. See man(1) for more information. Running catman(1M) on the Apache manual pages is not supported.