<body>
<div class='body'>
<!--
- "$Id$"
+ "$Id: api-httpipp.header 7258 2008-01-28 00:15:05Z mike $"
HTTP and IPP API header for CUPS.
</ul></li>
</ul>
<!--
- "$Id$"
+ "$Id: api-httpipp.shtml 7684 2008-06-23 16:47:38Z mike $"
HTTP and IPP API introduction for CUPS.
after <a href="#cupsStartDocument"><code>cupsStartDocument</code></a> to provide a document file.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="httpAcceptConnection">httpAcceptConnection</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpAcceptConnection">httpAcceptConnection</a></h3>
<p class="description">Accept a new HTTP client connection from the
specified listening socket.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Length in bytes</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="httpAddrListen">httpAddrListen</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpAddrListen">httpAddrListen</a></h3>
<p class="description">Create a listening socket bound to the specified
address and port.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Host name</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="httpAddrPort">httpAddrPort</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpAddrPort">httpAddrPort</a></h3>
<p class="description">Get the port number associated with an address.</p>
<p class="code">
int httpAddrPort (<br>
you need to create a URI string.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="httpAssembleUUID">httpAssembleUUID</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpAssembleUUID">httpAssembleUUID</a></h3>
<p class="description">Assemble a name-based UUID URN conforming to RFC 4122.</p>
<p class="code">
char *httpAssembleUUID (<br>
<p class="discussion">This function is deprecated - use <a href="#httpConnect2"><code>httpConnect2</code></a> instead.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="httpConnect2">httpConnect2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpConnect2">httpConnect2</a></h3>
<p class="description">Connect to a HTTP server.</p>
<p class="code">
<a href="#http_t">http_t</a> *httpConnect2 (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 if blocking, 0 if non-blocking</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="httpGetContentEncoding">httpGetContentEncoding</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpGetContentEncoding">httpGetContentEncoding</a></h3>
<p class="description">Get a common content encoding, if any, between
the client and server.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">UNIX time</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="httpGetExpect">httpGetExpect</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpGetExpect">httpGetExpect</a></h3>
<p class="description">Get the value of the Expect header, if any.</p>
<p class="code">
http_status_t httpGetExpect (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Status of call (0 = success)</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="httpPeek">httpPeek</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpPeek">httpPeek</a></h3>
<p class="description">Peek at data from a HTTP connection.</p>
<p class="code">
ssize_t httpPeek (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of bytes read</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="httpReadRequest">httpReadRequest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpReadRequest">httpReadRequest</a></h3>
<p class="description">Read a HTTP request from a connection.</p>
<p class="code">
<a href="#http_state_t">http_state_t</a> httpReadRequest (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Status of call (0 = success)</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="httpSetDefaultField">httpSetDefaultField</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpSetDefaultField">httpSetDefaultField</a></h3>
<p class="description">Set the default value of an HTTP header.</p>
<p class="code">
void httpSetDefaultField (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of bytes written</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="httpWriteResponse">httpWriteResponse</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpWriteResponse">httpWriteResponse</a></h3>
<p class="description">Write a HTTP response to a client connection.</p>
<p class="code">
int httpWriteResponse (<br>
<br>
The <code>language</code> parameter must be non-<code>NULL</code> for nameWithLanguage and
textWithLanguage string values and must be <code>NULL</code> for all other string values.</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="ippAddStringf">ippAddStringf</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippAddStringf">ippAddStringf</a></h3>
<p class="description">Add a formatted string to an IPP message.</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddStringf (<br>
the corresponding value type.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="ippAddStringfv">ippAddStringfv</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippAddStringfv">ippAddStringfv</a></h3>
<p class="description">Add a formatted string to an IPP message.</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddStringfv (<br>
just like (v)snprintf.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="ippContainsInteger">ippContainsInteger</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippContainsInteger">ippContainsInteger</a></h3>
<p class="description">Determine whether an attribute contains the
specified value or is within the list of ranges.</p>
<p class="code">
the attribute.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="ippContainsString">ippContainsString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippContainsString">ippContainsString</a></h3>
<p class="description">Determine whether an attribute contains the
specified string value.</p>
<p class="code">
itself.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="ippCreateRequestedArray">ippCreateRequestedArray</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippCreateRequestedArray">ippCreateRequestedArray</a></h3>
<p class="description">Create a CUPS array of attribute names from the
given requested-attributes attribute.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Attribute name or <code>NULL</code> for separators</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="ippGetOctetString">ippGetOctetString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippGetOctetString">ippGetOctetString</a></h3>
<p class="description">Get an octetString value from an IPP attribute.</p>
<p class="code">
void *ippGetOctetString (<br>
attributes-natural-language value is derived from the current locale.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="ippNewResponse">ippNewResponse</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippNewResponse">ippNewResponse</a></h3>
<p class="description">Allocate a new IPP response message.</p>
<p class="code">
<a href="#ipp_t">ipp_t</a> *ippNewResponse (<br>
The <code>attr</code> parameter may be modified as a result of setting the value.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="ippSetOctetString">ippSetOctetString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippSetOctetString">ippSetOctetString</a></h3>
<p class="description">Set an octetString value in an IPP attribute.</p>
<p class="code">
int ippSetOctetString (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="ippSetStringf">ippSetStringf</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippSetStringf">ippSetStringf</a></h3>
<p class="description">Set a formatted string value of an attribute.</p>
<p class="code">
int ippSetStringf (<br>
the corresponding value type.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="ippSetStringfv">ippSetStringfv</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippSetStringfv">ippSetStringfv</a></h3>
<p class="description">Set a formatted string value of an attribute.</p>
<p class="code">
int ippSetStringfv (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">RFC-1903 date/time data</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="ippValidateAttribute">ippValidateAttribute</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippValidateAttribute">ippValidateAttribute</a></h3>
<p class="description">Validate the contents of an attribute.</p>
<p class="code">
int ippValidateAttribute (<br>
failure, cupsLastErrorString() is set to a human-readable message.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7 </span><a name="ippValidateAttributes">ippValidateAttributes</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippValidateAttributes">ippValidateAttributes</a></h3>
<p class="description">Validate all attributes in an IPP message.</p>
<p class="code">
int ippValidateAttributes (<br>
<p class="description">HTTP field names</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>HTTP_FIELD_ACCEPT_ENCODING <span class="info"> CUPS 1.7 </span></dt>
+<dt>HTTP_FIELD_ACCEPT_ENCODING <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
<dd class="description">Accepting-Encoding field </dd>
<dt>HTTP_FIELD_ACCEPT_LANGUAGE </dt>
<dd class="description">Accept-Language field</dd>
<dt>HTTP_FIELD_ACCEPT_RANGES </dt>
<dd class="description">Accept-Ranges field</dd>
-<dt>HTTP_FIELD_ALLOW <span class="info"> CUPS 1.7 </span></dt>
+<dt>HTTP_FIELD_ALLOW <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
<dd class="description">Allow field </dd>
<dt>HTTP_FIELD_AUTHORIZATION </dt>
<dd class="description">Authorization field</dd>
<dd class="description">Referer field</dd>
<dt>HTTP_FIELD_RETRY_AFTER </dt>
<dd class="description">Retry-After field</dd>
-<dt>HTTP_FIELD_SERVER <span class="info"> CUPS 1.7 </span></dt>
+<dt>HTTP_FIELD_SERVER <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
<dd class="description">Server field </dd>
<dt>HTTP_FIELD_TRANSFER_ENCODING </dt>
<dd class="description">Transfer-Encoding field</dd>
<dd class="description">Command complete, sending status</dd>
<dt>HTTP_STATE_TRACE </dt>
<dd class="description">TRACE command, waiting for blank line</dd>
-<dt>HTTP_STATE_UNKNOWN_METHOD <span class="info"> CUPS 1.7 </span></dt>
+<dt>HTTP_STATE_UNKNOWN_METHOD <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
<dd class="description">Unknown request method, waiting for blank line </dd>
-<dt>HTTP_STATE_UNKNOWN_VERSION <span class="info"> CUPS 1.7 </span></dt>
+<dt>HTTP_STATE_UNKNOWN_VERSION <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
<dd class="description">Unknown request method, waiting for blank line </dd>
<dt>HTTP_STATE_WAITING </dt>
<dd class="description">Waiting for command</dd>
<dd class="description">Document has moved temporarily</dd>
<dt>HTTP_STATUS_MULTIPLE_CHOICES </dt>
<dd class="description">Multiple files match request</dd>
-<dt>HTTP_STATUS_NONE <span class="info"> CUPS 1.7 </span></dt>
+<dt>HTTP_STATUS_NONE <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
<dd class="description">No Expect value </dd>
<dt>HTTP_STATUS_NOT_ACCEPTABLE </dt>
<dd class="description">Not Acceptable</dd>
<dd class="description">En/decode the query portion</dd>
<dt>HTTP_URI_CODING_RESOURCE </dt>
<dd class="description">En/decode the resource portion</dd>
+<dt>HTTP_URI_CODING_RFC6874 </dt>
+<dd class="description">Use RFC 6874 address format</dd>
<dt>HTTP_URI_CODING_USERNAME </dt>
<dd class="description">En/decode the username portion</dd>
</dl>
<dd class="description">Stitch along top edge</dd>
<dt>IPP_FINISHINGS_FOLD </dt>
<dd class="description">Fold (any type)</dd>
+<dt>IPP_FINISHINGS_FOLD_ACCORDIAN </dt>
+<dd class="description">Accordian-fold the paper vertically into four sections</dd>
+<dt>IPP_FINISHINGS_FOLD_DOUBLE_GATE </dt>
+<dd class="description">Fold the top and bottom quarters of the paper towards the midline, then fold in half vertically</dd>
+<dt>IPP_FINISHINGS_FOLD_GATE </dt>
+<dd class="description">Fold the top and bottom quarters of the paper towards the midline</dd>
+<dt>IPP_FINISHINGS_FOLD_HALF </dt>
+<dd class="description">Fold the paper in half vertically</dd>
+<dt>IPP_FINISHINGS_FOLD_HALF_Z </dt>
+<dd class="description">Fold the paper in half horizontally, then Z-fold the paper vertically</dd>
+<dt>IPP_FINISHINGS_FOLD_LEFT_GATE </dt>
+<dd class="description">Fold the top quarter of the paper towards the midline</dd>
+<dt>IPP_FINISHINGS_FOLD_LETTER </dt>
+<dd class="description">Fold the paper into three sections vertically; sometimes also known as a C fold</dd>
+<dt>IPP_FINISHINGS_FOLD_PARALLEL </dt>
+<dd class="description">Fold the paper in half vertically two times, yielding four sections</dd>
+<dt>IPP_FINISHINGS_FOLD_POSTER </dt>
+<dd class="description">Fold the paper in half horizontally and vertically; sometimes also called a cross fold</dd>
+<dt>IPP_FINISHINGS_FOLD_RIGHT_GATE </dt>
+<dd class="description">Fold the bottom quarter of the paper towards the midline</dd>
+<dt>IPP_FINISHINGS_FOLD_Z </dt>
+<dd class="description">Fold the paper vertically into three sections, forming a Z</dd>
<dt>IPP_FINISHINGS_JOG_OFFSET </dt>
<dd class="description">Offset for binding (any type)</dd>
<dt>IPP_FINISHINGS_NONE </dt>
<dd class="description">No finishing</dd>
<dt>IPP_FINISHINGS_PUNCH </dt>
<dd class="description">Punch (any location/count)</dd>
+<dt>IPP_FINISHINGS_PUNCH_BOTTOM_LEFT </dt>
+<dd class="description">Punch 1 hole bottom left</dd>
+<dt>IPP_FINISHINGS_PUNCH_BOTTOM_RIGHT </dt>
+<dd class="description">Punch 1 hole bottom right</dd>
+<dt>IPP_FINISHINGS_PUNCH_DUAL_BOTTOM </dt>
+<dd class="description">Punch 2 holes bottom edge</dd>
+<dt>IPP_FINISHINGS_PUNCH_DUAL_LEFT </dt>
+<dd class="description">Punch 2 holes left side</dd>
+<dt>IPP_FINISHINGS_PUNCH_DUAL_RIGHT </dt>
+<dd class="description">Punch 2 holes right side</dd>
+<dt>IPP_FINISHINGS_PUNCH_DUAL_TOP </dt>
+<dd class="description">Punch 2 holes top edge</dd>
+<dt>IPP_FINISHINGS_PUNCH_QUAD_BOTTOM </dt>
+<dd class="description">Punch 4 holes bottom edge</dd>
+<dt>IPP_FINISHINGS_PUNCH_QUAD_LEFT </dt>
+<dd class="description">Punch 4 holes left side</dd>
+<dt>IPP_FINISHINGS_PUNCH_QUAD_RIGHT </dt>
+<dd class="description">Punch 4 holes right side</dd>
+<dt>IPP_FINISHINGS_PUNCH_QUAD_TOP </dt>
+<dd class="description">Punch 4 holes top edge</dd>
+<dt>IPP_FINISHINGS_PUNCH_TOP_LEFT </dt>
+<dd class="description">Punch 1 hole top left</dd>
+<dt>IPP_FINISHINGS_PUNCH_TOP_RIGHT </dt>
+<dd class="description">Punch 1 hole top right</dd>
+<dt>IPP_FINISHINGS_PUNCH_TRIPLE_BOTTOM </dt>
+<dd class="description">Punch 3 holes bottom edge</dd>
+<dt>IPP_FINISHINGS_PUNCH_TRIPLE_LEFT </dt>
+<dd class="description">Punch 3 holes left side</dd>
+<dt>IPP_FINISHINGS_PUNCH_TRIPLE_RIGHT </dt>
+<dd class="description">Punch 3 holes right side</dd>
+<dt>IPP_FINISHINGS_PUNCH_TRIPLE_TOP </dt>
+<dd class="description">Punch 3 holes top edge</dd>
<dt>IPP_FINISHINGS_SADDLE_STITCH </dt>
<dd class="description">Staple interior</dd>
<dt>IPP_FINISHINGS_STAPLE </dt>
<dd class="description">Get subscription attributes </dd>
<dt>IPP_OP_HOLD_JOB </dt>
<dd class="description">Hold a job for printing</dd>
-<dt>IPP_OP_IDENTIFY_PRINTER </dt>
-<dd class="description">Identify-Printer (proposed IPP JPS3)</dd>
<dt>IPP_OP_PAUSE_PRINTER </dt>
<dd class="description">Stop a printer</dd>
<dt>IPP_OP_PRINT_JOB </dt>
<dd class="description">Add a file to a job</dd>
<dt>IPP_OP_SET_JOB_ATTRIBUTES </dt>
<dd class="description">Set job attributes</dd>
-<dt>IPP_OP_VALIDATE_DOCUMENT </dt>
-<dd class="description">Validate-Document (proposed IPP JPS3)</dd>
<dt>IPP_OP_VALIDATE_JOB </dt>
<dd class="description">Validate job options</dd>
</dl>
<dd class="description">client-error-compression-not-supported</dd>
<dt>IPP_STATUS_ERROR_CONFLICTING </dt>
<dd class="description">client-error-conflicting-attributes</dd>
-<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED <span class="info"> CUPS 1.7 </span></dt>
+<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
<dd class="description">cups-error-account-authorization-failed </dd>
-<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED <span class="info"> CUPS 1.7 </span></dt>
+<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
<dd class="description">cups-error-account-closed </dd>
-<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED <span class="info"> CUPS 1.7 </span></dt>
+<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
<dd class="description">cups-error-account-info-needed </dd>
-<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED <span class="info"> CUPS 1.7 </span></dt>
+<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
<dd class="description">cups-error-account-limit-reached </dd>
<dt>IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED <span class="info"> CUPS 1.5/OS X 10.7 </span></dt>
<dd class="description">cups-authentication-canceled - Authentication canceled by user </dd>