<li><a href="#cupsDoRequest" title="Do an IPP request.">cupsDoRequest</a></li>
<li><a href="#cupsEncodeOptions" title="Encode printer options into IPP attributes.">cupsEncodeOptions</a></li>
<li><a href="#cupsEncodeOptions2" title="Encode printer options into IPP attributes for a group.">cupsEncodeOptions2</a></li>
+<li><a href="#cupsGetDevices" title="Get available printer devices.">cupsGetDevices</a></li>
+<li><a href="#cupsGetFd" title="Get a file from the server.">cupsGetFd</a></li>
+<li><a href="#cupsGetFile" title="Get a file from the server.">cupsGetFile</a></li>
<li><a href="#cupsGetResponse" title="Get a response to an IPP request.">cupsGetResponse</a></li>
+<li><a href="#cupsPutFd" title="Put a file on the server.">cupsPutFd</a></li>
+<li><a href="#cupsPutFile" title="Put a file on the server.">cupsPutFile</a></li>
<li><a href="#cupsReadResponseData" title="Read additional data after the IPP response.">cupsReadResponseData</a></li>
<li><a href="#cupsSendRequest" title="Send an IPP request.">cupsSendRequest</a></li>
<li><a href="#cupsWriteRequestData" title="Write additional data after an IPP request.">cupsWriteRequestData</a></li>
<li><a href="#ippReadFile" title="Read data for an IPP message from a file.">ippReadFile</a></li>
<li><a href="#ippReadIO" title="Read data for an IPP message.">ippReadIO</a></li>
<li><a href="#ippSetPort" title="Set the default port number.">ippSetPort</a></li>
+<li><a href="#ippTagString" title="Return the tag name corresponding to a tag value.">ippTagString</a></li>
+<li><a href="#ippTagValue" title="Return the tag value corresponding to a tag name.">ippTagValue</a></li>
<li><a href="#ippTimeToDate" title="Convert from UNIX time to RFC 1903 format.">ippTimeToDate</a></li>
<li><a href="#ippWrite" title="Write data for an IPP message to a HTTP connection.">ippWrite</a></li>
<li><a href="#ippWriteFile" title="Write data for an IPP message to a file.">ippWriteFile</a></li>
<li><a href="#http_auth_t" title="HTTP authentication types">http_auth_t</a></li>
<li><a href="#http_encoding_t" title="HTTP transfer encoding values">http_encoding_t</a></li>
<li><a href="#http_encryption_t" title="HTTP encryption values">http_encryption_t</a></li>
+ <li><a href="#http_field_t" title="HTTP field names">http_field_t</a></li>
+ <li><a href="#http_keepalive_t" title="Types and structures...">http_keepalive_t</a></li>
+ <li><a href="#http_status_t" title="HTTP status codes">http_status_t</a></li>
<li><a href="#http_t" title="HTTP connection type">http_t</a></li>
+ <li><a href="#http_uri_coding_t" title="HTTP version numbers">http_uri_coding_t</a></li>
+ <li><a href="#http_uri_status_t" title="URI en/decode flags">http_uri_status_t</a></li>
+ <li><a href="#http_version_t" title="Socket address union, which
+makes using IPv6 and other
+address types easier and
+more portable. ">http_version_t</a></li>
<li><a href="#ipp_attribute_t" title="Attribute">ipp_attribute_t</a></li>
+ <li><a href="#ipp_finish_t" title="Orientation...">ipp_finish_t</a></li>
<li><a href="#ipp_iocb_t" title="IPP IO Callback Function ">ipp_iocb_t</a></li>
+ <li><a href="#ipp_jstate_t" title="Printer States....">ipp_jstate_t</a></li>
+ <li><a href="#ipp_op_t" title="Old names for the operations">ipp_op_t</a></li>
+ <li><a href="#ipp_orient_t" title="Qualities...">ipp_orient_t</a></li>
+ <li><a href="#ipp_pstate_t" title="IPP states...">ipp_pstate_t</a></li>
+ <li><a href="#ipp_quality_t" title="Job States....">ipp_quality_t</a></li>
<li><a href="#ipp_request_t" title="Request Header">ipp_request_t</a></li>
+ <li><a href="#ipp_res_t" title="Types and structures...">ipp_res_t</a></li>
+ <li><a href="#ipp_state_t" title="IPP operations...">ipp_state_t</a></li>
<li><a href="#ipp_t" title="Attribute Value">ipp_t</a></li>
<li><a href="#ipp_uchar_t" title="IPP status codes...">ipp_uchar_t</a></li>
+ <li><a href="#ipp_tag_t" title="Format tags for attributes...">ipp_tag_t</a></li>
<li><a href="#ipp_value_t" title="New in CUPS 1.1.19">ipp_value_t</a></li>
</ul></li>
<li><a href="#STRUCTURES">Structures</a><ul class="code">
</ul></li>
</ul>
<!--
- "$Id: api-httpipp.shtml 7258 2008-01-28 00:15:05Z mike $"
+ "$Id: api-httpipp.shtml 7684 2008-06-23 16:47:38Z mike $"
HTTP and IPP API introduction for the Common UNIX Printing System (CUPS).
/* Loop for authentication */
do
{
- status = a href='#cupsSendRequest'>cupsSendRequest</a>(CUPS_HTTP_DEFAULT, request, "/");
+ status = <a href='#cupsSendRequest'>cupsSendRequest</a>(CUPS_HTTP_DEFAULT, request, "/");
if (status == HTTP_UNAUTHORIZED)
{
<a href="#ipp_t">ipp_t</a> *ipp,<br>
int num_options,<br>
cups_option_t *options,<br>
- ipp_tag_t group_tag<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group_tag<br>
);</p>
<h4 class="parameters">Parameters</h4>
<dl>
function multiple times for each group, or use cupsEncodeOptions()
to add the standard groups.
+</p>
+<h3 class="function"><span class="info"> CUPS 1.4 </span><a name="cupsGetDevices">cupsGetDevices</a></h3>
+<p class="description">Get available printer devices.</p>
+<p class="code">
+ipp_status_t cupsGetDevices (<br>
+ <a href="#http_t">http_t</a> *http,<br>
+ int timeout,<br>
+ const char *exclude_schemes,<br>
+ cups_device_cb_t callback,<br>
+ void *user_data<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>http</dt>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dt>timeout</dt>
+<dd class="description">Timeout in seconds or <code>CUPS_TIMEOUT_DEFAULT</code></dd>
+<dt>exclude_schemes</dt>
+<dd class="description">Comma-separated URI schemes to exclude or <code>CUPS_EXCLUDE_NONE</code></dd>
+<dt>callback</dt>
+<dd class="description">Callback function</dd>
+<dt>user_data</dt>
+<dd class="description">User data pointer</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">Request status - <code>IPP_OK</code> on success.</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function sends a CUPS-Get-Devices request and streams the discovered
+devices to the specified callback function. The "timeout" parameter controls
+how long the request lasts, while the "exclude_schemes" parameter provides
+a comma-delimited list of backends to omit from the request.
+
+</p>
+<h3 class="function"><span class="info"> CUPS 1.1.20 </span><a name="cupsGetFd">cupsGetFd</a></h3>
+<p class="description">Get a file from the server.</p>
+<p class="code">
+<a href="#http_status_t">http_status_t</a> cupsGetFd (<br>
+ <a href="#http_t">http_t</a> *http,<br>
+ const char *resource,<br>
+ int fd<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>http</dt>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dt>resource</dt>
+<dd class="description">Resource name</dd>
+<dt>fd</dt>
+<dd class="description">File descriptor</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">HTTP status</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function returns <code>HTTP_OK</code> when the file is successfully retrieved.
+
+</p>
+<h3 class="function"><span class="info"> CUPS 1.1.20 </span><a name="cupsGetFile">cupsGetFile</a></h3>
+<p class="description">Get a file from the server.</p>
+<p class="code">
+<a href="#http_status_t">http_status_t</a> cupsGetFile (<br>
+ <a href="#http_t">http_t</a> *http,<br>
+ const char *resource,<br>
+ const char *filename<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>http</dt>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dt>resource</dt>
+<dd class="description">Resource name</dd>
+<dt>filename</dt>
+<dd class="description">Filename</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">HTTP status</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function returns <code>HTTP_OK</code> when the file is successfully retrieved.
+
</p>
<h3 class="function"><span class="info"> CUPS 1.4 </span><a name="cupsGetResponse">cupsGetResponse</a></h3>
<p class="description">Get a response to an IPP request.</p>
cupsSendDocument() or cupsSendRequest(). For requests that return
additional data, use httpRead() after getting a successful response.
+</p>
+<h3 class="function"><span class="info"> CUPS 1.1.20 </span><a name="cupsPutFd">cupsPutFd</a></h3>
+<p class="description">Put a file on the server.</p>
+<p class="code">
+<a href="#http_status_t">http_status_t</a> cupsPutFd (<br>
+ <a href="#http_t">http_t</a> *http,<br>
+ const char *resource,<br>
+ int fd<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>http</dt>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dt>resource</dt>
+<dd class="description">Resource name</dd>
+<dt>fd</dt>
+<dd class="description">File descriptor</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">HTTP status</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function returns <code>HTTP_CREATED</code> when the file is stored
+successfully.
+
+</p>
+<h3 class="function"><span class="info"> CUPS 1.1.20 </span><a name="cupsPutFile">cupsPutFile</a></h3>
+<p class="description">Put a file on the server.</p>
+<p class="code">
+<a href="#http_status_t">http_status_t</a> cupsPutFile (<br>
+ <a href="#http_t">http_t</a> *http,<br>
+ const char *resource,<br>
+ const char *filename<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>http</dt>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dt>resource</dt>
+<dd class="description">Resource name</dd>
+<dt>filename</dt>
+<dd class="description">Filename</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">HTTP status</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function returns <code>HTTP_CREATED</code> when the file is stored
+successfully.
+
</p>
<h3 class="function"><span class="info"> CUPS 1.4 </span><a name="cupsReadResponseData">cupsReadResponseData</a></h3>
<p class="description">Read additional data after the IPP response.</p>
<h3 class="function"><span class="info"> CUPS 1.4 </span><a name="cupsSendRequest">cupsSendRequest</a></h3>
<p class="description">Send an IPP request.</p>
<p class="code">
-http_status_t cupsSendRequest (<br>
+<a href="#http_status_t">http_status_t</a> cupsSendRequest (<br>
<a href="#http_t">http_t</a> *http,<br>
<a href="#ipp_t">ipp_t</a> *request,<br>
const char *resource,<br>
<dt>resource</dt>
<dd class="description">Resource path</dd>
<dt>length</dt>
-<dd class="description">Length of data to follow or CUPS_LENGTH_VARIABLE</dd>
+<dd class="description">Length of data to follow or <code>CUPS_LENGTH_VARIABLE</code></dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Initial HTTP status</p>
<h3 class="function"><span class="info"> CUPS 1.4 </span><a name="cupsWriteRequestData">cupsWriteRequestData</a></h3>
<p class="description">Write additional data after an IPP request.</p>
<p class="code">
-http_status_t cupsWriteRequestData (<br>
+<a href="#http_status_t">http_status_t</a> cupsWriteRequestData (<br>
<a href="#http_t">http_t</a> *http,<br>
const char *buffer,<br>
size_t length<br>
<p class="description">Assemble a uniform resource identifier from its
components.</p>
<p class="code">
-http_uri_status_t httpAssembleURI (<br>
- http_uri_coding_t encoding,<br>
+<a href="#http_uri_status_t">http_uri_status_t</a> httpAssembleURI (<br>
+ <a href="#http_uri_coding_t">http_uri_coding_t</a> encoding,<br>
char *uri,<br>
int urilen,<br>
const char *scheme,<br>
<p class="description">Assemble a uniform resource identifier from its
components with a formatted resource.</p>
<p class="code">
-http_uri_status_t httpAssembleURIf (<br>
- http_uri_coding_t encoding,<br>
+<a href="#http_uri_status_t">http_uri_status_t</a> httpAssembleURIf (<br>
+ <a href="#http_uri_coding_t">http_uri_coding_t</a> encoding,<br>
char *uri,<br>
int urilen,<br>
const char *scheme,<br>
<dt>http</dt>
<dd class="description">Connection to server</dd>
</dl>
-<h3 class="function"><a name="httpConnect">httpConnect</a></h3>
+<h3 class="function"><span class="info"> DEPRECATED </span><a name="httpConnect">httpConnect</a></h3>
<p class="description">Connect to a HTTP server.</p>
<p class="code">
<a href="#http_t">http_t</a> *httpConnect (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">New HTTP connection</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function is deprecated - use <a href="#httpConnectEncrypt"><code>httpConnectEncrypt</code></a> instead.
+
+</p>
<h3 class="function"><a name="httpConnectEncrypt">httpConnectEncrypt</a></h3>
<p class="description">Connect to a HTTP server using encryption.</p>
<p class="code">
<p class="code">
const char *httpGetField (<br>
<a href="#http_t">http_t</a> *http,<br>
- http_field_t field<br>
+ <a href="#http_field_t">http_field_t</a> field<br>
);</p>
<h4 class="parameters">Parameters</h4>
<dl>
<h3 class="function"><span class="info"> CUPS 1.2 </span><a name="httpGetStatus">httpGetStatus</a></h3>
<p class="description">Get the status of the last HTTP request.</p>
<p class="code">
-http_status_t httpGetStatus (<br>
+<a href="#http_status_t">http_status_t</a> httpGetStatus (<br>
<a href="#http_t">http_t</a> *http<br>
);</p>
<h4 class="parameters">Parameters</h4>
<p class="code">
char *httpGetSubField (<br>
<a href="#http_t">http_t</a> *http,<br>
- http_field_t field,<br>
+ <a href="#http_field_t">http_field_t</a> field,<br>
const char *name,<br>
char *value<br>
);</p>
<p class="code">
char *httpGetSubField2 (<br>
<a href="#http_t">http_t</a> *http,<br>
- http_field_t field,<br>
+ <a href="#http_field_t">http_field_t</a> field,<br>
const char *name,<br>
char *value,<br>
int valuelen<br>
<p class="description">Separate a Universal Resource Identifier into its
components.</p>
<p class="code">
-http_uri_status_t httpSeparateURI (<br>
- http_uri_coding_t decoding,<br>
+<a href="#http_uri_status_t">http_uri_status_t</a> httpSeparateURI (<br>
+ <a href="#http_uri_coding_t">http_uri_coding_t</a> decoding,<br>
const char *uri,<br>
char *scheme,<br>
int schemelen,<br>
<p class="code">
void httpSetExpect (<br>
<a href="#http_t">http_t</a> *http,<br>
- http_status_t expect<br>
+ <a href="#http_status_t">http_status_t</a> expect<br>
);</p>
<h4 class="parameters">Parameters</h4>
<dl>
<p class="code">
void httpSetField (<br>
<a href="#http_t">http_t</a> *http,<br>
- http_field_t field,<br>
+ <a href="#http_field_t">http_field_t</a> field,<br>
const char *value<br>
);</p>
<h4 class="parameters">Parameters</h4>
<p class="description">Return a short string describing a HTTP status code.</p>
<p class="code">
const char *httpStatus (<br>
- http_status_t status<br>
+ <a href="#http_status_t">http_status_t</a> status<br>
);</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dd class="description">HTTP status code</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
-<p class="description">String or NULL</p>
+<p class="description">Localized status string</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">The returned string is localized to the current POSIX locale and is based
+on the status strings defined in RFC 2616.</p>
<h3 class="function"><a name="httpTrace">httpTrace</a></h3>
<p class="description">Send an TRACE request to the server.</p>
<p class="code">
<h3 class="function"><a name="httpUpdate">httpUpdate</a></h3>
<p class="description">Update the current HTTP state for incoming data.</p>
<p class="code">
-http_status_t httpUpdate (<br>
+<a href="#http_status_t">http_status_t</a> httpUpdate (<br>
<a href="#http_t">http_t</a> *http<br>
);</p>
<h4 class="parameters">Parameters</h4>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddBoolean (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
const char *name,<br>
char value<br>
);</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddBooleans (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
const char *name,<br>
int num_values,<br>
const char *values<br>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddCollection (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
const char *name,<br>
<a href="#ipp_t">ipp_t</a> *value<br>
);</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddCollections (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
const char *name,<br>
int num_values,<br>
const <a href="#ipp_t">ipp_t</a> **values<br>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddDate (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
const char *name,<br>
const <a href="#ipp_uchar_t">ipp_uchar_t</a> *value<br>
);</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddInteger (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
- ipp_tag_t type,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> type,<br>
const char *name,<br>
int value<br>
);</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddIntegers (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
- ipp_tag_t type,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> type,<br>
const char *name,<br>
int num_values,<br>
const int *values<br>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddOctetString (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
const char *name,<br>
const void *data,<br>
int datalen<br>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddRange (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
const char *name,<br>
int lower,<br>
int upper<br>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddRanges (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
const char *name,<br>
int num_values,<br>
const int *lower,<br>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddResolution (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
const char *name,<br>
- ipp_res_t units,<br>
+ <a href="#ipp_res_t">ipp_res_t</a> units,<br>
int xres,<br>
int yres<br>
);</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddResolutions (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
const char *name,<br>
int num_values,<br>
- ipp_res_t units,<br>
+ <a href="#ipp_res_t">ipp_res_t</a> units,<br>
const int *xres,<br>
const int *yres<br>
);</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddString (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
- ipp_tag_t type,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> type,<br>
const char *name,<br>
const char *charset,<br>
const char *value<br>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddStrings (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
- ipp_tag_t group,<br>
- ipp_tag_t type,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group,<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> type,<br>
const char *name,<br>
int num_values,<br>
const char *charset,<br>
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippFindAttribute (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
const char *name,<br>
- ipp_tag_t type<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> type<br>
);</p>
<h4 class="parameters">Parameters</h4>
<dl>
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippFindNextAttribute (<br>
<a href="#ipp_t">ipp_t</a> *ipp,<br>
const char *name,<br>
- ipp_tag_t type<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> type<br>
);</p>
<h4 class="parameters">Parameters</h4>
<dl>
<p class="description">Allocate a new IPP request message.</p>
<p class="code">
<a href="#ipp_t">ipp_t</a> *ippNewRequest (<br>
- ipp_op_t op<br>
+ <a href="#ipp_op_t">ipp_op_t</a> op<br>
);</p>
<h4 class="parameters">Parameters</h4>
<dl>
<p class="description">Return a name for the given operation id.</p>
<p class="code">
const char *ippOpString (<br>
- ipp_op_t op<br>
+ <a href="#ipp_op_t">ipp_op_t</a> op<br>
);</p>
<h4 class="parameters">Parameters</h4>
<dl>
<h3 class="function"><span class="info"> CUPS 1.2 </span><a name="ippOpValue">ippOpValue</a></h3>
<p class="description">Return an operation id for the given name.</p>
<p class="code">
-ipp_op_t ippOpValue (<br>
+<a href="#ipp_op_t">ipp_op_t</a> ippOpValue (<br>
const char *name<br>
);</p>
<h4 class="parameters">Parameters</h4>
<h3 class="function"><a name="ippRead">ippRead</a></h3>
<p class="description">Read data for an IPP message from a HTTP connection.</p>
<p class="code">
-ipp_state_t ippRead (<br>
+<a href="#ipp_state_t">ipp_state_t</a> ippRead (<br>
<a href="#http_t">http_t</a> *http,<br>
<a href="#ipp_t">ipp_t</a> *ipp<br>
);</p>
<h3 class="function"><span class="info"> CUPS 1.1.19 </span><a name="ippReadFile">ippReadFile</a></h3>
<p class="description">Read data for an IPP message from a file.</p>
<p class="code">
-ipp_state_t ippReadFile (<br>
+<a href="#ipp_state_t">ipp_state_t</a> ippReadFile (<br>
int fd,<br>
<a href="#ipp_t">ipp_t</a> *ipp<br>
);</p>
<h3 class="function"><span class="info"> CUPS 1.2 </span><a name="ippReadIO">ippReadIO</a></h3>
<p class="description">Read data for an IPP message.</p>
<p class="code">
-ipp_state_t ippReadIO (<br>
+<a href="#ipp_state_t">ipp_state_t</a> ippReadIO (<br>
void *src,<br>
<a href="#ipp_iocb_t">ipp_iocb_t</a> cb,<br>
int blocking,<br>
<dt>p</dt>
<dd class="description">Port number to use</dd>
</dl>
+<h3 class="function"><span class="info"> CUPS 1.4 </span><a name="ippTagString">ippTagString</a></h3>
+<p class="description">Return the tag name corresponding to a tag value.</p>
+<p class="code">
+const char *ippTagString (<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> tag<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>tag</dt>
+<dd class="description">Tag value</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">Tag name</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">The returned names are defined in RFC 2911 and 3382.
+
+</p>
+<h3 class="function"><span class="info"> CUPS 1.4 </span><a name="ippTagValue">ippTagValue</a></h3>
+<p class="description">Return the tag value corresponding to a tag name.</p>
+<p class="code">
+<a href="#ipp_tag_t">ipp_tag_t</a> ippTagValue (<br>
+ const char *name<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>name</dt>
+<dd class="description">Tag name</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">Tag value</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">The tag names are defined in RFC 2911 and 3382.
+
+</p>
<h3 class="function"><a name="ippTimeToDate">ippTimeToDate</a></h3>
<p class="description">Convert from UNIX time to RFC 1903 format.</p>
<p class="code">
<h3 class="function"><a name="ippWrite">ippWrite</a></h3>
<p class="description">Write data for an IPP message to a HTTP connection.</p>
<p class="code">
-ipp_state_t ippWrite (<br>
+<a href="#ipp_state_t">ipp_state_t</a> ippWrite (<br>
<a href="#http_t">http_t</a> *http,<br>
<a href="#ipp_t">ipp_t</a> *ipp<br>
);</p>
<h3 class="function"><span class="info"> CUPS 1.1.19 </span><a name="ippWriteFile">ippWriteFile</a></h3>
<p class="description">Write data for an IPP message to a file.</p>
<p class="code">
-ipp_state_t ippWriteFile (<br>
+<a href="#ipp_state_t">ipp_state_t</a> ippWriteFile (<br>
int fd,<br>
<a href="#ipp_t">ipp_t</a> *ipp<br>
);</p>
<h3 class="function"><span class="info"> CUPS 1.2 </span><a name="ippWriteIO">ippWriteIO</a></h3>
<p class="description">Write data for an IPP message.</p>
<p class="code">
-ipp_state_t ippWriteIO (<br>
+<a href="#ipp_state_t">ipp_state_t</a> ippWriteIO (<br>
void *dst,<br>
<a href="#ipp_iocb_t">ipp_iocb_t</a> cb,<br>
int blocking,<br>
<p class="code">
typedef enum <a href="#http_encryption_e">http_encryption_e</a> http_encryption_t;
</p>
+<h3 class="typedef"><a name="http_field_t">http_field_t</a></h3>
+<p class="description">HTTP field names</p>
+<p class="code">
+typedef enum <a href="#http_field_e">http_field_e</a> http_field_t;
+</p>
+<h3 class="typedef"><a name="http_keepalive_t">http_keepalive_t</a></h3>
+<p class="description">Types and structures...</p>
+<p class="code">
+typedef enum <a href="#http_keepalive_e">http_keepalive_e</a> http_keepalive_t;
+</p>
+<h3 class="typedef"><a name="http_status_t">http_status_t</a></h3>
+<p class="description">HTTP status codes</p>
+<p class="code">
+typedef enum <a href="#http_status_e">http_status_e</a> http_status_t;
+</p>
<h3 class="typedef"><a name="http_t">http_t</a></h3>
<p class="description">HTTP connection type</p>
<p class="code">
typedef struct _http_s http_t;
</p>
+<h3 class="typedef"><a name="http_uri_coding_t">http_uri_coding_t</a></h3>
+<p class="description">HTTP version numbers</p>
+<p class="code">
+typedef enum <a href="#http_uri_coding_e">http_uri_coding_e</a> http_uri_coding_t;
+</p>
+<h3 class="typedef"><a name="http_uri_status_t">http_uri_status_t</a></h3>
+<p class="description">URI en/decode flags</p>
+<p class="code">
+typedef enum <a href="#http_uri_status_e">http_uri_status_e</a> http_uri_status_t;
+</p>
+<h3 class="typedef"><span class="info"> CUPS 1.2 </span><a name="http_version_t">http_version_t</a></h3>
+<p class="description">Socket address union, which
+makes using IPv6 and other
+address types easier and
+more portable. </p>
+<p class="code">
+typedef enum <a href="#http_version_e">http_version_e</a> http_version_t;
+</p>
<h3 class="typedef"><a name="ipp_attribute_t">ipp_attribute_t</a></h3>
<p class="description">Attribute</p>
<p class="code">
typedef struct <a href="#ipp_attribute_s">ipp_attribute_s</a> ipp_attribute_t;
</p>
+<h3 class="typedef"><a name="ipp_finish_t">ipp_finish_t</a></h3>
+<p class="description">Orientation...</p>
+<p class="code">
+typedef enum <a href="#ipp_finish_e">ipp_finish_e</a> ipp_finish_t;
+</p>
<h3 class="typedef"><span class="info"> CUPS 1.2 </span><a name="ipp_iocb_t">ipp_iocb_t</a></h3>
<p class="description">IPP IO Callback Function </p>
<p class="code">
typedef ssize_t (*ipp_iocb_t)(void *, <a href="#ipp_uchar_t">ipp_uchar_t</a> *, size_t);
</p>
+<h3 class="typedef"><a name="ipp_jstate_t">ipp_jstate_t</a></h3>
+<p class="description">Printer States....</p>
+<p class="code">
+typedef enum <a href="#ipp_jstate_e">ipp_jstate_e</a> ipp_jstate_t;
+</p>
+<h3 class="typedef"><a name="ipp_op_t">ipp_op_t</a></h3>
+<p class="description">Old names for the operations</p>
+<p class="code">
+typedef enum <a href="#ipp_op_e">ipp_op_e</a> ipp_op_t;
+</p>
+<h3 class="typedef"><a name="ipp_orient_t">ipp_orient_t</a></h3>
+<p class="description">Qualities...</p>
+<p class="code">
+typedef enum <a href="#ipp_orient_e">ipp_orient_e</a> ipp_orient_t;
+</p>
+<h3 class="typedef"><a name="ipp_pstate_t">ipp_pstate_t</a></h3>
+<p class="description">IPP states...</p>
+<p class="code">
+typedef enum <a href="#ipp_pstate_e">ipp_pstate_e</a> ipp_pstate_t;
+</p>
+<h3 class="typedef"><a name="ipp_quality_t">ipp_quality_t</a></h3>
+<p class="description">Job States....</p>
+<p class="code">
+typedef enum <a href="#ipp_quality_e">ipp_quality_e</a> ipp_quality_t;
+</p>
<h3 class="typedef"><a name="ipp_request_t">ipp_request_t</a></h3>
<p class="description">Request Header</p>
<p class="code">
typedef union <a href="#ipp_request_u">ipp_request_u</a> ipp_request_t;
</p>
+<h3 class="typedef"><a name="ipp_res_t">ipp_res_t</a></h3>
+<p class="description">Types and structures...</p>
+<p class="code">
+typedef enum <a href="#ipp_res_e">ipp_res_e</a> ipp_res_t;
+</p>
+<h3 class="typedef"><a name="ipp_state_t">ipp_state_t</a></h3>
+<p class="description">IPP operations...</p>
+<p class="code">
+typedef enum <a href="#ipp_state_e">ipp_state_e</a> ipp_state_t;
+</p>
<h3 class="typedef"><a name="ipp_t">ipp_t</a></h3>
<p class="description">Attribute Value</p>
<p class="code">
<p class="code">
typedef typedef unsigned char ipp_uchar_t;
</p>
+<h3 class="typedef"><a name="ipp_tag_t">ipp_tag_t</a></h3>
+<p class="description">Format tags for attributes...</p>
+<p class="code">
+typedef enum <a href="#ipp_tag_e">ipp_tag_e</a> ipp_tag_t;
+</p>
<h3 class="typedef"><a name="ipp_value_t">ipp_value_t</a></h3>
<p class="description">New in CUPS 1.1.19</p>
<p class="code">
char *name;<br>
struct <a href="#ipp_attribute_s">ipp_attribute_s</a> *next;<br>
int num_values;<br>
- ipp_tag_t group_tag, value_tag;<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> group_tag, value_tag;<br>
<a href="#ipp_value_t">ipp_value_t</a> values[1];<br>
};</p>
<h4 class="members">Members</h4>
<p class="code">struct ipp_s {<br>
<a href="#ipp_attribute_t">ipp_attribute_t</a> *attrs;<br>
<a href="#ipp_attribute_t">ipp_attribute_t</a> *current;<br>
- ipp_tag_t curtag;<br>
+ <a href="#ipp_tag_t">ipp_tag_t</a> curtag;<br>
<a href="#ipp_attribute_t">ipp_attribute_t</a> *last;<br>
<a href="#ipp_attribute_t">ipp_attribute_t</a> *prev;<br>
<a href="#ipp_request_t">ipp_request_t</a> request;<br>
- ipp_state_t state;<br>
+ <a href="#ipp_state_t">ipp_state_t</a> state;<br>
};</p>
<h4 class="members">Members</h4>
<dl>