]>
Commit | Line | Data |
---|---|---|
ef416fc2 | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> |
2 | <html> | |
3 | <!-- SECTION: Programming --> | |
4 | <head> | |
5 | <title>HTTP and IPP APIs</title> | |
6 | <meta name='keywords' content='Programming'> | |
7 | <meta name='creator' content='Mini-XML v2.3'> | |
8 | <style type='text/css'><!-- | |
9 | h1, h2, h3, p { font-family: sans-serif; text-align: justify; } | |
10 | tt, pre a:link, pre a:visited, tt a:link, tt a:visited { font-weight: bold; color: #7f0000; } | |
11 | pre { font-weight: bold; color: #7f0000; margin-left: 2em; } | |
12 | span.info { background: #000000; border: solid thin #000000; color: #ffffff; font-size: 80%; font-style: italic; font-weight: bold; white-space: nowrap; } | |
13 | h3 span.info { float: right; font-size: 100%; } | |
14 | h1.title, h2.title, h3.title { border-bottom: solid 2px #000000; } | |
15 | --></style> | |
16 | </head> | |
17 | <body> | |
18 | <!-- | |
f7faf1f5 | 19 | "$Id: api-httpipp.shtml 5138 2006-02-21 10:49:06Z mike $" |
ef416fc2 | 20 | |
21 | HTTP and IPP API introduction for the Common UNIX Printing System (CUPS). | |
22 | ||
ecdc0628 | 23 | Copyright 1997-2006 by Easy Software Products. |
ef416fc2 | 24 | |
25 | These coded instructions, statements, and computer programs are the | |
26 | property of Easy Software Products and are protected by Federal | |
27 | copyright law. Distribution and use rights are outlined in the file | |
28 | "LICENSE.txt" which should have been included with this file. If this | |
29 | file is missing or damaged please contact Easy Software Products | |
30 | at: | |
31 | ||
32 | Attn: CUPS Licensing Information | |
33 | Easy Software Products | |
34 | 44141 Airport View Drive, Suite 204 | |
35 | Hollywood, Maryland 20636 USA | |
36 | ||
37 | Voice: (301) 373-9600 | |
38 | EMail: cups-info@cups.org | |
39 | WWW: http://www.cups.org | |
40 | --> | |
41 | ||
42 | <h2 class='title'>Introduction</h2> | |
43 | ||
ecdc0628 | 44 | <p>The CUPS HTTP and IPP APIs provide low-level access to the |
45 | HTTP and IPP protocols and CUPS scheduler. They are typically | |
46 | used by monitoring and administration programs to perform | |
47 | specific functions not supported by the high-level CUPS API | |
48 | functions.</p> | |
ef416fc2 | 49 | |
50 | <h2 class='title'>General Usage</h2> | |
51 | ||
52 | <p>The <var><cups/cups.h></var> header file must be included to | |
53 | use the HTTP and IPP functions.</p> | |
54 | ||
55 | <p>Programs using these functions must be linked to the CUPS | |
56 | library: <var>libcups.a</var>, <var>libcups.so.2</var>, | |
57 | <var>libcups.2.dylib</var>, <var>libcups_s.a</var>, or | |
58 | <var>libcups2.lib</var> depending on the platform. The following | |
59 | command compiles <var>myprogram.c</var> using GCC and the CUPS | |
60 | library:</p> | |
61 | ||
62 | <pre class='command'> | |
63 | <kbd>gcc -o myprogram myprogram.c -lcups</kbd> | |
64 | </pre> | |
65 | ||
66 | <h2 class='title'>Compatibility</h2> | |
67 | ||
68 | <p>Unless otherwise specified, the HTTP and IPP API functions | |
69 | require CUPS 1.1 or higher.</p> | |
70 | <h2 class='title'>Contents</h2> | |
71 | <ul> | |
72 | <li><a href='#ENUMERATIONS'>Enumerations</a></li> | |
73 | <li><a href='#FUNCTIONS'>Functions</a></li> | |
74 | <li><a href='#STRUCTURES'>Structures</a></li> | |
75 | <li><a href='#TYPES'>Types</a></li> | |
ecdc0628 | 76 | <li><a href='#UNIONS'>Unions</a></li> |
ef416fc2 | 77 | </ul> |
78 | <!-- NEW PAGE --> | |
79 | <h2 class='title'><a name='ENUMERATIONS'>Enumerations</a></h2> | |
80 | <ul> | |
ef416fc2 | 81 | <li><a href='#http_auth_e'><tt>http_auth_e</tt></a> </li> |
82 | <li><a href='#http_encoding_e'><tt>http_encoding_e</tt></a> </li> | |
83 | <li><a href='#http_encryption_e'><tt>http_encryption_e</tt></a> </li> | |
84 | <li><a href='#http_field_e'><tt>http_field_e</tt></a> </li> | |
85 | <li><a href='#http_keepalive_e'><tt>http_keepalive_e</tt></a> </li> | |
86 | <li><a href='#http_status_e'><tt>http_status_e</tt></a> </li> | |
ecdc0628 | 87 | <li><a href='#ipp_res_e'><tt>ipp_res_e</tt></a> </li> |
88 | <li><a href='#ipp_status_e'><tt>ipp_status_e</tt></a> </li> | |
89 | <li><a href='#ipp_tag_e'><tt>ipp_tag_e</tt></a> </li> | |
ef416fc2 | 90 | </ul> |
91 | <!-- NEW PAGE --> | |
ef416fc2 | 92 | <h3 class='title'><a name='http_auth_e'>http_auth_e</a></h3> |
93 | <h4>Description</h4> | |
94 | <p>HTTP authentication types</p> | |
95 | <h4>Values</h4> | |
96 | <div class='table'><table align='center' border='1' width='80%'> | |
97 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
98 | <tbody> | |
99 | <tr><td><tt>HTTP_AUTH_BASIC</tt> </td><td>Basic authentication in use</td></tr> | |
100 | <tr><td><tt>HTTP_AUTH_MD5</tt> </td><td>Digest authentication in use</td></tr> | |
101 | <tr><td><tt>HTTP_AUTH_MD5_INT</tt> </td><td>Digest authentication in use for body</td></tr> | |
102 | <tr><td><tt>HTTP_AUTH_MD5_SESS</tt> </td><td>MD5-session authentication in use</td></tr> | |
103 | <tr><td><tt>HTTP_AUTH_MD5_SESS_INT</tt> </td><td>MD5-session authentication in use for body</td></tr> | |
104 | <tr><td><tt>HTTP_AUTH_NONE</tt> </td><td>No authentication in use</td></tr> | |
105 | </tbody></table></div> | |
106 | <!-- NEW PAGE --> | |
107 | <h3 class='title'><a name='http_encoding_e'>http_encoding_e</a></h3> | |
108 | <h4>Description</h4> | |
109 | <p>HTTP transfer encoding values</p> | |
110 | <h4>Values</h4> | |
111 | <div class='table'><table align='center' border='1' width='80%'> | |
112 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
113 | <tbody> | |
114 | <tr><td><tt>HTTP_ENCODE_CHUNKED</tt> </td><td>Data is chunked</td></tr> | |
2abf387c | 115 | <tr><td><tt>HTTP_ENCODE_FIELDS</tt> </td><td>Sending HTTP fields</td></tr> |
ef416fc2 | 116 | <tr><td><tt>HTTP_ENCODE_LENGTH</tt> </td><td>Data is sent with Content-Length</td></tr> |
117 | </tbody></table></div> | |
118 | <!-- NEW PAGE --> | |
119 | <h3 class='title'><a name='http_encryption_e'>http_encryption_e</a></h3> | |
120 | <h4>Description</h4> | |
121 | <p>HTTP encryption values</p> | |
122 | <h4>Values</h4> | |
123 | <div class='table'><table align='center' border='1' width='80%'> | |
124 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
125 | <tbody> | |
126 | <tr><td><tt>HTTP_ENCRYPT_ALWAYS</tt> </td><td>Always encrypt (SSL)</td></tr> | |
127 | <tr><td><tt>HTTP_ENCRYPT_IF_REQUESTED</tt> </td><td>Encrypt if requested (TLS upgrade)</td></tr> | |
128 | <tr><td><tt>HTTP_ENCRYPT_NEVER</tt> </td><td>Never encrypt</td></tr> | |
129 | <tr><td><tt>HTTP_ENCRYPT_REQUIRED</tt> </td><td>Encryption is required (TLS upgrade)</td></tr> | |
130 | </tbody></table></div> | |
131 | <!-- NEW PAGE --> | |
132 | <h3 class='title'><a name='http_field_e'>http_field_e</a></h3> | |
133 | <h4>Description</h4> | |
134 | <p>HTTP field names</p> | |
135 | <h4>Values</h4> | |
136 | <div class='table'><table align='center' border='1' width='80%'> | |
137 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
138 | <tbody> | |
139 | <tr><td><tt>HTTP_FIELD_ACCEPT_LANGUAGE</tt> </td><td>Accept-Language field</td></tr> | |
140 | <tr><td><tt>HTTP_FIELD_ACCEPT_RANGES</tt> </td><td>Accept-Ranges field</td></tr> | |
141 | <tr><td><tt>HTTP_FIELD_AUTHORIZATION</tt> </td><td>Authorization field</td></tr> | |
142 | <tr><td><tt>HTTP_FIELD_CONNECTION</tt> </td><td>Connection field</td></tr> | |
143 | <tr><td><tt>HTTP_FIELD_CONTENT_ENCODING</tt> </td><td>Content-Encoding field</td></tr> | |
144 | <tr><td><tt>HTTP_FIELD_CONTENT_LANGUAGE</tt> </td><td>Content-Language field</td></tr> | |
145 | <tr><td><tt>HTTP_FIELD_CONTENT_LENGTH</tt> </td><td>Content-Length field</td></tr> | |
146 | <tr><td><tt>HTTP_FIELD_CONTENT_LOCATION</tt> </td><td>Content-Location field</td></tr> | |
147 | <tr><td><tt>HTTP_FIELD_CONTENT_MD5</tt> </td><td>Content-MD5 field</td></tr> | |
148 | <tr><td><tt>HTTP_FIELD_CONTENT_RANGE</tt> </td><td>Content-Range field</td></tr> | |
149 | <tr><td><tt>HTTP_FIELD_CONTENT_TYPE</tt> </td><td>Content-Type field</td></tr> | |
150 | <tr><td><tt>HTTP_FIELD_CONTENT_VERSION</tt> </td><td>Content-Version field</td></tr> | |
151 | <tr><td><tt>HTTP_FIELD_DATE</tt> </td><td>Date field</td></tr> | |
152 | <tr><td><tt>HTTP_FIELD_HOST</tt> </td><td>Host field</td></tr> | |
153 | <tr><td><tt>HTTP_FIELD_IF_MODIFIED_SINCE</tt> </td><td>If-Modified-Since field</td></tr> | |
154 | <tr><td><tt>HTTP_FIELD_IF_UNMODIFIED_SINCE</tt> </td><td>If-Unmodified-Since field</td></tr> | |
155 | <tr><td><tt>HTTP_FIELD_KEEP_ALIVE</tt> </td><td>Keep-Alive field</td></tr> | |
156 | <tr><td><tt>HTTP_FIELD_LAST_MODIFIED</tt> </td><td>Last-Modified field</td></tr> | |
157 | <tr><td><tt>HTTP_FIELD_LINK</tt> </td><td>Link field</td></tr> | |
158 | <tr><td><tt>HTTP_FIELD_LOCATION</tt> </td><td>Location field</td></tr> | |
159 | <tr><td><tt>HTTP_FIELD_MAX</tt> </td><td>Maximum field index</td></tr> | |
160 | <tr><td><tt>HTTP_FIELD_RANGE</tt> </td><td>Range field</td></tr> | |
161 | <tr><td><tt>HTTP_FIELD_REFERER</tt> </td><td>Referer field</td></tr> | |
162 | <tr><td><tt>HTTP_FIELD_RETRY_AFTER</tt> </td><td>Retry-After field</td></tr> | |
163 | <tr><td><tt>HTTP_FIELD_TRANSFER_ENCODING</tt> </td><td>Transfer-Encoding field</td></tr> | |
164 | <tr><td><tt>HTTP_FIELD_UNKNOWN</tt> </td><td>Unknown field</td></tr> | |
165 | <tr><td><tt>HTTP_FIELD_UPGRADE</tt> </td><td>Upgrade field</td></tr> | |
166 | <tr><td><tt>HTTP_FIELD_USER_AGENT</tt> </td><td>User-Agent field</td></tr> | |
167 | <tr><td><tt>HTTP_FIELD_WWW_AUTHENTICATE</tt> </td><td>WWW-Authenticate field</td></tr> | |
168 | </tbody></table></div> | |
169 | <!-- NEW PAGE --> | |
170 | <h3 class='title'><a name='http_keepalive_e'>http_keepalive_e</a></h3> | |
171 | <h4>Description</h4> | |
172 | <p>Types and structures...</p> | |
173 | <h4>Values</h4> | |
174 | <div class='table'><table align='center' border='1' width='80%'> | |
175 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
176 | <tbody> | |
177 | <tr><td><tt>HTTP_KEEPALIVE_OFF</tt> </td><td>No keep alive support</td></tr> | |
178 | <tr><td><tt>HTTP_KEEPALIVE_ON</tt> </td><td>Use keep alive</td></tr> | |
179 | </tbody></table></div> | |
180 | <!-- NEW PAGE --> | |
181 | <h3 class='title'><a name='http_status_e'>http_status_e</a></h3> | |
182 | <h4>Description</h4> | |
183 | <p>HTTP status codes</p> | |
184 | <h4>Values</h4> | |
185 | <div class='table'><table align='center' border='1' width='80%'> | |
186 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
187 | <tbody> | |
188 | <tr><td><tt>HTTP_ACCEPTED</tt> </td><td>DELETE command was successful</td></tr> | |
189 | <tr><td><tt>HTTP_BAD_GATEWAY</tt> </td><td>Bad gateway</td></tr> | |
190 | <tr><td><tt>HTTP_BAD_REQUEST</tt> </td><td>Bad request</td></tr> | |
191 | <tr><td><tt>HTTP_CONFLICT</tt> </td><td>Request is self-conflicting</td></tr> | |
192 | <tr><td><tt>HTTP_CONTINUE</tt> </td><td>Everything OK, keep going...</td></tr> | |
193 | <tr><td><tt>HTTP_CREATED</tt> </td><td>PUT command was successful</td></tr> | |
194 | <tr><td><tt>HTTP_ERROR</tt> </td><td>An error response from httpXxxx()</td></tr> | |
80ca4592 | 195 | <tr><td><tt>HTTP_EXPECTATION_FAILED</tt> </td><td>The expectation given in an Expect header field was not met</td></tr> |
ef416fc2 | 196 | <tr><td><tt>HTTP_FORBIDDEN</tt> </td><td>Forbidden to access this URI</td></tr> |
197 | <tr><td><tt>HTTP_GATEWAY_TIMEOUT</tt> </td><td>Gateway connection timed out</td></tr> | |
198 | <tr><td><tt>HTTP_GONE</tt> </td><td>Server has gone away</td></tr> | |
199 | <tr><td><tt>HTTP_LENGTH_REQUIRED</tt> </td><td>A content length or encoding is required</td></tr> | |
200 | <tr><td><tt>HTTP_METHOD_NOT_ALLOWED</tt> </td><td>Method is not allowed</td></tr> | |
201 | <tr><td><tt>HTTP_MOVED_PERMANENTLY</tt> </td><td>Document has moved permanently</td></tr> | |
202 | <tr><td><tt>HTTP_MOVED_TEMPORARILY</tt> </td><td>Document has moved temporarily</td></tr> | |
203 | <tr><td><tt>HTTP_MULTIPLE_CHOICES</tt> </td><td>Multiple files match request</td></tr> | |
204 | <tr><td><tt>HTTP_NOT_ACCEPTABLE</tt> </td><td>Not Acceptable</td></tr> | |
205 | <tr><td><tt>HTTP_NOT_AUTHORITATIVE</tt> </td><td>Information isn't authoritative</td></tr> | |
206 | <tr><td><tt>HTTP_NOT_FOUND</tt> </td><td>URI was not found</td></tr> | |
207 | <tr><td><tt>HTTP_NOT_IMPLEMENTED</tt> </td><td>Feature not implemented</td></tr> | |
208 | <tr><td><tt>HTTP_NOT_MODIFIED</tt> </td><td>File not modified</td></tr> | |
209 | <tr><td><tt>HTTP_NOT_SUPPORTED</tt> </td><td>HTTP version not supported</td></tr> | |
210 | <tr><td><tt>HTTP_NO_CONTENT</tt> </td><td>Successful command, no new data</td></tr> | |
211 | <tr><td><tt>HTTP_OK</tt> </td><td>OPTIONS/GET/HEAD/POST/TRACE command was successful</td></tr> | |
212 | <tr><td><tt>HTTP_PARTIAL_CONTENT</tt> </td><td>Only a partial file was recieved/sent</td></tr> | |
213 | <tr><td><tt>HTTP_PAYMENT_REQUIRED</tt> </td><td>Payment required</td></tr> | |
214 | <tr><td><tt>HTTP_PRECONDITION</tt> </td><td>Precondition failed</td></tr> | |
215 | <tr><td><tt>HTTP_PROXY_AUTHENTICATION</tt> </td><td>Proxy Authentication is Required</td></tr> | |
80ca4592 | 216 | <tr><td><tt>HTTP_REQUESTED_RANGE</tt> </td><td>The requested range is not satisfiable</td></tr> |
ef416fc2 | 217 | <tr><td><tt>HTTP_REQUEST_TIMEOUT</tt> </td><td>Request timed out</td></tr> |
218 | <tr><td><tt>HTTP_REQUEST_TOO_LARGE</tt> </td><td>Request entity too large</td></tr> | |
219 | <tr><td><tt>HTTP_RESET_CONTENT</tt> </td><td>Content was reset/recreated</td></tr> | |
220 | <tr><td><tt>HTTP_SEE_OTHER</tt> </td><td>See this other link...</td></tr> | |
221 | <tr><td><tt>HTTP_SERVER_ERROR</tt> </td><td>Internal server error</td></tr> | |
222 | <tr><td><tt>HTTP_SERVICE_UNAVAILABLE</tt> </td><td>Service is unavailable</td></tr> | |
223 | <tr><td><tt>HTTP_SWITCHING_PROTOCOLS</tt> </td><td>HTTP upgrade to TLS/SSL</td></tr> | |
224 | <tr><td><tt>HTTP_UNAUTHORIZED</tt> </td><td>Unauthorized to access host</td></tr> | |
225 | <tr><td><tt>HTTP_UNSUPPORTED_MEDIATYPE</tt> </td><td>The requested media type is unsupported</td></tr> | |
226 | <tr><td><tt>HTTP_UPGRADE_REQUIRED</tt> </td><td>Upgrade to SSL/TLS required</td></tr> | |
227 | <tr><td><tt>HTTP_URI_TOO_LONG</tt> </td><td>URI too long</td></tr> | |
228 | <tr><td><tt>HTTP_USE_PROXY</tt> </td><td>Must use a proxy to access this URI</td></tr> | |
229 | </tbody></table></div> | |
230 | <!-- NEW PAGE --> | |
ecdc0628 | 231 | <h3 class='title'><a name='ipp_res_e'>ipp_res_e</a></h3> |
232 | <h4>Description</h4> | |
233 | <p>Types and structures...</p> | |
234 | <h4>Values</h4> | |
235 | <div class='table'><table align='center' border='1' width='80%'> | |
236 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
237 | <tbody> | |
238 | <tr><td><tt>IPP_RES_PER_CM</tt> </td><td>Pixels per centimeter</td></tr> | |
239 | <tr><td><tt>IPP_RES_PER_INCH</tt> </td><td>Pixels per inch</td></tr> | |
240 | </tbody></table></div> | |
241 | <!-- NEW PAGE --> | |
242 | <h3 class='title'><a name='ipp_status_e'>ipp_status_e</a></h3> | |
243 | <h4>Description</h4> | |
244 | <p>IPP status codes...</p> | |
245 | <h4>Values</h4> | |
246 | <div class='table'><table align='center' border='1' width='80%'> | |
247 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
248 | <tbody> | |
249 | <tr><td><tt>IPP_ATTRIBUTES</tt> </td><td>client-error-attributes-or-values-not-supported</td></tr> | |
250 | <tr><td><tt>IPP_ATTRIBUTES_NOT_SETTABLE</tt> </td><td>client-error-attributes-not-settable</td></tr> | |
251 | <tr><td><tt>IPP_BAD_REQUEST</tt> </td><td>client-error-bad-request</td></tr> | |
252 | <tr><td><tt>IPP_CHARSET</tt> </td><td>client-error-charset-not-supported</td></tr> | |
253 | <tr><td><tt>IPP_COMPRESSION_ERROR</tt> </td><td>client-error-compression-error</td></tr> | |
254 | <tr><td><tt>IPP_COMPRESSION_NOT_SUPPORTED</tt> </td><td>client-error-compression-not-supported</td></tr> | |
255 | <tr><td><tt>IPP_CONFLICT</tt> </td><td>client-error-conflicting-attributes</td></tr> | |
256 | <tr><td><tt>IPP_DEVICE_ERROR</tt> </td><td>server-error-device-error</td></tr> | |
257 | <tr><td><tt>IPP_DOCUMENT_ACCESS_ERROR</tt> </td><td>client-error-document-access-error</td></tr> | |
258 | <tr><td><tt>IPP_DOCUMENT_FORMAT</tt> </td><td>client-error-document-format-not-supported</td></tr> | |
259 | <tr><td><tt>IPP_DOCUMENT_FORMAT_ERROR</tt> </td><td>client-error-document-format-error</td></tr> | |
2abf387c | 260 | <tr><td><tt>IPP_ERROR_JOB_CANCELED</tt> </td><td>server-error-job-canceled</td></tr> |
ecdc0628 | 261 | <tr><td><tt>IPP_FORBIDDEN</tt> </td><td>client-error-forbidden</td></tr> |
262 | <tr><td><tt>IPP_GONE</tt> </td><td>client-error-gone</td></tr> | |
263 | <tr><td><tt>IPP_IGNORED_ALL_NOTIFICATIONS</tt> </td><td>client-error-ignored-all-notifications</td></tr> | |
264 | <tr><td><tt>IPP_IGNORED_ALL_SUBSCRIPTIONS</tt> </td><td>client-error-ignored-all-subscriptions</td></tr> | |
265 | <tr><td><tt>IPP_INTERNAL_ERROR</tt> </td><td>server-error-internal-error</td></tr> | |
266 | <tr><td><tt>IPP_MULTIPLE_JOBS_NOT_SUPPORTED</tt> </td><td>server-error-multiple-document-jobs-not-supported</td></tr> | |
267 | <tr><td><tt>IPP_NOT_ACCEPTING</tt> </td><td>server-error-not-accepting-jobs</td></tr> | |
268 | <tr><td><tt>IPP_NOT_AUTHENTICATED</tt> </td><td>client-error-not-authenticated</td></tr> | |
269 | <tr><td><tt>IPP_NOT_AUTHORIZED</tt> </td><td>client-error-not-authorized</td></tr> | |
270 | <tr><td><tt>IPP_NOT_FOUND</tt> </td><td>client-error-not-found</td></tr> | |
271 | <tr><td><tt>IPP_NOT_POSSIBLE</tt> </td><td>client-error-not-possible</td></tr> | |
272 | <tr><td><tt>IPP_OK</tt> </td><td>successful-ok</td></tr> | |
273 | <tr><td><tt>IPP_OK_BUT_CANCEL_SUBSCRIPTION</tt> </td><td>successful-ok-but-cancel-subscription</td></tr> | |
274 | <tr><td><tt>IPP_OK_CONFLICT</tt> </td><td>successful-ok-conflicting-attributes</td></tr> | |
275 | <tr><td><tt>IPP_OK_EVENTS_COMPLETE</tt> </td><td>successful-ok-events-complete</td></tr> | |
276 | <tr><td><tt>IPP_OK_IGNORED_NOTIFICATIONS</tt> </td><td>successful-ok-ignored-notifications</td></tr> | |
277 | <tr><td><tt>IPP_OK_IGNORED_SUBSCRIPTIONS</tt> </td><td>successful-ok-ignored-subscriptions</td></tr> | |
278 | <tr><td><tt>IPP_OK_SUBST</tt> </td><td>successful-ok-ignored-or-substituted-attributes</td></tr> | |
279 | <tr><td><tt>IPP_OK_TOO_MANY_EVENTS</tt> </td><td>successful-ok-too-many-events</td></tr> | |
280 | <tr><td><tt>IPP_OPERATION_NOT_SUPPORTED</tt> </td><td>server-error-operation-not-supported</td></tr> | |
281 | <tr><td><tt>IPP_PRINTER_BUSY</tt> </td><td>server-error-busy</td></tr> | |
282 | <tr><td><tt>IPP_PRINTER_IS_DEACTIVATED</tt> </td><td>server-error-printer-is-deactivated</td></tr> | |
283 | <tr><td><tt>IPP_PRINT_SUPPORT_FILE_NOT_FOUND</tt> </td><td>client-error-print-support-file-not-found</td></tr> | |
284 | <tr><td><tt>IPP_REDIRECTION_OTHER_SITE</tt> </td><td></td></tr> | |
285 | <tr><td><tt>IPP_REQUEST_ENTITY</tt> </td><td>client-error-request-entity-too-large</td></tr> | |
286 | <tr><td><tt>IPP_REQUEST_VALUE</tt> </td><td>client-error-request-value-too-long</td></tr> | |
287 | <tr><td><tt>IPP_SERVICE_UNAVAILABLE</tt> </td><td>server-error-service-unavailable</td></tr> | |
288 | <tr><td><tt>IPP_TEMPORARY_ERROR</tt> </td><td>server-error-temporary-error</td></tr> | |
289 | <tr><td><tt>IPP_TIMEOUT</tt> </td><td>client-error-timeout</td></tr> | |
290 | <tr><td><tt>IPP_TOO_MANY_SUBSCRIPTIONS</tt> </td><td>client-error-too-many-subscriptions</td></tr> | |
291 | <tr><td><tt>IPP_URI_SCHEME</tt> </td><td>client-error-uri-scheme-not-supported</td></tr> | |
292 | <tr><td><tt>IPP_VERSION_NOT_SUPPORTED</tt> </td><td>server-error-version-not-supported</td></tr> | |
293 | </tbody></table></div> | |
294 | <!-- NEW PAGE --> | |
295 | <h3 class='title'><a name='ipp_tag_e'>ipp_tag_e</a></h3> | |
296 | <h4>Description</h4> | |
297 | <p>Format tags for attributes...</p> | |
298 | <h4>Values</h4> | |
299 | <div class='table'><table align='center' border='1' width='80%'> | |
300 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
301 | <tbody> | |
302 | <tr><td><tt>IPP_TAG_ADMINDEFINE</tt> </td><td>Admin-defined value</td></tr> | |
303 | <tr><td><tt>IPP_TAG_BEGIN_COLLECTION</tt> </td><td>Beginning of collection value</td></tr> | |
304 | <tr><td><tt>IPP_TAG_BOOLEAN</tt> </td><td>Boolean value</td></tr> | |
305 | <tr><td><tt>IPP_TAG_CHARSET</tt> </td><td>Character set value</td></tr> | |
306 | <tr><td><tt>IPP_TAG_COPY</tt> </td><td>Bitflag for copied attribute values</td></tr> | |
307 | <tr><td><tt>IPP_TAG_DATE</tt> </td><td>Date/time value</td></tr> | |
308 | <tr><td><tt>IPP_TAG_DEFAULT</tt> </td><td>Default value</td></tr> | |
309 | <tr><td><tt>IPP_TAG_DELETEATTR</tt> </td><td>Delete-attribute value</td></tr> | |
310 | <tr><td><tt>IPP_TAG_END</tt> </td><td>End-of-attributes</td></tr> | |
311 | <tr><td><tt>IPP_TAG_END_COLLECTION</tt> </td><td>End of collection value</td></tr> | |
312 | <tr><td><tt>IPP_TAG_ENUM</tt> </td><td>Enumeration value</td></tr> | |
313 | <tr><td><tt>IPP_TAG_EVENT_NOTIFICATION</tt> </td><td>Event group</td></tr> | |
314 | <tr><td><tt>IPP_TAG_INTEGER</tt> </td><td>Integer value</td></tr> | |
315 | <tr><td><tt>IPP_TAG_JOB</tt> </td><td>Job group</td></tr> | |
316 | <tr><td><tt>IPP_TAG_KEYWORD</tt> </td><td>Keyword value</td></tr> | |
317 | <tr><td><tt>IPP_TAG_LANGUAGE</tt> </td><td>Language value</td></tr> | |
318 | <tr><td><tt>IPP_TAG_MASK</tt> </td><td>Mask for copied attribute values</td></tr> | |
319 | <tr><td><tt>IPP_TAG_MEMBERNAME</tt> </td><td>Collection member name value</td></tr> | |
320 | <tr><td><tt>IPP_TAG_MIMETYPE</tt> </td><td>MIME media type value</td></tr> | |
321 | <tr><td><tt>IPP_TAG_NAME</tt> </td><td>Name value</td></tr> | |
322 | <tr><td><tt>IPP_TAG_NAMELANG</tt> </td><td>Name-with-language value</td></tr> | |
323 | <tr><td><tt>IPP_TAG_NOTSETTABLE</tt> </td><td>Not-settable value</td></tr> | |
324 | <tr><td><tt>IPP_TAG_NOVALUE</tt> </td><td>No-value value</td></tr> | |
325 | <tr><td><tt>IPP_TAG_OPERATION</tt> </td><td>Operation group</td></tr> | |
326 | <tr><td><tt>IPP_TAG_PRINTER</tt> </td><td>Printer group</td></tr> | |
327 | <tr><td><tt>IPP_TAG_RANGE</tt> </td><td>Range value</td></tr> | |
328 | <tr><td><tt>IPP_TAG_RESOLUTION</tt> </td><td>Resolution value</td></tr> | |
329 | <tr><td><tt>IPP_TAG_STRING</tt> </td><td>Octet string value</td></tr> | |
330 | <tr><td><tt>IPP_TAG_SUBSCRIPTION</tt> </td><td>Subscription group</td></tr> | |
331 | <tr><td><tt>IPP_TAG_TEXT</tt> </td><td>Text value</td></tr> | |
332 | <tr><td><tt>IPP_TAG_TEXTLANG</tt> </td><td>Text-with-language value</td></tr> | |
333 | <tr><td><tt>IPP_TAG_UNKNOWN</tt> </td><td>Unknown value</td></tr> | |
334 | <tr><td><tt>IPP_TAG_UNSUPPORTED_GROUP</tt> </td><td>Unsupported attributes group</td></tr> | |
335 | <tr><td><tt>IPP_TAG_UNSUPPORTED_VALUE</tt> </td><td>Unsupported value</td></tr> | |
336 | <tr><td><tt>IPP_TAG_URI</tt> </td><td>URI value</td></tr> | |
337 | <tr><td><tt>IPP_TAG_URISCHEME</tt> </td><td>URI scheme value</td></tr> | |
338 | <tr><td><tt>IPP_TAG_ZERO</tt> </td><td>Zero tag - used for separators</td></tr> | |
339 | </tbody></table></div> | |
340 | <!-- NEW PAGE --> | |
ef416fc2 | 341 | <h2 class='title'><a name='FUNCTIONS'>Functions</a></h2> |
342 | <ul> | |
ef416fc2 | 343 | <li><a href='#cupsDoAuthentication'><tt>cupsDoAuthentication()</tt></a> <span class='info'> CUPS 1.1.20 </span></li> |
344 | <li><a href='#cupsDoFileRequest'><tt>cupsDoFileRequest()</tt></a> </li> | |
ecdc0628 | 345 | <li><a href='#cupsDoRequest'><tt>cupsDoRequest()</tt></a> </li> |
ef416fc2 | 346 | <li><a href='#cupsEncodeOptions'><tt>cupsEncodeOptions()</tt></a> </li> |
347 | <li><a href='#cupsEncodeOptions2'><tt>cupsEncodeOptions2()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
ef416fc2 | 348 | <li><a href='#httpAddrAny'><tt>httpAddrAny()</tt></a> <span class='info'> CUPS 1.2 </span></li> |
349 | <li><a href='#httpAddrEqual'><tt>httpAddrEqual()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
350 | <li><a href='#httpAddrLength'><tt>httpAddrLength()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
351 | <li><a href='#httpAddrLocalhost'><tt>httpAddrLocalhost()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
352 | <li><a href='#httpAddrLookup'><tt>httpAddrLookup()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
353 | <li><a href='#httpAddrString'><tt>httpAddrString()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
354 | <li><a href='#httpAssembleURI'><tt>httpAssembleURI()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
355 | <li><a href='#httpAssembleURIf'><tt>httpAssembleURIf()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
ecdc0628 | 356 | <li><a href='#httpBlocking'><tt>httpBlocking()</tt></a> </li> |
ef416fc2 | 357 | <li><a href='#httpCheck'><tt>httpCheck()</tt></a> </li> |
358 | <li><a href='#httpClearCookie'><tt>httpClearCookie()</tt></a> <span class='info'> CUPS 1.1.19 </span></li> | |
ecdc0628 | 359 | <li><a href='#httpClearFields'><tt>httpClearFields()</tt></a> </li> |
ef416fc2 | 360 | <li><a href='#httpClose'><tt>httpClose()</tt></a> </li> |
361 | <li><a href='#httpConnect'><tt>httpConnect()</tt></a> </li> | |
362 | <li><a href='#httpConnectEncrypt'><tt>httpConnectEncrypt()</tt></a> </li> | |
ecdc0628 | 363 | <li><a href='#httpDecode64'><tt>httpDecode64()</tt></a> <span class='info'> DEPRECATED </span></li> |
ef416fc2 | 364 | <li><a href='#httpDecode64_2'><tt>httpDecode64_2()</tt></a> <span class='info'> CUPS 1.1.21 </span></li> |
365 | <li><a href='#httpDelete'><tt>httpDelete()</tt></a> </li> | |
ecdc0628 | 366 | <li><a href='#httpEncode64'><tt>httpEncode64()</tt></a> <span class='info'> DEPRECATED </span></li> |
ef416fc2 | 367 | <li><a href='#httpEncode64_2'><tt>httpEncode64_2()</tt></a> <span class='info'> CUPS 1.1.21 </span></li> |
368 | <li><a href='#httpEncryption'><tt>httpEncryption()</tt></a> </li> | |
ecdc0628 | 369 | <li><a href='#httpError'><tt>httpError()</tt></a> </li> |
ef416fc2 | 370 | <li><a href='#httpFlush'><tt>httpFlush()</tt></a> </li> |
371 | <li><a href='#httpFlushWrite'><tt>httpFlushWrite()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
372 | <li><a href='#httpGet'><tt>httpGet()</tt></a> </li> | |
ecdc0628 | 373 | <li><a href='#httpGetBlocking'><tt>httpGetBlocking()</tt></a> <span class='info'> CUPS 1.2 </span></li> |
80ca4592 | 374 | <li><a href='#httpGetCookie'><tt>httpGetCookie()</tt></a> <span class='info'> CUPS 1.1.19 </span></li> |
ef416fc2 | 375 | <li><a href='#httpGetDateString'><tt>httpGetDateString()</tt></a> <span class='info'> DEPRECATED </span></li> |
376 | <li><a href='#httpGetDateString2'><tt>httpGetDateString2()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
377 | <li><a href='#httpGetDateTime'><tt>httpGetDateTime()</tt></a> </li> | |
ecdc0628 | 378 | <li><a href='#httpGetFd'><tt>httpGetFd()</tt></a> <span class='info'> CUPS 1.2 </span></li> |
379 | <li><a href='#httpGetField'><tt>httpGetField()</tt></a> </li> | |
ef416fc2 | 380 | <li><a href='#httpGetHostByName'><tt>httpGetHostByName()</tt></a> <span class='info'> DEPRECATED </span></li> |
381 | <li><a href='#httpGetHostname'><tt>httpGetHostname()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
ecdc0628 | 382 | <li><a href='#httpGetLength'><tt>httpGetLength()</tt></a> <span class='info'> DEPRECATED </span></li> |
383 | <li><a href='#httpGetLength2'><tt>httpGetLength2()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
384 | <li><a href='#httpGetStatus'><tt>httpGetStatus()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
ef416fc2 | 385 | <li><a href='#httpGetSubField'><tt>httpGetSubField()</tt></a> <span class='info'> DEPRECATED </span></li> |
386 | <li><a href='#httpGetSubField2'><tt>httpGetSubField2()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
387 | <li><a href='#httpGets'><tt>httpGets()</tt></a> </li> | |
388 | <li><a href='#httpHead'><tt>httpHead()</tt></a> </li> | |
389 | <li><a href='#httpInitialize'><tt>httpInitialize()</tt></a> </li> | |
390 | <li><a href='#httpMD5'><tt>httpMD5()</tt></a> </li> | |
391 | <li><a href='#httpMD5Final'><tt>httpMD5Final()</tt></a> </li> | |
392 | <li><a href='#httpMD5String'><tt>httpMD5String()</tt></a> </li> | |
393 | <li><a href='#httpOptions'><tt>httpOptions()</tt></a> </li> | |
394 | <li><a href='#httpPost'><tt>httpPost()</tt></a> </li> | |
ef416fc2 | 395 | <li><a href='#httpPut'><tt>httpPut()</tt></a> </li> |
ecdc0628 | 396 | <li><a href='#httpRead'><tt>httpRead()</tt></a> <span class='info'> DEPRECATED </span></li> |
397 | <li><a href='#httpRead2'><tt>httpRead2()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
ef416fc2 | 398 | <li><a href='#httpReconnect'><tt>httpReconnect()</tt></a> </li> |
ecdc0628 | 399 | <li><a href='#httpSeparate'><tt>httpSeparate()</tt></a> <span class='info'> DEPRECATED </span></li> |
ef416fc2 | 400 | <li><a href='#httpSeparate2'><tt>httpSeparate2()</tt></a> <span class='info'> CUPS 1.1.21 </span></li> |
401 | <li><a href='#httpSeparateURI'><tt>httpSeparateURI()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
402 | <li><a href='#httpSetCookie'><tt>httpSetCookie()</tt></a> <span class='info'> CUPS 1.1.19 </span></li> | |
80ca4592 | 403 | <li><a href='#httpSetExpect'><tt>httpSetExpect()</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ef416fc2 | 404 | <li><a href='#httpSetField'><tt>httpSetField()</tt></a> </li> |
405 | <li><a href='#httpSetLength'><tt>httpSetLength()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
406 | <li><a href='#httpStatus'><tt>httpStatus()</tt></a> </li> | |
407 | <li><a href='#httpTrace'><tt>httpTrace()</tt></a> </li> | |
408 | <li><a href='#httpUpdate'><tt>httpUpdate()</tt></a> </li> | |
409 | <li><a href='#httpWait'><tt>httpWait()</tt></a> <span class='info'> CUPS 1.1.19 </span></li> | |
ecdc0628 | 410 | <li><a href='#httpWrite'><tt>httpWrite()</tt></a> <span class='info'> DEPRECATED </span></li> |
411 | <li><a href='#httpWrite2'><tt>httpWrite2()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
ef416fc2 | 412 | <li><a href='#ippAddBoolean'><tt>ippAddBoolean()</tt></a> </li> |
413 | <li><a href='#ippAddBooleans'><tt>ippAddBooleans()</tt></a> </li> | |
414 | <li><a href='#ippAddCollection'><tt>ippAddCollection()</tt></a> <span class='info'> CUPS 1.1.19 </span></li> | |
415 | <li><a href='#ippAddCollections'><tt>ippAddCollections()</tt></a> <span class='info'> CUPS 1.1.19 </span></li> | |
416 | <li><a href='#ippAddDate'><tt>ippAddDate()</tt></a> </li> | |
417 | <li><a href='#ippAddInteger'><tt>ippAddInteger()</tt></a> </li> | |
ecdc0628 | 418 | <li><a href='#ippAddIntegers'><tt>ippAddIntegers()</tt></a> </li> |
419 | <li><a href='#ippAddOctetString'><tt>ippAddOctetString()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
420 | <li><a href='#ippAddRange'><tt>ippAddRange()</tt></a> </li> | |
421 | <li><a href='#ippAddRanges'><tt>ippAddRanges()</tt></a> </li> | |
422 | <li><a href='#ippAddResolution'><tt>ippAddResolution()</tt></a> </li> | |
423 | <li><a href='#ippAddResolutions'><tt>ippAddResolutions()</tt></a> </li> | |
424 | <li><a href='#ippAddSeparator'><tt>ippAddSeparator()</tt></a> </li> | |
425 | <li><a href='#ippAddString'><tt>ippAddString()</tt></a> </li> | |
426 | <li><a href='#ippAddStrings'><tt>ippAddStrings()</tt></a> </li> | |
427 | <li><a href='#ippDateToTime'><tt>ippDateToTime()</tt></a> </li> | |
428 | <li><a href='#ippDelete'><tt>ippDelete()</tt></a> </li> | |
429 | <li><a href='#ippDeleteAttribute'><tt>ippDeleteAttribute()</tt></a> <span class='info'> CUPS 1.1.19 </span></li> | |
430 | <li><a href='#ippErrorString'><tt>ippErrorString()</tt></a> </li> | |
431 | <li><a href='#ippErrorValue'><tt>ippErrorValue()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
432 | <li><a href='#ippFindAttribute'><tt>ippFindAttribute()</tt></a> </li> | |
433 | <li><a href='#ippFindNextAttribute'><tt>ippFindNextAttribute()</tt></a> </li> | |
434 | <li><a href='#ippLength'><tt>ippLength()</tt></a> </li> | |
435 | <li><a href='#ippNew'><tt>ippNew()</tt></a> </li> | |
436 | <li><a href='#ippNewRequest'><tt>ippNewRequest()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
437 | <li><a href='#ippOpString'><tt>ippOpString()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
438 | <li><a href='#ippOpValue'><tt>ippOpValue()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
439 | <li><a href='#ippPort'><tt>ippPort()</tt></a> </li> | |
440 | <li><a href='#ippRead'><tt>ippRead()</tt></a> </li> | |
441 | <li><a href='#ippReadFile'><tt>ippReadFile()</tt></a> <span class='info'> CUPS 1.1.19 </span></li> | |
442 | <li><a href='#ippReadIO'><tt>ippReadIO()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
443 | <li><a href='#ippSetPort'><tt>ippSetPort()</tt></a> </li> | |
444 | <li><a href='#ippTimeToDate'><tt>ippTimeToDate()</tt></a> </li> | |
445 | <li><a href='#ippWrite'><tt>ippWrite()</tt></a> </li> | |
446 | <li><a href='#ippWriteFile'><tt>ippWriteFile()</tt></a> <span class='info'> CUPS 1.1.19 </span></li> | |
447 | <li><a href='#ippWriteIO'><tt>ippWriteIO()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
448 | </ul> | |
ef416fc2 | 449 | <!-- NEW PAGE --> |
ecdc0628 | 450 | <h3 class='title'><span class='info'> CUPS 1.1.20 </span><a name='cupsDoAuthentication'>cupsDoAuthentication()</a></h3> |
ef416fc2 | 451 | <h4>Description</h4> |
ecdc0628 | 452 | <p>Authenticate a request. |
453 | ||
454 | This function should be called in response to a HTTP_UNAUTHORIZED | |
455 | status, prior to resubmitting your request. | |
ef416fc2 | 456 | |
457 | </p> | |
458 | <h4>Syntax</h4> | |
459 | <pre> | |
460 | int | |
ecdc0628 | 461 | cupsDoAuthentication( |
ef416fc2 | 462 | <a href='#http_t'>http_t</a> * http, |
ecdc0628 | 463 | const char * method, |
464 | const char * resource); | |
ef416fc2 | 465 | </pre> |
466 | <h4>Arguments</h4> | |
467 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
468 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
469 | <tbody> | |
ecdc0628 | 470 | <tr><td><tt>http</tt></td><td>HTTP connection to server</td></tr> |
471 | <tr><td><tt>method</tt></td><td>Request method (GET, POST, PUT)</td></tr> | |
472 | <tr><td><tt>resource</tt></td><td>Resource path</td></tr> | |
ef416fc2 | 473 | </tbody></table></div> |
474 | <h4>Returns</h4> | |
ecdc0628 | 475 | <p>0 on success, -1 on error</p> |
ef416fc2 | 476 | <!-- NEW PAGE --> |
ecdc0628 | 477 | <h3 class='title'><a name='cupsDoFileRequest'>cupsDoFileRequest()</a></h3> |
ef416fc2 | 478 | <h4>Description</h4> |
ecdc0628 | 479 | <p>Do an IPP request with a file. |
ef416fc2 | 480 | |
ecdc0628 | 481 | This function sends the IPP request to the specified server, retrying |
482 | and authenticating as necessary. The request is freed with ippDelete() | |
483 | after receiving a valid IPP response.</p> | |
ef416fc2 | 484 | <h4>Syntax</h4> |
485 | <pre> | |
ecdc0628 | 486 | <a href='#ipp_t'>ipp_t</a> * |
487 | cupsDoFileRequest( | |
ef416fc2 | 488 | <a href='#http_t'>http_t</a> * http, |
ecdc0628 | 489 | <a href='#ipp_t'>ipp_t</a> * request, |
490 | const char * resource, | |
491 | const char * filename); | |
ef416fc2 | 492 | </pre> |
493 | <h4>Arguments</h4> | |
494 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
495 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
496 | <tbody> | |
497 | <tr><td><tt>http</tt></td><td>HTTP connection to server</td></tr> | |
ecdc0628 | 498 | <tr><td><tt>request</tt></td><td>IPP request</td></tr> |
499 | <tr><td><tt>resource</tt></td><td>HTTP resource for POST</td></tr> | |
500 | <tr><td><tt>filename</tt></td><td>File to send or NULL for none</td></tr> | |
ef416fc2 | 501 | </tbody></table></div> |
502 | <h4>Returns</h4> | |
ecdc0628 | 503 | <p>Response data</p> |
ef416fc2 | 504 | <!-- NEW PAGE --> |
ecdc0628 | 505 | <h3 class='title'><a name='cupsDoRequest'>cupsDoRequest()</a></h3> |
ef416fc2 | 506 | <h4>Description</h4> |
ecdc0628 | 507 | <p>Do an IPP request. |
ef416fc2 | 508 | |
ecdc0628 | 509 | This function sends the IPP request to the specified server, retrying |
510 | and authenticating as necessary. The request is freed with ippDelete() | |
511 | after receiving a valid IPP response.</p> | |
ef416fc2 | 512 | <h4>Syntax</h4> |
513 | <pre> | |
ecdc0628 | 514 | <a href='#ipp_t'>ipp_t</a> * |
515 | cupsDoRequest( | |
ef416fc2 | 516 | <a href='#http_t'>http_t</a> * http, |
ecdc0628 | 517 | <a href='#ipp_t'>ipp_t</a> * request, |
518 | const char * resource); | |
ef416fc2 | 519 | </pre> |
520 | <h4>Arguments</h4> | |
521 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
522 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
523 | <tbody> | |
524 | <tr><td><tt>http</tt></td><td>HTTP connection to server</td></tr> | |
ecdc0628 | 525 | <tr><td><tt>request</tt></td><td>IPP request</td></tr> |
526 | <tr><td><tt>resource</tt></td><td>HTTP resource for POST</td></tr> | |
ef416fc2 | 527 | </tbody></table></div> |
528 | <h4>Returns</h4> | |
ecdc0628 | 529 | <p>Response data</p> |
ef416fc2 | 530 | <!-- NEW PAGE --> |
ecdc0628 | 531 | <h3 class='title'><a name='cupsEncodeOptions'>cupsEncodeOptions()</a></h3> |
ef416fc2 | 532 | <h4>Description</h4> |
ecdc0628 | 533 | <p>Encode printer options into IPP attributes. |
ef416fc2 | 534 | |
ecdc0628 | 535 | This function adds operation, job, and then subscription attributes, |
536 | in that order. Use the cupsEncodeOptions2() function to add attributes | |
537 | for a single group.</p> | |
ef416fc2 | 538 | <h4>Syntax</h4> |
539 | <pre> | |
540 | void | |
ecdc0628 | 541 | cupsEncodeOptions( |
542 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
543 | int num_options, | |
544 | cups_option_t * options); | |
ef416fc2 | 545 | </pre> |
546 | <h4>Arguments</h4> | |
547 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
548 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
549 | <tbody> | |
ecdc0628 | 550 | <tr><td><tt>ipp</tt></td><td>Request to add to</td></tr> |
551 | <tr><td><tt>num_options</tt></td><td>Number of options</td></tr> | |
552 | <tr><td><tt>options</tt></td><td>Options</td></tr> | |
ef416fc2 | 553 | </tbody></table></div> |
554 | <h4>Returns</h4> | |
555 | <p>Nothing.</p> | |
556 | <!-- NEW PAGE --> | |
ecdc0628 | 557 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='cupsEncodeOptions2'>cupsEncodeOptions2()</a></h3> |
ef416fc2 | 558 | <h4>Description</h4> |
ecdc0628 | 559 | <p>Encode printer options into IPP attributes for a group. |
ef416fc2 | 560 | |
ecdc0628 | 561 | This function only adds attributes for a single group. Call this |
562 | function multiple times for each group, or use cupsEncodeOptions() | |
563 | to add the standard groups. | |
ef416fc2 | 564 | |
565 | </p> | |
566 | <h4>Syntax</h4> | |
567 | <pre> | |
ef416fc2 | 568 | void |
ecdc0628 | 569 | cupsEncodeOptions2( |
570 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
571 | int num_options, | |
572 | cups_option_t * options, | |
573 | ipp_tag_t group_tag); | |
ef416fc2 | 574 | </pre> |
575 | <h4>Arguments</h4> | |
576 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
577 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
578 | <tbody> | |
ecdc0628 | 579 | <tr><td><tt>ipp</tt></td><td>Request to add to</td></tr> |
580 | <tr><td><tt>num_options</tt></td><td>Number of options</td></tr> | |
581 | <tr><td><tt>options</tt></td><td>Options</td></tr> | |
582 | <tr><td><tt>group_tag</tt></td><td>Group to encode</td></tr> | |
ef416fc2 | 583 | </tbody></table></div> |
584 | <h4>Returns</h4> | |
585 | <p>Nothing.</p> | |
586 | <!-- NEW PAGE --> | |
ef416fc2 | 587 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpAddrAny'>httpAddrAny()</a></h3> |
588 | <h4>Description</h4> | |
589 | <p>Check for the "any" address. | |
590 | ||
591 | </p> | |
592 | <h4>Syntax</h4> | |
593 | <pre> | |
594 | int | |
595 | httpAddrAny( | |
596 | const <a href='#http_addr_t'>http_addr_t</a> * addr); | |
597 | </pre> | |
598 | <h4>Arguments</h4> | |
599 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
600 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
601 | <tbody> | |
602 | <tr><td><tt>addr</tt></td><td>Address to check</td></tr> | |
603 | </tbody></table></div> | |
604 | <h4>Returns</h4> | |
605 | <p>1 if "any", 0 otherwise</p> | |
606 | <!-- NEW PAGE --> | |
607 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpAddrEqual'>httpAddrEqual()</a></h3> | |
608 | <h4>Description</h4> | |
609 | <p>Compare two addresses. | |
610 | ||
611 | </p> | |
612 | <h4>Syntax</h4> | |
613 | <pre> | |
614 | int | |
615 | httpAddrEqual( | |
616 | const <a href='#http_addr_t'>http_addr_t</a> * addr1, | |
617 | const <a href='#http_addr_t'>http_addr_t</a> * addr2); | |
618 | </pre> | |
619 | <h4>Arguments</h4> | |
620 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
621 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
622 | <tbody> | |
623 | <tr><td><tt>addr1</tt></td><td>First address</td></tr> | |
624 | <tr><td><tt>addr2</tt></td><td>Second address</td></tr> | |
625 | </tbody></table></div> | |
626 | <h4>Returns</h4> | |
ecdc0628 | 627 | <p>1 if equal, 0 if not</p> |
ef416fc2 | 628 | <!-- NEW PAGE --> |
629 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpAddrLength'>httpAddrLength()</a></h3> | |
630 | <h4>Description</h4> | |
631 | <p>Return the length of the address in bytes. | |
632 | ||
633 | </p> | |
634 | <h4>Syntax</h4> | |
635 | <pre> | |
636 | int | |
637 | httpAddrLength( | |
638 | const <a href='#http_addr_t'>http_addr_t</a> * addr); | |
639 | </pre> | |
640 | <h4>Arguments</h4> | |
641 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
642 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
643 | <tbody> | |
644 | <tr><td><tt>addr</tt></td><td>Address</td></tr> | |
645 | </tbody></table></div> | |
646 | <h4>Returns</h4> | |
647 | <p>Length in bytes</p> | |
648 | <!-- NEW PAGE --> | |
649 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpAddrLocalhost'>httpAddrLocalhost()</a></h3> | |
650 | <h4>Description</h4> | |
651 | <p>Check for the local loopback address. | |
652 | ||
653 | </p> | |
654 | <h4>Syntax</h4> | |
655 | <pre> | |
656 | int | |
657 | httpAddrLocalhost( | |
658 | const <a href='#http_addr_t'>http_addr_t</a> * addr); | |
659 | </pre> | |
660 | <h4>Arguments</h4> | |
661 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
662 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
663 | <tbody> | |
664 | <tr><td><tt>addr</tt></td><td>Address to check</td></tr> | |
665 | </tbody></table></div> | |
666 | <h4>Returns</h4> | |
667 | <p>1 if local host, 0 otherwise</p> | |
668 | <!-- NEW PAGE --> | |
669 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpAddrLookup'>httpAddrLookup()</a></h3> | |
670 | <h4>Description</h4> | |
671 | <p>Lookup the hostname associated with the address. | |
672 | ||
673 | </p> | |
674 | <h4>Syntax</h4> | |
675 | <pre> | |
ecdc0628 | 676 | char * |
ef416fc2 | 677 | httpAddrLookup( |
678 | const <a href='#http_addr_t'>http_addr_t</a> * addr, | |
ecdc0628 | 679 | char * name, |
ef416fc2 | 680 | int namelen); |
681 | </pre> | |
682 | <h4>Arguments</h4> | |
683 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
684 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
685 | <tbody> | |
686 | <tr><td><tt>addr</tt></td><td>Address to lookup</td></tr> | |
687 | <tr><td><tt>name</tt></td><td>Host name buffer</td></tr> | |
688 | <tr><td><tt>namelen</tt></td><td>Size of name buffer</td></tr> | |
689 | </tbody></table></div> | |
690 | <h4>Returns</h4> | |
691 | <p>Host name</p> | |
692 | <!-- NEW PAGE --> | |
693 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpAddrString'>httpAddrString()</a></h3> | |
694 | <h4>Description</h4> | |
ecdc0628 | 695 | <p>Convert an address to a numeric string. |
ef416fc2 | 696 | |
697 | </p> | |
698 | <h4>Syntax</h4> | |
699 | <pre> | |
ecdc0628 | 700 | char * |
ef416fc2 | 701 | httpAddrString( |
702 | const <a href='#http_addr_t'>http_addr_t</a> * addr, | |
ecdc0628 | 703 | char * s, |
ef416fc2 | 704 | int slen); |
705 | </pre> | |
706 | <h4>Arguments</h4> | |
707 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
708 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
709 | <tbody> | |
710 | <tr><td><tt>addr</tt></td><td>Address to convert</td></tr> | |
711 | <tr><td><tt>s</tt></td><td>String buffer</td></tr> | |
712 | <tr><td><tt>slen</tt></td><td>Length of string</td></tr> | |
713 | </tbody></table></div> | |
714 | <h4>Returns</h4> | |
ecdc0628 | 715 | <p>Numeric address string</p> |
ef416fc2 | 716 | <!-- NEW PAGE --> |
717 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpAssembleURI'>httpAssembleURI()</a></h3> | |
718 | <h4>Description</h4> | |
719 | <p>Assemble a uniform resource identifier from its | |
720 | components. | |
721 | ||
ecdc0628 | 722 | This function escapes reserved characters in the URI depending on the |
723 | value of the "encoding" argument. You should use this function in | |
724 | place of traditional string functions whenever you need to create a | |
725 | URI string. | |
ef416fc2 | 726 | |
727 | </p> | |
728 | <h4>Syntax</h4> | |
729 | <pre> | |
730 | http_uri_status_t | |
731 | httpAssembleURI( | |
ecdc0628 | 732 | http_uri_coding_t encoding, |
733 | char * uri, | |
ef416fc2 | 734 | int urilen, |
ecdc0628 | 735 | const char * scheme, |
736 | const char * username, | |
737 | const char * host, | |
ef416fc2 | 738 | int port, |
ecdc0628 | 739 | const char * resource); |
ef416fc2 | 740 | </pre> |
741 | <h4>Arguments</h4> | |
742 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
743 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
744 | <tbody> | |
ecdc0628 | 745 | <tr><td><tt>encoding</tt></td><td>Encoding flags</td></tr> |
ef416fc2 | 746 | <tr><td><tt>uri</tt></td><td>URI buffer</td></tr> |
747 | <tr><td><tt>urilen</tt></td><td>Size of URI buffer</td></tr> | |
748 | <tr><td><tt>scheme</tt></td><td>Scheme name</td></tr> | |
749 | <tr><td><tt>username</tt></td><td>Username</td></tr> | |
750 | <tr><td><tt>host</tt></td><td>Hostname or address</td></tr> | |
751 | <tr><td><tt>port</tt></td><td>Port number</td></tr> | |
752 | <tr><td><tt>resource</tt></td><td>Resource</td></tr> | |
753 | </tbody></table></div> | |
754 | <h4>Returns</h4> | |
755 | <p>URI status</p> | |
756 | <!-- NEW PAGE --> | |
757 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpAssembleURIf'>httpAssembleURIf()</a></h3> | |
758 | <h4>Description</h4> | |
759 | <p>Assemble a uniform resource identifier from its | |
760 | components with a formatted resource. | |
761 | ||
762 | This function creates a formatted version of the resource string | |
ecdc0628 | 763 | argument "resourcef" and escapes reserved characters in the URI |
764 | depending on the value of the "encoding" argument. You should use | |
765 | this function in place of traditional string functions whenever | |
766 | you need to create a URI string. | |
ef416fc2 | 767 | |
768 | </p> | |
769 | <h4>Syntax</h4> | |
770 | <pre> | |
771 | http_uri_status_t | |
772 | httpAssembleURIf( | |
ecdc0628 | 773 | http_uri_coding_t encoding, |
774 | char * uri, | |
ef416fc2 | 775 | int urilen, |
ecdc0628 | 776 | const char * scheme, |
777 | const char * username, | |
778 | const char * host, | |
ef416fc2 | 779 | int port, |
ecdc0628 | 780 | const char * resourcef, |
ef416fc2 | 781 | ...); |
782 | </pre> | |
783 | <h4>Arguments</h4> | |
784 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
785 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
786 | <tbody> | |
ecdc0628 | 787 | <tr><td><tt>encoding</tt></td><td>Encoding flags</td></tr> |
ef416fc2 | 788 | <tr><td><tt>uri</tt></td><td>URI buffer</td></tr> |
789 | <tr><td><tt>urilen</tt></td><td>Size of URI buffer</td></tr> | |
790 | <tr><td><tt>scheme</tt></td><td>Scheme name</td></tr> | |
791 | <tr><td><tt>username</tt></td><td>Username</td></tr> | |
792 | <tr><td><tt>host</tt></td><td>Hostname or address</td></tr> | |
793 | <tr><td><tt>port</tt></td><td>Port number</td></tr> | |
794 | <tr><td><tt>resourcef</tt></td><td>Printf-style resource</td></tr> | |
795 | <tr><td><tt>...</tt></td><td>Additional arguments as needed</td></tr> | |
796 | </tbody></table></div> | |
797 | <h4>Returns</h4> | |
798 | <p>URI status</p> | |
799 | <!-- NEW PAGE --> | |
ecdc0628 | 800 | <h3 class='title'><a name='httpBlocking'>httpBlocking()</a></h3> |
801 | <h4>Description</h4> | |
802 | <p>Set blocking/non-blocking behavior on a connection.</p> | |
803 | <h4>Syntax</h4> | |
804 | <pre> | |
805 | void | |
806 | httpBlocking( | |
807 | <a href='#http_t'>http_t</a> * http, | |
808 | int b); | |
809 | </pre> | |
810 | <h4>Arguments</h4> | |
811 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
812 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
813 | <tbody> | |
814 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> | |
815 | <tr><td><tt>b</tt></td><td>1 = blocking, 0 = non-blocking</td></tr> | |
816 | </tbody></table></div> | |
817 | <h4>Returns</h4> | |
818 | <p>Nothing.</p> | |
819 | <!-- NEW PAGE --> | |
ef416fc2 | 820 | <h3 class='title'><a name='httpCheck'>httpCheck()</a></h3> |
821 | <h4>Description</h4> | |
822 | <p>Check to see if there is a pending response from the server.</p> | |
823 | <h4>Syntax</h4> | |
824 | <pre> | |
825 | int | |
826 | httpCheck( | |
827 | <a href='#http_t'>http_t</a> * http); | |
828 | </pre> | |
829 | <h4>Arguments</h4> | |
830 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
831 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
832 | <tbody> | |
833 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> | |
834 | </tbody></table></div> | |
835 | <h4>Returns</h4> | |
836 | <p>0 = no data, 1 = data available</p> | |
837 | <!-- NEW PAGE --> | |
838 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='httpClearCookie'>httpClearCookie()</a></h3> | |
839 | <h4>Description</h4> | |
840 | <p>Clear the cookie value(s). | |
841 | ||
842 | </p> | |
843 | <h4>Syntax</h4> | |
844 | <pre> | |
845 | void | |
846 | httpClearCookie( | |
847 | <a href='#http_t'>http_t</a> * http); | |
848 | </pre> | |
849 | <h4>Arguments</h4> | |
850 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
851 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
852 | <tbody> | |
ecdc0628 | 853 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
854 | </tbody></table></div> | |
855 | <h4>Returns</h4> | |
856 | <p>Nothing.</p> | |
857 | <!-- NEW PAGE --> | |
858 | <h3 class='title'><a name='httpClearFields'>httpClearFields()</a></h3> | |
859 | <h4>Description</h4> | |
860 | <p>Clear HTTP request fields.</p> | |
861 | <h4>Syntax</h4> | |
862 | <pre> | |
863 | void | |
864 | httpClearFields( | |
865 | <a href='#http_t'>http_t</a> * http); | |
866 | </pre> | |
867 | <h4>Arguments</h4> | |
868 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
869 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
870 | <tbody> | |
871 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> | |
ef416fc2 | 872 | </tbody></table></div> |
873 | <h4>Returns</h4> | |
874 | <p>Nothing.</p> | |
875 | <!-- NEW PAGE --> | |
876 | <h3 class='title'><a name='httpClose'>httpClose()</a></h3> | |
877 | <h4>Description</h4> | |
878 | <p>Close an HTTP connection...</p> | |
879 | <h4>Syntax</h4> | |
880 | <pre> | |
881 | void | |
882 | httpClose( | |
883 | <a href='#http_t'>http_t</a> * http); | |
884 | </pre> | |
885 | <h4>Arguments</h4> | |
886 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
887 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
888 | <tbody> | |
ecdc0628 | 889 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 890 | </tbody></table></div> |
891 | <h4>Returns</h4> | |
892 | <p>Nothing.</p> | |
893 | <!-- NEW PAGE --> | |
894 | <h3 class='title'><a name='httpConnect'>httpConnect()</a></h3> | |
895 | <h4>Description</h4> | |
896 | <p>Connect to a HTTP server.</p> | |
897 | <h4>Syntax</h4> | |
898 | <pre> | |
899 | <a href='#http_t'>http_t</a> * | |
900 | httpConnect( | |
ecdc0628 | 901 | const char * host, |
ef416fc2 | 902 | int port); |
903 | </pre> | |
904 | <h4>Arguments</h4> | |
905 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
906 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
907 | <tbody> | |
908 | <tr><td><tt>host</tt></td><td>Host to connect to</td></tr> | |
909 | <tr><td><tt>port</tt></td><td>Port number</td></tr> | |
910 | </tbody></table></div> | |
911 | <h4>Returns</h4> | |
912 | <p>New HTTP connection</p> | |
913 | <!-- NEW PAGE --> | |
914 | <h3 class='title'><a name='httpConnectEncrypt'>httpConnectEncrypt()</a></h3> | |
915 | <h4>Description</h4> | |
916 | <p>Connect to a HTTP server using encryption.</p> | |
917 | <h4>Syntax</h4> | |
918 | <pre> | |
919 | <a href='#http_t'>http_t</a> * | |
920 | httpConnectEncrypt( | |
ecdc0628 | 921 | const char * host, |
ef416fc2 | 922 | int port, |
923 | <a href='#http_encryption_t'>http_encryption_t</a> encryption); | |
924 | </pre> | |
925 | <h4>Arguments</h4> | |
926 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
927 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
928 | <tbody> | |
929 | <tr><td><tt>host</tt></td><td>Host to connect to</td></tr> | |
930 | <tr><td><tt>port</tt></td><td>Port number</td></tr> | |
931 | <tr><td><tt>encryption</tt></td><td>Type of encryption to use</td></tr> | |
932 | </tbody></table></div> | |
933 | <h4>Returns</h4> | |
934 | <p>New HTTP connection</p> | |
935 | <!-- NEW PAGE --> | |
ecdc0628 | 936 | <h3 class='title'><span class='info'> DEPRECATED </span><a name='httpDecode64'>httpDecode64()</a></h3> |
ef416fc2 | 937 | <h4>Description</h4> |
ecdc0628 | 938 | <p>Base64-decode a string. |
939 | ||
940 | This function is deprecated. Use the httpDecode64_2() function instead | |
941 | which provides buffer length arguments. | |
942 | ||
943 | </p> | |
ef416fc2 | 944 | <h4>Syntax</h4> |
945 | <pre> | |
ecdc0628 | 946 | char * |
ef416fc2 | 947 | httpDecode64( |
ecdc0628 | 948 | char * out, |
949 | const char * in); | |
ef416fc2 | 950 | </pre> |
951 | <h4>Arguments</h4> | |
952 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
953 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
954 | <tbody> | |
955 | <tr><td><tt>out</tt></td><td>String to write to</td></tr> | |
956 | <tr><td><tt>in</tt></td><td>String to read from</td></tr> | |
957 | </tbody></table></div> | |
958 | <h4>Returns</h4> | |
959 | <p>Decoded string</p> | |
960 | <!-- NEW PAGE --> | |
961 | <h3 class='title'><span class='info'> CUPS 1.1.21 </span><a name='httpDecode64_2'>httpDecode64_2()</a></h3> | |
962 | <h4>Description</h4> | |
963 | <p>Base64-decode a string. | |
964 | ||
965 | </p> | |
966 | <h4>Syntax</h4> | |
967 | <pre> | |
ecdc0628 | 968 | char * |
ef416fc2 | 969 | httpDecode64_2( |
ecdc0628 | 970 | char * out, |
ef416fc2 | 971 | int * outlen, |
ecdc0628 | 972 | const char * in); |
ef416fc2 | 973 | </pre> |
974 | <h4>Arguments</h4> | |
975 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
976 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
977 | <tbody> | |
978 | <tr><td><tt>out</tt></td><td>String to write to</td></tr> | |
979 | <tr><td><tt>outlen</tt></td><td>Size of output string</td></tr> | |
980 | <tr><td><tt>in</tt></td><td>String to read from</td></tr> | |
981 | </tbody></table></div> | |
982 | <h4>Returns</h4> | |
983 | <p>Decoded string</p> | |
984 | <!-- NEW PAGE --> | |
985 | <h3 class='title'><a name='httpDelete'>httpDelete()</a></h3> | |
986 | <h4>Description</h4> | |
987 | <p>Send a DELETE request to the server.</p> | |
988 | <h4>Syntax</h4> | |
989 | <pre> | |
990 | int | |
991 | httpDelete( | |
992 | <a href='#http_t'>http_t</a> * http, | |
ecdc0628 | 993 | const char * uri); |
ef416fc2 | 994 | </pre> |
995 | <h4>Arguments</h4> | |
996 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
997 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
998 | <tbody> | |
ecdc0628 | 999 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1000 | <tr><td><tt>uri</tt></td><td>URI to delete</td></tr> |
1001 | </tbody></table></div> | |
1002 | <h4>Returns</h4> | |
1003 | <p>Status of call (0 = success)</p> | |
1004 | <!-- NEW PAGE --> | |
ecdc0628 | 1005 | <h3 class='title'><span class='info'> DEPRECATED </span><a name='httpEncode64'>httpEncode64()</a></h3> |
ef416fc2 | 1006 | <h4>Description</h4> |
ecdc0628 | 1007 | <p>Base64-encode a string. |
1008 | ||
1009 | This function is deprecated. Use the httpEncode64_2() function instead | |
1010 | which provides buffer length arguments. | |
1011 | ||
1012 | </p> | |
ef416fc2 | 1013 | <h4>Syntax</h4> |
1014 | <pre> | |
ecdc0628 | 1015 | char * |
ef416fc2 | 1016 | httpEncode64( |
ecdc0628 | 1017 | char * out, |
1018 | const char * in); | |
ef416fc2 | 1019 | </pre> |
1020 | <h4>Arguments</h4> | |
1021 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1022 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1023 | <tbody> | |
1024 | <tr><td><tt>out</tt></td><td>String to write to</td></tr> | |
1025 | <tr><td><tt>in</tt></td><td>String to read from</td></tr> | |
1026 | </tbody></table></div> | |
1027 | <h4>Returns</h4> | |
1028 | <p>Encoded string</p> | |
1029 | <!-- NEW PAGE --> | |
1030 | <h3 class='title'><span class='info'> CUPS 1.1.21 </span><a name='httpEncode64_2'>httpEncode64_2()</a></h3> | |
1031 | <h4>Description</h4> | |
1032 | <p>Base64-encode a string. | |
1033 | ||
1034 | </p> | |
1035 | <h4>Syntax</h4> | |
1036 | <pre> | |
ecdc0628 | 1037 | char * |
ef416fc2 | 1038 | httpEncode64_2( |
ecdc0628 | 1039 | char * out, |
ef416fc2 | 1040 | int outlen, |
ecdc0628 | 1041 | const char * in, |
ef416fc2 | 1042 | int inlen); |
1043 | </pre> | |
1044 | <h4>Arguments</h4> | |
1045 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1046 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1047 | <tbody> | |
1048 | <tr><td><tt>out</tt></td><td>String to write to</td></tr> | |
1049 | <tr><td><tt>outlen</tt></td><td>Size of output string</td></tr> | |
1050 | <tr><td><tt>in</tt></td><td>String to read from</td></tr> | |
1051 | <tr><td><tt>inlen</tt></td><td>Size of input string</td></tr> | |
1052 | </tbody></table></div> | |
1053 | <h4>Returns</h4> | |
1054 | <p>Encoded string</p> | |
1055 | <!-- NEW PAGE --> | |
1056 | <h3 class='title'><a name='httpEncryption'>httpEncryption()</a></h3> | |
1057 | <h4>Description</h4> | |
1058 | <p>Set the required encryption on the link.</p> | |
1059 | <h4>Syntax</h4> | |
1060 | <pre> | |
1061 | int | |
1062 | httpEncryption( | |
1063 | <a href='#http_t'>http_t</a> * http, | |
1064 | <a href='#http_encryption_t'>http_encryption_t</a> e); | |
1065 | </pre> | |
1066 | <h4>Arguments</h4> | |
1067 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1068 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1069 | <tbody> | |
ecdc0628 | 1070 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1071 | <tr><td><tt>e</tt></td><td>New encryption preference</td></tr> |
1072 | </tbody></table></div> | |
1073 | <h4>Returns</h4> | |
1074 | <p>-1 on error, 0 on success</p> | |
1075 | <!-- NEW PAGE --> | |
ecdc0628 | 1076 | <h3 class='title'><a name='httpError'>httpError()</a></h3> |
1077 | <h4>Description</h4> | |
1078 | <p>Get the last error on a connection.</p> | |
1079 | <h4>Syntax</h4> | |
1080 | <pre> | |
1081 | int | |
1082 | httpError( | |
1083 | <a href='#http_t'>http_t</a> * http); | |
1084 | </pre> | |
1085 | <h4>Arguments</h4> | |
1086 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1087 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1088 | <tbody> | |
1089 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> | |
1090 | </tbody></table></div> | |
1091 | <h4>Returns</h4> | |
1092 | <p>Error code (errno) value</p> | |
1093 | <!-- NEW PAGE --> | |
ef416fc2 | 1094 | <h3 class='title'><a name='httpFlush'>httpFlush()</a></h3> |
1095 | <h4>Description</h4> | |
1096 | <p>Flush data from a HTTP connection.</p> | |
1097 | <h4>Syntax</h4> | |
1098 | <pre> | |
1099 | void | |
1100 | httpFlush( | |
1101 | <a href='#http_t'>http_t</a> * http); | |
1102 | </pre> | |
1103 | <h4>Arguments</h4> | |
1104 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1105 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1106 | <tbody> | |
ecdc0628 | 1107 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1108 | </tbody></table></div> |
1109 | <h4>Returns</h4> | |
1110 | <p>Nothing.</p> | |
1111 | <!-- NEW PAGE --> | |
1112 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpFlushWrite'>httpFlushWrite()</a></h3> | |
1113 | <h4>Description</h4> | |
1114 | <p>Flush data in write buffer. | |
1115 | ||
1116 | </p> | |
1117 | <h4>Syntax</h4> | |
1118 | <pre> | |
1119 | int | |
1120 | httpFlushWrite( | |
1121 | <a href='#http_t'>http_t</a> * http); | |
1122 | </pre> | |
1123 | <h4>Arguments</h4> | |
1124 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1125 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1126 | <tbody> | |
ecdc0628 | 1127 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
1128 | </tbody></table></div> | |
1129 | <h4>Returns</h4> | |
1130 | <p>Bytes written or -1 on error</p> | |
1131 | <!-- NEW PAGE --> | |
1132 | <h3 class='title'><a name='httpGet'>httpGet()</a></h3> | |
1133 | <h4>Description</h4> | |
1134 | <p>Send a GET request to the server.</p> | |
1135 | <h4>Syntax</h4> | |
1136 | <pre> | |
1137 | int | |
1138 | httpGet( | |
1139 | <a href='#http_t'>http_t</a> * http, | |
1140 | const char * uri); | |
1141 | </pre> | |
1142 | <h4>Arguments</h4> | |
1143 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1144 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1145 | <tbody> | |
1146 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> | |
1147 | <tr><td><tt>uri</tt></td><td>URI to get</td></tr> | |
1148 | </tbody></table></div> | |
1149 | <h4>Returns</h4> | |
1150 | <p>Status of call (0 = success)</p> | |
1151 | <!-- NEW PAGE --> | |
1152 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpGetBlocking'>httpGetBlocking()</a></h3> | |
1153 | <h4>Description</h4> | |
1154 | <p>Get the blocking/non-block state of a connection. | |
1155 | ||
1156 | </p> | |
1157 | <h4>Syntax</h4> | |
1158 | <pre> | |
1159 | int | |
1160 | httpGetBlocking( | |
1161 | <a href='#http_t'>http_t</a> * http); | |
1162 | </pre> | |
1163 | <h4>Arguments</h4> | |
1164 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1165 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1166 | <tbody> | |
1167 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> | |
ef416fc2 | 1168 | </tbody></table></div> |
1169 | <h4>Returns</h4> | |
ecdc0628 | 1170 | <p>1 if blocking, 0 if non-blocking</p> |
ef416fc2 | 1171 | <!-- NEW PAGE --> |
80ca4592 | 1172 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='httpGetCookie'>httpGetCookie()</a></h3> |
ef416fc2 | 1173 | <h4>Description</h4> |
80ca4592 | 1174 | <p>Get any cookie data from the response. |
1175 | ||
1176 | </p> | |
ef416fc2 | 1177 | <h4>Syntax</h4> |
1178 | <pre> | |
ecdc0628 | 1179 | const char * |
1180 | httpGetCookie( | |
1181 | <a href='#http_t'>http_t</a> * http); | |
ef416fc2 | 1182 | </pre> |
1183 | <h4>Arguments</h4> | |
1184 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1185 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1186 | <tbody> | |
ecdc0628 | 1187 | <tr><td><tt>http</tt></td><td>HTTP connecion</td></tr> |
ef416fc2 | 1188 | </tbody></table></div> |
1189 | <h4>Returns</h4> | |
ecdc0628 | 1190 | <p>Cookie data or NULL</p> |
ef416fc2 | 1191 | <!-- NEW PAGE --> |
1192 | <h3 class='title'><span class='info'> DEPRECATED </span><a name='httpGetDateString'>httpGetDateString()</a></h3> | |
1193 | <h4>Description</h4> | |
1194 | <p>Get a formatted date/time string from a time value. | |
1195 | ||
1196 | </p> | |
1197 | <h4>Syntax</h4> | |
1198 | <pre> | |
ecdc0628 | 1199 | const char * |
ef416fc2 | 1200 | httpGetDateString( |
1201 | time_t t); | |
1202 | </pre> | |
1203 | <h4>Arguments</h4> | |
1204 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1205 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1206 | <tbody> | |
1207 | <tr><td><tt>t</tt></td><td>UNIX time</td></tr> | |
1208 | </tbody></table></div> | |
1209 | <h4>Returns</h4> | |
1210 | <p>Date/time string</p> | |
1211 | <!-- NEW PAGE --> | |
1212 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpGetDateString2'>httpGetDateString2()</a></h3> | |
1213 | <h4>Description</h4> | |
1214 | <p>Get a formatted date/time string from a time value. | |
1215 | ||
1216 | </p> | |
1217 | <h4>Syntax</h4> | |
1218 | <pre> | |
ecdc0628 | 1219 | const char * |
ef416fc2 | 1220 | httpGetDateString2( |
1221 | time_t t, | |
ecdc0628 | 1222 | char * s, |
ef416fc2 | 1223 | int slen); |
1224 | </pre> | |
1225 | <h4>Arguments</h4> | |
1226 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1227 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1228 | <tbody> | |
1229 | <tr><td><tt>t</tt></td><td>UNIX time</td></tr> | |
1230 | <tr><td><tt>s</tt></td><td>String buffer</td></tr> | |
1231 | <tr><td><tt>slen</tt></td><td>Size of string buffer</td></tr> | |
1232 | </tbody></table></div> | |
1233 | <h4>Returns</h4> | |
1234 | <p>Date/time string</p> | |
1235 | <!-- NEW PAGE --> | |
1236 | <h3 class='title'><a name='httpGetDateTime'>httpGetDateTime()</a></h3> | |
1237 | <h4>Description</h4> | |
1238 | <p>Get a time value from a formatted date/time string.</p> | |
1239 | <h4>Syntax</h4> | |
1240 | <pre> | |
1241 | time_t | |
1242 | httpGetDateTime( | |
ecdc0628 | 1243 | const char * s); |
ef416fc2 | 1244 | </pre> |
1245 | <h4>Arguments</h4> | |
1246 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1247 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1248 | <tbody> | |
1249 | <tr><td><tt>s</tt></td><td>Date/time string</td></tr> | |
1250 | </tbody></table></div> | |
1251 | <h4>Returns</h4> | |
1252 | <p>UNIX time</p> | |
1253 | <!-- NEW PAGE --> | |
ecdc0628 | 1254 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpGetFd'>httpGetFd()</a></h3> |
1255 | <h4>Description</h4> | |
1256 | <p>Get the file descriptor associated with a connection. | |
1257 | ||
1258 | </p> | |
1259 | <h4>Syntax</h4> | |
1260 | <pre> | |
1261 | int | |
1262 | httpGetFd( | |
1263 | <a href='#http_t'>http_t</a> * http); | |
1264 | </pre> | |
1265 | <h4>Arguments</h4> | |
1266 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1267 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1268 | <tbody> | |
1269 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> | |
1270 | </tbody></table></div> | |
1271 | <h4>Returns</h4> | |
1272 | <p>File descriptor or -1 if none</p> | |
1273 | <!-- NEW PAGE --> | |
1274 | <h3 class='title'><a name='httpGetField'>httpGetField()</a></h3> | |
1275 | <h4>Description</h4> | |
1276 | <p>Get a field value from a request/response.</p> | |
1277 | <h4>Syntax</h4> | |
1278 | <pre> | |
1279 | const char * | |
1280 | httpGetField( | |
1281 | <a href='#http_t'>http_t</a> * http, | |
1282 | http_field_t field); | |
1283 | </pre> | |
1284 | <h4>Arguments</h4> | |
1285 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1286 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1287 | <tbody> | |
1288 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> | |
1289 | <tr><td><tt>field</tt></td><td>Field to get</td></tr> | |
1290 | </tbody></table></div> | |
1291 | <h4>Returns</h4> | |
1292 | <p>Field value</p> | |
1293 | <!-- NEW PAGE --> | |
ef416fc2 | 1294 | <h3 class='title'><span class='info'> DEPRECATED </span><a name='httpGetHostByName'>httpGetHostByName()</a></h3> |
1295 | <h4>Description</h4> | |
1296 | <p>Lookup a hostname or IPv4 address, and return | |
1297 | address records for the specified name. | |
1298 | ||
1299 | </p> | |
1300 | <h4>Syntax</h4> | |
1301 | <pre> | |
1302 | struct hostent * | |
1303 | httpGetHostByName( | |
ecdc0628 | 1304 | const char * name); |
ef416fc2 | 1305 | </pre> |
1306 | <h4>Arguments</h4> | |
1307 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1308 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1309 | <tbody> | |
1310 | <tr><td><tt>name</tt></td><td>Hostname or IP address</td></tr> | |
1311 | </tbody></table></div> | |
1312 | <h4>Returns</h4> | |
1313 | <p>Host entry</p> | |
1314 | <!-- NEW PAGE --> | |
1315 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpGetHostname'>httpGetHostname()</a></h3> | |
1316 | <h4>Description</h4> | |
80ca4592 | 1317 | <p>Get the FQDN for the connection or local system. |
ef416fc2 | 1318 | |
80ca4592 | 1319 | When "http" points to a connected socket, return the hostname or |
1320 | address that was used in the call to httpConnect() or httpConnectEncrypt(). | |
1321 | Otherwise, return the FQDN for the local system using both gethostname() | |
1322 | and gethostbyname() to get the local hostname with domain. | |
ef416fc2 | 1323 | |
1324 | </p> | |
1325 | <h4>Syntax</h4> | |
1326 | <pre> | |
ecdc0628 | 1327 | const char * |
ef416fc2 | 1328 | httpGetHostname( |
80ca4592 | 1329 | <a href='#http_t'>http_t</a> * http, |
ecdc0628 | 1330 | char * s, |
ef416fc2 | 1331 | int slen); |
1332 | </pre> | |
1333 | <h4>Arguments</h4> | |
1334 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1335 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1336 | <tbody> | |
80ca4592 | 1337 | <tr><td><tt>http</tt></td><td>HTTP connection or NULL</td></tr> |
ef416fc2 | 1338 | <tr><td><tt>s</tt></td><td>String buffer for name</td></tr> |
1339 | <tr><td><tt>slen</tt></td><td>Size of buffer</td></tr> | |
1340 | </tbody></table></div> | |
1341 | <h4>Returns</h4> | |
80ca4592 | 1342 | <p>FQDN for connection or system</p> |
ef416fc2 | 1343 | <!-- NEW PAGE --> |
ecdc0628 | 1344 | <h3 class='title'><span class='info'> DEPRECATED </span><a name='httpGetLength'>httpGetLength()</a></h3> |
ef416fc2 | 1345 | <h4>Description</h4> |
1346 | <p>Get the amount of data remaining from the | |
1347 | content-length or transfer-encoding fields. | |
1348 | ||
1349 | This function is deprecated and will not return lengths larger than | |
1350 | 2^31 - 1; use httpGetLength2() instead. | |
1351 | ||
1352 | </p> | |
1353 | <h4>Syntax</h4> | |
1354 | <pre> | |
1355 | int | |
1356 | httpGetLength( | |
1357 | <a href='#http_t'>http_t</a> * http); | |
1358 | </pre> | |
1359 | <h4>Arguments</h4> | |
1360 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1361 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1362 | <tbody> | |
ecdc0628 | 1363 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1364 | </tbody></table></div> |
1365 | <h4>Returns</h4> | |
1366 | <p>Content length</p> | |
1367 | <!-- NEW PAGE --> | |
ecdc0628 | 1368 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpGetLength2'>httpGetLength2()</a></h3> |
ef416fc2 | 1369 | <h4>Description</h4> |
1370 | <p>Get the amount of data remaining from the | |
1371 | content-length or transfer-encoding fields. | |
1372 | ||
1373 | This function returns the complete content length, even for | |
ecdc0628 | 1374 | content larger than 2^31 - 1. |
1375 | ||
1376 | </p> | |
ef416fc2 | 1377 | <h4>Syntax</h4> |
1378 | <pre> | |
1379 | off_t | |
1380 | httpGetLength2( | |
1381 | <a href='#http_t'>http_t</a> * http); | |
1382 | </pre> | |
1383 | <h4>Arguments</h4> | |
1384 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1385 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1386 | <tbody> | |
ecdc0628 | 1387 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1388 | </tbody></table></div> |
1389 | <h4>Returns</h4> | |
1390 | <p>Content length</p> | |
1391 | <!-- NEW PAGE --> | |
ecdc0628 | 1392 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpGetStatus'>httpGetStatus()</a></h3> |
1393 | <h4>Description</h4> | |
1394 | <p>Get the status of the last HTTP request. | |
1395 | ||
1396 | </p> | |
1397 | <h4>Syntax</h4> | |
1398 | <pre> | |
1399 | http_status_t | |
1400 | httpGetStatus( | |
1401 | <a href='#http_t'>http_t</a> * http); | |
1402 | </pre> | |
1403 | <h4>Arguments</h4> | |
1404 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1405 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1406 | <tbody> | |
1407 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> | |
1408 | </tbody></table></div> | |
1409 | <h4>Returns</h4> | |
1410 | <p>HTTP status</p> | |
1411 | <!-- NEW PAGE --> | |
ef416fc2 | 1412 | <h3 class='title'><span class='info'> DEPRECATED </span><a name='httpGetSubField'>httpGetSubField()</a></h3> |
1413 | <h4>Description</h4> | |
1414 | <p>Get a sub-field value. | |
1415 | ||
1416 | </p> | |
1417 | <h4>Syntax</h4> | |
1418 | <pre> | |
ecdc0628 | 1419 | char * |
ef416fc2 | 1420 | httpGetSubField( |
1421 | <a href='#http_t'>http_t</a> * http, | |
1422 | http_field_t field, | |
ecdc0628 | 1423 | const char * name, |
1424 | char * value); | |
ef416fc2 | 1425 | </pre> |
1426 | <h4>Arguments</h4> | |
1427 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1428 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1429 | <tbody> | |
ecdc0628 | 1430 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1431 | <tr><td><tt>field</tt></td><td>Field index</td></tr> |
1432 | <tr><td><tt>name</tt></td><td>Name of sub-field</td></tr> | |
1433 | <tr><td><tt>value</tt></td><td>Value string</td></tr> | |
1434 | </tbody></table></div> | |
1435 | <h4>Returns</h4> | |
1436 | <p>Value or NULL</p> | |
1437 | <!-- NEW PAGE --> | |
1438 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpGetSubField2'>httpGetSubField2()</a></h3> | |
1439 | <h4>Description</h4> | |
1440 | <p>Get a sub-field value. | |
1441 | ||
1442 | </p> | |
1443 | <h4>Syntax</h4> | |
1444 | <pre> | |
ecdc0628 | 1445 | char * |
ef416fc2 | 1446 | httpGetSubField2( |
1447 | <a href='#http_t'>http_t</a> * http, | |
1448 | http_field_t field, | |
ecdc0628 | 1449 | const char * name, |
1450 | char * value, | |
ef416fc2 | 1451 | int valuelen); |
1452 | </pre> | |
1453 | <h4>Arguments</h4> | |
1454 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1455 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1456 | <tbody> | |
ecdc0628 | 1457 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1458 | <tr><td><tt>field</tt></td><td>Field index</td></tr> |
1459 | <tr><td><tt>name</tt></td><td>Name of sub-field</td></tr> | |
1460 | <tr><td><tt>value</tt></td><td>Value string</td></tr> | |
1461 | <tr><td><tt>valuelen</tt></td><td>Size of value buffer</td></tr> | |
1462 | </tbody></table></div> | |
1463 | <h4>Returns</h4> | |
1464 | <p>Value or NULL</p> | |
1465 | <!-- NEW PAGE --> | |
1466 | <h3 class='title'><a name='httpGets'>httpGets()</a></h3> | |
1467 | <h4>Description</h4> | |
1468 | <p>Get a line of text from a HTTP connection.</p> | |
1469 | <h4>Syntax</h4> | |
1470 | <pre> | |
ecdc0628 | 1471 | char * |
ef416fc2 | 1472 | httpGets( |
ecdc0628 | 1473 | char * line, |
ef416fc2 | 1474 | int length, |
1475 | <a href='#http_t'>http_t</a> * http); | |
1476 | </pre> | |
1477 | <h4>Arguments</h4> | |
1478 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1479 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1480 | <tbody> | |
1481 | <tr><td><tt>line</tt></td><td>Line to read into</td></tr> | |
1482 | <tr><td><tt>length</tt></td><td>Max length of buffer</td></tr> | |
ecdc0628 | 1483 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1484 | </tbody></table></div> |
1485 | <h4>Returns</h4> | |
1486 | <p>Line or NULL</p> | |
1487 | <!-- NEW PAGE --> | |
1488 | <h3 class='title'><a name='httpHead'>httpHead()</a></h3> | |
1489 | <h4>Description</h4> | |
1490 | <p>Send a HEAD request to the server.</p> | |
1491 | <h4>Syntax</h4> | |
1492 | <pre> | |
1493 | int | |
1494 | httpHead( | |
1495 | <a href='#http_t'>http_t</a> * http, | |
ecdc0628 | 1496 | const char * uri); |
ef416fc2 | 1497 | </pre> |
1498 | <h4>Arguments</h4> | |
1499 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1500 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1501 | <tbody> | |
ecdc0628 | 1502 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1503 | <tr><td><tt>uri</tt></td><td>URI for head</td></tr> |
1504 | </tbody></table></div> | |
1505 | <h4>Returns</h4> | |
1506 | <p>Status of call (0 = success)</p> | |
1507 | <!-- NEW PAGE --> | |
1508 | <h3 class='title'><a name='httpInitialize'>httpInitialize()</a></h3> | |
1509 | <h4>Description</h4> | |
1510 | <p>Initialize the HTTP interface library and set the | |
1511 | default HTTP proxy (if any).</p> | |
1512 | <h4>Syntax</h4> | |
1513 | <pre> | |
1514 | void | |
1515 | httpInitialize(void); | |
1516 | </pre> | |
1517 | <h4>Arguments</h4> | |
1518 | <p>None.</p> | |
1519 | <h4>Returns</h4> | |
1520 | <p>Nothing.</p> | |
1521 | <!-- NEW PAGE --> | |
1522 | <h3 class='title'><a name='httpMD5'>httpMD5()</a></h3> | |
1523 | <h4>Description</h4> | |
1524 | <p>Compute the MD5 sum of the username:group:password.</p> | |
1525 | <h4>Syntax</h4> | |
1526 | <pre> | |
ecdc0628 | 1527 | char * |
ef416fc2 | 1528 | httpMD5( |
ecdc0628 | 1529 | const char * username, |
1530 | const char * realm, | |
1531 | const char * passwd, | |
1532 | char md5[33]); | |
ef416fc2 | 1533 | </pre> |
1534 | <h4>Arguments</h4> | |
1535 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1536 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1537 | <tbody> | |
1538 | <tr><td><tt>username</tt></td><td>User name</td></tr> | |
1539 | <tr><td><tt>realm</tt></td><td>Realm name</td></tr> | |
1540 | <tr><td><tt>passwd</tt></td><td>Password string</td></tr> | |
1541 | <tr><td><tt>md5[33]</tt></td><td>MD5 string</td></tr> | |
1542 | </tbody></table></div> | |
1543 | <h4>Returns</h4> | |
1544 | <p>MD5 sum</p> | |
1545 | <!-- NEW PAGE --> | |
1546 | <h3 class='title'><a name='httpMD5Final'>httpMD5Final()</a></h3> | |
1547 | <h4>Description</h4> | |
1548 | <p>Combine the MD5 sum of the username, group, and password | |
1549 | with the server-supplied nonce value, method, and | |
1550 | request-uri.</p> | |
1551 | <h4>Syntax</h4> | |
1552 | <pre> | |
ecdc0628 | 1553 | char * |
ef416fc2 | 1554 | httpMD5Final( |
ecdc0628 | 1555 | const char * nonce, |
1556 | const char * method, | |
1557 | const char * resource, | |
1558 | char md5[33]); | |
ef416fc2 | 1559 | </pre> |
1560 | <h4>Arguments</h4> | |
1561 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1562 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1563 | <tbody> | |
1564 | <tr><td><tt>nonce</tt></td><td>Server nonce value</td></tr> | |
1565 | <tr><td><tt>method</tt></td><td>METHOD (GET, POST, etc.)</td></tr> | |
1566 | <tr><td><tt>resource</tt></td><td>Resource path</td></tr> | |
1567 | <tr><td><tt>md5[33]</tt></td><td>MD5 sum</td></tr> | |
1568 | </tbody></table></div> | |
1569 | <h4>Returns</h4> | |
1570 | <p>New sum</p> | |
1571 | <!-- NEW PAGE --> | |
1572 | <h3 class='title'><a name='httpMD5String'>httpMD5String()</a></h3> | |
1573 | <h4>Description</h4> | |
1574 | <p>Convert an MD5 sum to a character string.</p> | |
1575 | <h4>Syntax</h4> | |
1576 | <pre> | |
ecdc0628 | 1577 | char * |
ef416fc2 | 1578 | httpMD5String( |
ecdc0628 | 1579 | const unsigned char * sum, |
1580 | char md5[33]); | |
ef416fc2 | 1581 | </pre> |
1582 | <h4>Arguments</h4> | |
1583 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1584 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1585 | <tbody> | |
1586 | <tr><td><tt>sum</tt></td><td>MD5 sum data</td></tr> | |
1587 | <tr><td><tt>md5[33]</tt></td><td>MD5 sum in hex</td></tr> | |
1588 | </tbody></table></div> | |
1589 | <h4>Returns</h4> | |
1590 | <p>MD5 sum in hex</p> | |
1591 | <!-- NEW PAGE --> | |
1592 | <h3 class='title'><a name='httpOptions'>httpOptions()</a></h3> | |
1593 | <h4>Description</h4> | |
1594 | <p>Send an OPTIONS request to the server.</p> | |
1595 | <h4>Syntax</h4> | |
1596 | <pre> | |
1597 | int | |
1598 | httpOptions( | |
1599 | <a href='#http_t'>http_t</a> * http, | |
ecdc0628 | 1600 | const char * uri); |
ef416fc2 | 1601 | </pre> |
1602 | <h4>Arguments</h4> | |
1603 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1604 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1605 | <tbody> | |
ecdc0628 | 1606 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1607 | <tr><td><tt>uri</tt></td><td>URI for options</td></tr> |
1608 | </tbody></table></div> | |
1609 | <h4>Returns</h4> | |
1610 | <p>Status of call (0 = success)</p> | |
1611 | <!-- NEW PAGE --> | |
1612 | <h3 class='title'><a name='httpPost'>httpPost()</a></h3> | |
1613 | <h4>Description</h4> | |
1614 | <p>Send a POST request to the server.</p> | |
1615 | <h4>Syntax</h4> | |
1616 | <pre> | |
1617 | int | |
1618 | httpPost( | |
1619 | <a href='#http_t'>http_t</a> * http, | |
ecdc0628 | 1620 | const char * uri); |
ef416fc2 | 1621 | </pre> |
1622 | <h4>Arguments</h4> | |
1623 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1624 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1625 | <tbody> | |
ecdc0628 | 1626 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1627 | <tr><td><tt>uri</tt></td><td>URI for post</td></tr> |
1628 | </tbody></table></div> | |
1629 | <h4>Returns</h4> | |
1630 | <p>Status of call (0 = success)</p> | |
1631 | <!-- NEW PAGE --> | |
ecdc0628 | 1632 | <h3 class='title'><a name='httpPut'>httpPut()</a></h3> |
ef416fc2 | 1633 | <h4>Description</h4> |
ecdc0628 | 1634 | <p>Send a PUT request to the server.</p> |
ef416fc2 | 1635 | <h4>Syntax</h4> |
1636 | <pre> | |
1637 | int | |
ecdc0628 | 1638 | httpPut( |
ef416fc2 | 1639 | <a href='#http_t'>http_t</a> * http, |
ecdc0628 | 1640 | const char * uri); |
ef416fc2 | 1641 | </pre> |
1642 | <h4>Arguments</h4> | |
1643 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1644 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1645 | <tbody> | |
ecdc0628 | 1646 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
1647 | <tr><td><tt>uri</tt></td><td>URI to put</td></tr> | |
ef416fc2 | 1648 | </tbody></table></div> |
1649 | <h4>Returns</h4> | |
ecdc0628 | 1650 | <p>Status of call (0 = success)</p> |
ef416fc2 | 1651 | <!-- NEW PAGE --> |
ecdc0628 | 1652 | <h3 class='title'><span class='info'> DEPRECATED </span><a name='httpRead'>httpRead()</a></h3> |
ef416fc2 | 1653 | <h4>Description</h4> |
ecdc0628 | 1654 | <p>Read data from a HTTP connection. |
1655 | ||
1656 | This function is deprecated. Use the httpRead2() function which can | |
1657 | read more than 2GB of data. | |
1658 | ||
1659 | </p> | |
ef416fc2 | 1660 | <h4>Syntax</h4> |
1661 | <pre> | |
1662 | int | |
ecdc0628 | 1663 | httpRead( |
ef416fc2 | 1664 | <a href='#http_t'>http_t</a> * http, |
ecdc0628 | 1665 | char * buffer, |
1666 | int length); | |
ef416fc2 | 1667 | </pre> |
1668 | <h4>Arguments</h4> | |
1669 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1670 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1671 | <tbody> | |
ecdc0628 | 1672 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
1673 | <tr><td><tt>buffer</tt></td><td>Buffer for data</td></tr> | |
1674 | <tr><td><tt>length</tt></td><td>Maximum number of bytes</td></tr> | |
ef416fc2 | 1675 | </tbody></table></div> |
1676 | <h4>Returns</h4> | |
ecdc0628 | 1677 | <p>Number of bytes read</p> |
ef416fc2 | 1678 | <!-- NEW PAGE --> |
ecdc0628 | 1679 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpRead2'>httpRead2()</a></h3> |
ef416fc2 | 1680 | <h4>Description</h4> |
ecdc0628 | 1681 | <p>Read data from a HTTP connection. |
1682 | ||
1683 | </p> | |
ef416fc2 | 1684 | <h4>Syntax</h4> |
1685 | <pre> | |
ecdc0628 | 1686 | ssize_t |
1687 | httpRead2( | |
ef416fc2 | 1688 | <a href='#http_t'>http_t</a> * http, |
ecdc0628 | 1689 | char * buffer, |
1690 | size_t length); | |
ef416fc2 | 1691 | </pre> |
1692 | <h4>Arguments</h4> | |
1693 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1694 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1695 | <tbody> | |
ecdc0628 | 1696 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1697 | <tr><td><tt>buffer</tt></td><td>Buffer for data</td></tr> |
1698 | <tr><td><tt>length</tt></td><td>Maximum number of bytes</td></tr> | |
1699 | </tbody></table></div> | |
1700 | <h4>Returns</h4> | |
1701 | <p>Number of bytes read</p> | |
1702 | <!-- NEW PAGE --> | |
1703 | <h3 class='title'><a name='httpReconnect'>httpReconnect()</a></h3> | |
1704 | <h4>Description</h4> | |
ecdc0628 | 1705 | <p>Reconnect to a HTTP server.</p> |
ef416fc2 | 1706 | <h4>Syntax</h4> |
1707 | <pre> | |
1708 | int | |
1709 | httpReconnect( | |
1710 | <a href='#http_t'>http_t</a> * http); | |
1711 | </pre> | |
1712 | <h4>Arguments</h4> | |
1713 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1714 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1715 | <tbody> | |
ecdc0628 | 1716 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1717 | </tbody></table></div> |
1718 | <h4>Returns</h4> | |
1719 | <p>0 on success, non-zero on failure</p> | |
1720 | <!-- NEW PAGE --> | |
ecdc0628 | 1721 | <h3 class='title'><span class='info'> DEPRECATED </span><a name='httpSeparate'>httpSeparate()</a></h3> |
ef416fc2 | 1722 | <h4>Description</h4> |
1723 | <p>Separate a Universal Resource Identifier into its | |
ecdc0628 | 1724 | components. |
1725 | ||
1726 | This function is deprecated; use the httpSeparateURI() function instead. | |
1727 | ||
1728 | </p> | |
ef416fc2 | 1729 | <h4>Syntax</h4> |
1730 | <pre> | |
1731 | void | |
1732 | httpSeparate( | |
ecdc0628 | 1733 | const char * uri, |
1734 | char * scheme, | |
1735 | char * username, | |
1736 | char * host, | |
ef416fc2 | 1737 | int * port, |
ecdc0628 | 1738 | char * resource); |
ef416fc2 | 1739 | </pre> |
1740 | <h4>Arguments</h4> | |
1741 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1742 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1743 | <tbody> | |
1744 | <tr><td><tt>uri</tt></td><td>Universal Resource Identifier</td></tr> | |
1745 | <tr><td><tt>scheme</tt></td><td>Scheme [32] (http, https, etc.)</td></tr> | |
1746 | <tr><td><tt>username</tt></td><td>Username [1024]</td></tr> | |
1747 | <tr><td><tt>host</tt></td><td>Hostname [1024]</td></tr> | |
1748 | <tr><td><tt>port</tt></td><td>Port number to use</td></tr> | |
1749 | <tr><td><tt>resource</tt></td><td>Resource/filename [1024]</td></tr> | |
1750 | </tbody></table></div> | |
1751 | <h4>Returns</h4> | |
1752 | <p>Nothing.</p> | |
1753 | <!-- NEW PAGE --> | |
1754 | <h3 class='title'><span class='info'> CUPS 1.1.21 </span><a name='httpSeparate2'>httpSeparate2()</a></h3> | |
1755 | <h4>Description</h4> | |
1756 | <p>Separate a Universal Resource Identifier into its | |
1757 | components. | |
1758 | ||
ecdc0628 | 1759 | This function is deprecated; use the httpSeparateURI() function instead. |
1760 | ||
1761 | ||
ef416fc2 | 1762 | </p> |
1763 | <h4>Syntax</h4> | |
1764 | <pre> | |
1765 | void | |
1766 | httpSeparate2( | |
ecdc0628 | 1767 | const char * uri, |
1768 | char * scheme, | |
ef416fc2 | 1769 | int schemelen, |
ecdc0628 | 1770 | char * username, |
ef416fc2 | 1771 | int usernamelen, |
ecdc0628 | 1772 | char * host, |
ef416fc2 | 1773 | int hostlen, |
1774 | int * port, | |
ecdc0628 | 1775 | char * resource, |
ef416fc2 | 1776 | int resourcelen); |
1777 | </pre> | |
1778 | <h4>Arguments</h4> | |
1779 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1780 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1781 | <tbody> | |
1782 | <tr><td><tt>uri</tt></td><td>Universal Resource Identifier</td></tr> | |
1783 | <tr><td><tt>scheme</tt></td><td>Scheme (http, https, etc.)</td></tr> | |
1784 | <tr><td><tt>schemelen</tt></td><td>Size of scheme buffer</td></tr> | |
1785 | <tr><td><tt>username</tt></td><td>Username</td></tr> | |
1786 | <tr><td><tt>usernamelen</tt></td><td>Size of username buffer</td></tr> | |
1787 | <tr><td><tt>host</tt></td><td>Hostname</td></tr> | |
1788 | <tr><td><tt>hostlen</tt></td><td>Size of hostname buffer</td></tr> | |
1789 | <tr><td><tt>port</tt></td><td>Port number to use</td></tr> | |
1790 | <tr><td><tt>resource</tt></td><td>Resource/filename</td></tr> | |
1791 | <tr><td><tt>resourcelen</tt></td><td>Size of resource buffer</td></tr> | |
1792 | </tbody></table></div> | |
1793 | <h4>Returns</h4> | |
1794 | <p>Nothing.</p> | |
1795 | <!-- NEW PAGE --> | |
1796 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpSeparateURI'>httpSeparateURI()</a></h3> | |
1797 | <h4>Description</h4> | |
1798 | <p>Separate a Universal Resource Identifier into its | |
1799 | components. | |
1800 | ||
1801 | </p> | |
1802 | <h4>Syntax</h4> | |
1803 | <pre> | |
1804 | http_uri_status_t | |
1805 | httpSeparateURI( | |
ecdc0628 | 1806 | http_uri_coding_t decoding, |
1807 | const char * uri, | |
1808 | char * scheme, | |
ef416fc2 | 1809 | int schemelen, |
ecdc0628 | 1810 | char * username, |
ef416fc2 | 1811 | int usernamelen, |
ecdc0628 | 1812 | char * host, |
ef416fc2 | 1813 | int hostlen, |
1814 | int * port, | |
ecdc0628 | 1815 | char * resource, |
ef416fc2 | 1816 | int resourcelen); |
1817 | </pre> | |
1818 | <h4>Arguments</h4> | |
1819 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1820 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1821 | <tbody> | |
ecdc0628 | 1822 | <tr><td><tt>decoding</tt></td><td>Decoding flags</td></tr> |
ef416fc2 | 1823 | <tr><td><tt>uri</tt></td><td>Universal Resource Identifier</td></tr> |
1824 | <tr><td><tt>scheme</tt></td><td>Scheme (http, https, etc.)</td></tr> | |
1825 | <tr><td><tt>schemelen</tt></td><td>Size of scheme buffer</td></tr> | |
1826 | <tr><td><tt>username</tt></td><td>Username</td></tr> | |
1827 | <tr><td><tt>usernamelen</tt></td><td>Size of username buffer</td></tr> | |
1828 | <tr><td><tt>host</tt></td><td>Hostname</td></tr> | |
1829 | <tr><td><tt>hostlen</tt></td><td>Size of hostname buffer</td></tr> | |
1830 | <tr><td><tt>port</tt></td><td>Port number to use</td></tr> | |
1831 | <tr><td><tt>resource</tt></td><td>Resource/filename</td></tr> | |
1832 | <tr><td><tt>resourcelen</tt></td><td>Size of resource buffer</td></tr> | |
1833 | </tbody></table></div> | |
1834 | <h4>Returns</h4> | |
1835 | <p>Result of separation</p> | |
1836 | <!-- NEW PAGE --> | |
1837 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='httpSetCookie'>httpSetCookie()</a></h3> | |
1838 | <h4>Description</h4> | |
1839 | <p>Set the cookie value(s)... | |
1840 | ||
1841 | </p> | |
1842 | <h4>Syntax</h4> | |
1843 | <pre> | |
1844 | void | |
1845 | httpSetCookie( | |
1846 | <a href='#http_t'>http_t</a> * http, | |
ecdc0628 | 1847 | const char * cookie); |
ef416fc2 | 1848 | </pre> |
1849 | <h4>Arguments</h4> | |
1850 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1851 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1852 | <tbody> | |
1853 | <tr><td><tt>http</tt></td><td>Connection</td></tr> | |
1854 | <tr><td><tt>cookie</tt></td><td>Cookie string</td></tr> | |
1855 | </tbody></table></div> | |
1856 | <h4>Returns</h4> | |
1857 | <p>Nothing.</p> | |
1858 | <!-- NEW PAGE --> | |
80ca4592 | 1859 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpSetExpect'>httpSetExpect()</a></h3> |
1860 | <h4>Description</h4> | |
1861 | <p>Set the Expect: header in a request. | |
1862 | ||
1863 | Currently only HTTP_CONTINUE is supported for the "expect" argument. | |
1864 | ||
1865 | </p> | |
1866 | <h4>Syntax</h4> | |
1867 | <pre> | |
1868 | void | |
1869 | httpSetExpect( | |
1870 | <a href='#http_t'>http_t</a> * http, | |
1871 | http_status_t expect); | |
1872 | </pre> | |
1873 | <h4>Arguments</h4> | |
1874 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1875 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1876 | <tbody> | |
1877 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> | |
1878 | <tr><td><tt>expect</tt></td><td>HTTP status to expect (HTTP_CONTINUE)</td></tr> | |
1879 | </tbody></table></div> | |
1880 | <h4>Returns</h4> | |
1881 | <p>Nothing.</p> | |
1882 | <!-- NEW PAGE --> | |
ef416fc2 | 1883 | <h3 class='title'><a name='httpSetField'>httpSetField()</a></h3> |
1884 | <h4>Description</h4> | |
1885 | <p>Set the value of an HTTP header.</p> | |
1886 | <h4>Syntax</h4> | |
1887 | <pre> | |
1888 | void | |
1889 | httpSetField( | |
1890 | <a href='#http_t'>http_t</a> * http, | |
1891 | http_field_t field, | |
ecdc0628 | 1892 | const char * value); |
ef416fc2 | 1893 | </pre> |
1894 | <h4>Arguments</h4> | |
1895 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1896 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1897 | <tbody> | |
ecdc0628 | 1898 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1899 | <tr><td><tt>field</tt></td><td>Field index</td></tr> |
1900 | <tr><td><tt>value</tt></td><td>Value</td></tr> | |
1901 | </tbody></table></div> | |
1902 | <h4>Returns</h4> | |
1903 | <p>Nothing.</p> | |
1904 | <!-- NEW PAGE --> | |
1905 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpSetLength'>httpSetLength()</a></h3> | |
1906 | <h4>Description</h4> | |
1907 | <p>Set the content-length and content-encoding. | |
1908 | ||
1909 | </p> | |
1910 | <h4>Syntax</h4> | |
1911 | <pre> | |
1912 | void | |
1913 | httpSetLength( | |
1914 | <a href='#http_t'>http_t</a> * http, | |
1915 | size_t length); | |
1916 | </pre> | |
1917 | <h4>Arguments</h4> | |
1918 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1919 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1920 | <tbody> | |
ecdc0628 | 1921 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1922 | <tr><td><tt>length</tt></td><td>Length (0 for chunked)</td></tr> |
1923 | </tbody></table></div> | |
1924 | <h4>Returns</h4> | |
1925 | <p>Nothing.</p> | |
1926 | <!-- NEW PAGE --> | |
1927 | <h3 class='title'><a name='httpStatus'>httpStatus()</a></h3> | |
1928 | <h4>Description</h4> | |
1929 | <p>Return a short string describing a HTTP status code.</p> | |
1930 | <h4>Syntax</h4> | |
1931 | <pre> | |
ecdc0628 | 1932 | const char * |
ef416fc2 | 1933 | httpStatus( |
1934 | http_status_t status); | |
1935 | </pre> | |
1936 | <h4>Arguments</h4> | |
1937 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1938 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1939 | <tbody> | |
1940 | <tr><td><tt>status</tt></td><td>HTTP status code</td></tr> | |
1941 | </tbody></table></div> | |
1942 | <h4>Returns</h4> | |
1943 | <p>String or NULL</p> | |
1944 | <!-- NEW PAGE --> | |
1945 | <h3 class='title'><a name='httpTrace'>httpTrace()</a></h3> | |
1946 | <h4>Description</h4> | |
1947 | <p>Send an TRACE request to the server.</p> | |
1948 | <h4>Syntax</h4> | |
1949 | <pre> | |
1950 | int | |
1951 | httpTrace( | |
1952 | <a href='#http_t'>http_t</a> * http, | |
ecdc0628 | 1953 | const char * uri); |
ef416fc2 | 1954 | </pre> |
1955 | <h4>Arguments</h4> | |
1956 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1957 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1958 | <tbody> | |
ecdc0628 | 1959 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1960 | <tr><td><tt>uri</tt></td><td>URI for trace</td></tr> |
1961 | </tbody></table></div> | |
1962 | <h4>Returns</h4> | |
1963 | <p>Status of call (0 = success)</p> | |
1964 | <!-- NEW PAGE --> | |
1965 | <h3 class='title'><a name='httpUpdate'>httpUpdate()</a></h3> | |
1966 | <h4>Description</h4> | |
1967 | <p>Update the current HTTP state for incoming data.</p> | |
1968 | <h4>Syntax</h4> | |
1969 | <pre> | |
1970 | http_status_t | |
1971 | httpUpdate( | |
1972 | <a href='#http_t'>http_t</a> * http); | |
1973 | </pre> | |
1974 | <h4>Arguments</h4> | |
1975 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1976 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1977 | <tbody> | |
ecdc0628 | 1978 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 1979 | </tbody></table></div> |
1980 | <h4>Returns</h4> | |
1981 | <p>HTTP status</p> | |
1982 | <!-- NEW PAGE --> | |
1983 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='httpWait'>httpWait()</a></h3> | |
1984 | <h4>Description</h4> | |
1985 | <p>Wait for data available on a connection. | |
1986 | ||
1987 | </p> | |
1988 | <h4>Syntax</h4> | |
1989 | <pre> | |
1990 | int | |
1991 | httpWait( | |
1992 | <a href='#http_t'>http_t</a> * http, | |
1993 | int msec); | |
1994 | </pre> | |
1995 | <h4>Arguments</h4> | |
1996 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
1997 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1998 | <tbody> | |
ecdc0628 | 1999 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
ef416fc2 | 2000 | <tr><td><tt>msec</tt></td><td>Milliseconds to wait</td></tr> |
2001 | </tbody></table></div> | |
2002 | <h4>Returns</h4> | |
2003 | <p>1 if data is available, 0 otherwise</p> | |
2004 | <!-- NEW PAGE --> | |
ecdc0628 | 2005 | <h3 class='title'><span class='info'> DEPRECATED </span><a name='httpWrite'>httpWrite()</a></h3> |
ef416fc2 | 2006 | <h4>Description</h4> |
ecdc0628 | 2007 | <p>Write data to a HTTP connection. |
2008 | ||
2009 | This function is deprecated. Use the httpWrite2() function which can | |
2010 | write more than 2GB of data. | |
2011 | ||
2012 | </p> | |
ef416fc2 | 2013 | <h4>Syntax</h4> |
2014 | <pre> | |
2015 | int | |
2016 | httpWrite( | |
2017 | <a href='#http_t'>http_t</a> * http, | |
ecdc0628 | 2018 | const char * buffer, |
ef416fc2 | 2019 | int length); |
2020 | </pre> | |
2021 | <h4>Arguments</h4> | |
2022 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2023 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2024 | <tbody> | |
ecdc0628 | 2025 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> |
2026 | <tr><td><tt>buffer</tt></td><td>Buffer for data</td></tr> | |
2027 | <tr><td><tt>length</tt></td><td>Number of bytes to write</td></tr> | |
2028 | </tbody></table></div> | |
2029 | <h4>Returns</h4> | |
2030 | <p>Number of bytes written</p> | |
2031 | <!-- NEW PAGE --> | |
2032 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='httpWrite2'>httpWrite2()</a></h3> | |
2033 | <h4>Description</h4> | |
2034 | <p>Write data to a HTTP connection. | |
2035 | ||
2036 | </p> | |
2037 | <h4>Syntax</h4> | |
2038 | <pre> | |
2039 | ssize_t | |
2040 | httpWrite2( | |
2041 | <a href='#http_t'>http_t</a> * http, | |
2042 | const char * buffer, | |
2043 | size_t length); | |
2044 | </pre> | |
2045 | <h4>Arguments</h4> | |
2046 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2047 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2048 | <tbody> | |
2049 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> | |
ef416fc2 | 2050 | <tr><td><tt>buffer</tt></td><td>Buffer for data</td></tr> |
2051 | <tr><td><tt>length</tt></td><td>Number of bytes to write</td></tr> | |
2052 | </tbody></table></div> | |
2053 | <h4>Returns</h4> | |
2054 | <p>Number of bytes written</p> | |
2055 | <!-- NEW PAGE --> | |
2056 | <h3 class='title'><a name='ippAddBoolean'>ippAddBoolean()</a></h3> | |
2057 | <h4>Description</h4> | |
ecdc0628 | 2058 | <p>Add a boolean attribute to an IPP message.</p> |
ef416fc2 | 2059 | <h4>Syntax</h4> |
2060 | <pre> | |
2061 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2062 | ippAddBoolean( | |
2063 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2064 | ipp_tag_t group, | |
ecdc0628 | 2065 | const char * name, |
2066 | char value); | |
ef416fc2 | 2067 | </pre> |
2068 | <h4>Arguments</h4> | |
2069 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2070 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2071 | <tbody> | |
ecdc0628 | 2072 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2073 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2074 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2075 | <tr><td><tt>value</tt></td><td>Value of attribute</td></tr> | |
2076 | </tbody></table></div> | |
2077 | <h4>Returns</h4> | |
2078 | <p>New attribute</p> | |
2079 | <!-- NEW PAGE --> | |
2080 | <h3 class='title'><a name='ippAddBooleans'>ippAddBooleans()</a></h3> | |
2081 | <h4>Description</h4> | |
2082 | <p>Add an array of boolean values.</p> | |
2083 | <h4>Syntax</h4> | |
2084 | <pre> | |
2085 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2086 | ippAddBooleans( | |
2087 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2088 | ipp_tag_t group, | |
ecdc0628 | 2089 | const char * name, |
ef416fc2 | 2090 | int num_values, |
ecdc0628 | 2091 | const char * values); |
ef416fc2 | 2092 | </pre> |
2093 | <h4>Arguments</h4> | |
2094 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2095 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2096 | <tbody> | |
ecdc0628 | 2097 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2098 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2099 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2100 | <tr><td><tt>num_values</tt></td><td>Number of values</td></tr> | |
2101 | <tr><td><tt>values</tt></td><td>Values</td></tr> | |
2102 | </tbody></table></div> | |
2103 | <h4>Returns</h4> | |
2104 | <p>New attribute</p> | |
2105 | <!-- NEW PAGE --> | |
2106 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='ippAddCollection'>ippAddCollection()</a></h3> | |
2107 | <h4>Description</h4> | |
2108 | <p>Add a collection value. | |
2109 | ||
2110 | </p> | |
2111 | <h4>Syntax</h4> | |
2112 | <pre> | |
2113 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2114 | ippAddCollection( | |
2115 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2116 | ipp_tag_t group, | |
ecdc0628 | 2117 | const char * name, |
ef416fc2 | 2118 | <a href='#ipp_t'>ipp_t</a> * value); |
2119 | </pre> | |
2120 | <h4>Arguments</h4> | |
2121 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2122 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2123 | <tbody> | |
ecdc0628 | 2124 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2125 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2126 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2127 | <tr><td><tt>value</tt></td><td>Value</td></tr> | |
2128 | </tbody></table></div> | |
2129 | <h4>Returns</h4> | |
2130 | <p>New attribute</p> | |
2131 | <!-- NEW PAGE --> | |
2132 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='ippAddCollections'>ippAddCollections()</a></h3> | |
2133 | <h4>Description</h4> | |
2134 | <p>Add an array of collection values. | |
2135 | ||
2136 | </p> | |
2137 | <h4>Syntax</h4> | |
2138 | <pre> | |
2139 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2140 | ippAddCollections( | |
2141 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2142 | ipp_tag_t group, | |
ecdc0628 | 2143 | const char * name, |
ef416fc2 | 2144 | int num_values, |
2145 | const <a href='#ipp_t'>ipp_t</a> ** values); | |
2146 | </pre> | |
2147 | <h4>Arguments</h4> | |
2148 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2149 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2150 | <tbody> | |
ecdc0628 | 2151 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2152 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2153 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2154 | <tr><td><tt>num_values</tt></td><td>Number of values</td></tr> | |
2155 | <tr><td><tt>values</tt></td><td>Values</td></tr> | |
2156 | </tbody></table></div> | |
2157 | <h4>Returns</h4> | |
2158 | <p>New attribute</p> | |
2159 | <!-- NEW PAGE --> | |
2160 | <h3 class='title'><a name='ippAddDate'>ippAddDate()</a></h3> | |
2161 | <h4>Description</h4> | |
ecdc0628 | 2162 | <p>Add a date attribute to an IPP message.</p> |
ef416fc2 | 2163 | <h4>Syntax</h4> |
2164 | <pre> | |
2165 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2166 | ippAddDate( | |
2167 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2168 | ipp_tag_t group, | |
ecdc0628 | 2169 | const char * name, |
ef416fc2 | 2170 | const <a href='#ipp_uchar_t'>ipp_uchar_t</a> * value); |
2171 | </pre> | |
2172 | <h4>Arguments</h4> | |
2173 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2174 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2175 | <tbody> | |
ecdc0628 | 2176 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2177 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2178 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2179 | <tr><td><tt>value</tt></td><td>Value</td></tr> | |
2180 | </tbody></table></div> | |
2181 | <h4>Returns</h4> | |
2182 | <p>New attribute</p> | |
2183 | <!-- NEW PAGE --> | |
2184 | <h3 class='title'><a name='ippAddInteger'>ippAddInteger()</a></h3> | |
2185 | <h4>Description</h4> | |
ecdc0628 | 2186 | <p>Add a integer attribute to an IPP message.</p> |
ef416fc2 | 2187 | <h4>Syntax</h4> |
2188 | <pre> | |
2189 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2190 | ippAddInteger( | |
2191 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2192 | ipp_tag_t group, | |
2193 | ipp_tag_t type, | |
ecdc0628 | 2194 | const char * name, |
ef416fc2 | 2195 | int value); |
2196 | </pre> | |
2197 | <h4>Arguments</h4> | |
2198 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2199 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2200 | <tbody> | |
ecdc0628 | 2201 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2202 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2203 | <tr><td><tt>type</tt></td><td>Type of attribute</td></tr> | |
2204 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2205 | <tr><td><tt>value</tt></td><td>Value of attribute</td></tr> | |
2206 | </tbody></table></div> | |
2207 | <h4>Returns</h4> | |
2208 | <p>New attribute</p> | |
2209 | <!-- NEW PAGE --> | |
2210 | <h3 class='title'><a name='ippAddIntegers'>ippAddIntegers()</a></h3> | |
2211 | <h4>Description</h4> | |
2212 | <p>Add an array of integer values.</p> | |
2213 | <h4>Syntax</h4> | |
2214 | <pre> | |
2215 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2216 | ippAddIntegers( | |
2217 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2218 | ipp_tag_t group, | |
2219 | ipp_tag_t type, | |
ecdc0628 | 2220 | const char * name, |
ef416fc2 | 2221 | int num_values, |
2222 | const int * values); | |
2223 | </pre> | |
2224 | <h4>Arguments</h4> | |
2225 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2226 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2227 | <tbody> | |
ecdc0628 | 2228 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2229 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2230 | <tr><td><tt>type</tt></td><td>Type of attribute</td></tr> | |
2231 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2232 | <tr><td><tt>num_values</tt></td><td>Number of values</td></tr> | |
2233 | <tr><td><tt>values</tt></td><td>Values</td></tr> | |
2234 | </tbody></table></div> | |
2235 | <h4>Returns</h4> | |
2236 | <p>New attribute</p> | |
2237 | <!-- NEW PAGE --> | |
2238 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ippAddOctetString'>ippAddOctetString()</a></h3> | |
2239 | <h4>Description</h4> | |
ecdc0628 | 2240 | <p>Add an octetString value to an IPP message. |
ef416fc2 | 2241 | |
2242 | </p> | |
2243 | <h4>Syntax</h4> | |
2244 | <pre> | |
2245 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2246 | ippAddOctetString( | |
2247 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2248 | ipp_tag_t group, | |
ecdc0628 | 2249 | const char * name, |
ef416fc2 | 2250 | const void * data, |
2251 | int datalen); | |
2252 | </pre> | |
2253 | <h4>Arguments</h4> | |
2254 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2255 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2256 | <tbody> | |
ecdc0628 | 2257 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2258 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2259 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2260 | <tr><td><tt>data</tt></td><td>octetString data</td></tr> | |
2261 | <tr><td><tt>datalen</tt></td><td>Length of data in bytes</td></tr> | |
2262 | </tbody></table></div> | |
2263 | <h4>Returns</h4> | |
2264 | <p>New attribute</p> | |
2265 | <!-- NEW PAGE --> | |
2266 | <h3 class='title'><a name='ippAddRange'>ippAddRange()</a></h3> | |
2267 | <h4>Description</h4> | |
ecdc0628 | 2268 | <p>Add a range of values to an IPP message.</p> |
ef416fc2 | 2269 | <h4>Syntax</h4> |
2270 | <pre> | |
2271 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2272 | ippAddRange( | |
2273 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2274 | ipp_tag_t group, | |
ecdc0628 | 2275 | const char * name, |
ef416fc2 | 2276 | int lower, |
2277 | int upper); | |
2278 | </pre> | |
2279 | <h4>Arguments</h4> | |
2280 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2281 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2282 | <tbody> | |
ecdc0628 | 2283 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2284 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2285 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2286 | <tr><td><tt>lower</tt></td><td>Lower value</td></tr> | |
2287 | <tr><td><tt>upper</tt></td><td>Upper value</td></tr> | |
2288 | </tbody></table></div> | |
2289 | <h4>Returns</h4> | |
2290 | <p>New attribute</p> | |
2291 | <!-- NEW PAGE --> | |
2292 | <h3 class='title'><a name='ippAddRanges'>ippAddRanges()</a></h3> | |
2293 | <h4>Description</h4> | |
ecdc0628 | 2294 | <p>Add ranges of values to an IPP message.</p> |
ef416fc2 | 2295 | <h4>Syntax</h4> |
2296 | <pre> | |
2297 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2298 | ippAddRanges( | |
2299 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2300 | ipp_tag_t group, | |
ecdc0628 | 2301 | const char * name, |
ef416fc2 | 2302 | int num_values, |
2303 | const int * lower, | |
2304 | const int * upper); | |
2305 | </pre> | |
2306 | <h4>Arguments</h4> | |
2307 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2308 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2309 | <tbody> | |
ecdc0628 | 2310 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2311 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2312 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2313 | <tr><td><tt>num_values</tt></td><td>Number of values</td></tr> | |
2314 | <tr><td><tt>lower</tt></td><td>Lower values</td></tr> | |
2315 | <tr><td><tt>upper</tt></td><td>Upper values</td></tr> | |
2316 | </tbody></table></div> | |
2317 | <h4>Returns</h4> | |
2318 | <p>New attribute</p> | |
2319 | <!-- NEW PAGE --> | |
2320 | <h3 class='title'><a name='ippAddResolution'>ippAddResolution()</a></h3> | |
2321 | <h4>Description</h4> | |
ecdc0628 | 2322 | <p>Add a resolution value to an IPP message.</p> |
ef416fc2 | 2323 | <h4>Syntax</h4> |
2324 | <pre> | |
2325 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2326 | ippAddResolution( | |
2327 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2328 | ipp_tag_t group, | |
ecdc0628 | 2329 | const char * name, |
ef416fc2 | 2330 | ipp_res_t units, |
2331 | int xres, | |
2332 | int yres); | |
2333 | </pre> | |
2334 | <h4>Arguments</h4> | |
2335 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2336 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2337 | <tbody> | |
ecdc0628 | 2338 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2339 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2340 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2341 | <tr><td><tt>units</tt></td><td>Units for resolution</td></tr> | |
2342 | <tr><td><tt>xres</tt></td><td>X resolution</td></tr> | |
2343 | <tr><td><tt>yres</tt></td><td>Y resolution</td></tr> | |
2344 | </tbody></table></div> | |
2345 | <h4>Returns</h4> | |
2346 | <p>New attribute</p> | |
2347 | <!-- NEW PAGE --> | |
2348 | <h3 class='title'><a name='ippAddResolutions'>ippAddResolutions()</a></h3> | |
2349 | <h4>Description</h4> | |
ecdc0628 | 2350 | <p>Add resolution values to an IPP message.</p> |
ef416fc2 | 2351 | <h4>Syntax</h4> |
2352 | <pre> | |
2353 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2354 | ippAddResolutions( | |
2355 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2356 | ipp_tag_t group, | |
ecdc0628 | 2357 | const char * name, |
ef416fc2 | 2358 | int num_values, |
2359 | ipp_res_t units, | |
2360 | const int * xres, | |
2361 | const int * yres); | |
2362 | </pre> | |
2363 | <h4>Arguments</h4> | |
2364 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2365 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2366 | <tbody> | |
ecdc0628 | 2367 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2368 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2369 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2370 | <tr><td><tt>num_values</tt></td><td>Number of values</td></tr> | |
2371 | <tr><td><tt>units</tt></td><td>Units for resolution</td></tr> | |
2372 | <tr><td><tt>xres</tt></td><td>X resolutions</td></tr> | |
2373 | <tr><td><tt>yres</tt></td><td>Y resolutions</td></tr> | |
2374 | </tbody></table></div> | |
2375 | <h4>Returns</h4> | |
2376 | <p>New attribute</p> | |
2377 | <!-- NEW PAGE --> | |
2378 | <h3 class='title'><a name='ippAddSeparator'>ippAddSeparator()</a></h3> | |
2379 | <h4>Description</h4> | |
ecdc0628 | 2380 | <p>Add a group separator to an IPP message.</p> |
ef416fc2 | 2381 | <h4>Syntax</h4> |
2382 | <pre> | |
2383 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2384 | ippAddSeparator( | |
2385 | <a href='#ipp_t'>ipp_t</a> * ipp); | |
2386 | </pre> | |
2387 | <h4>Arguments</h4> | |
2388 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2389 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2390 | <tbody> | |
ecdc0628 | 2391 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2392 | </tbody></table></div> |
2393 | <h4>Returns</h4> | |
2394 | <p>New attribute</p> | |
2395 | <!-- NEW PAGE --> | |
2396 | <h3 class='title'><a name='ippAddString'>ippAddString()</a></h3> | |
2397 | <h4>Description</h4> | |
ecdc0628 | 2398 | <p>Add a language-encoded string to an IPP message.</p> |
ef416fc2 | 2399 | <h4>Syntax</h4> |
2400 | <pre> | |
2401 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2402 | ippAddString( | |
2403 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2404 | ipp_tag_t group, | |
2405 | ipp_tag_t type, | |
ecdc0628 | 2406 | const char * name, |
2407 | const char * charset, | |
2408 | const char * value); | |
ef416fc2 | 2409 | </pre> |
2410 | <h4>Arguments</h4> | |
2411 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2412 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2413 | <tbody> | |
ecdc0628 | 2414 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2415 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2416 | <tr><td><tt>type</tt></td><td>Type of attribute</td></tr> | |
2417 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2418 | <tr><td><tt>charset</tt></td><td>Character set</td></tr> | |
2419 | <tr><td><tt>value</tt></td><td>Value</td></tr> | |
2420 | </tbody></table></div> | |
2421 | <h4>Returns</h4> | |
2422 | <p>New attribute</p> | |
2423 | <!-- NEW PAGE --> | |
2424 | <h3 class='title'><a name='ippAddStrings'>ippAddStrings()</a></h3> | |
2425 | <h4>Description</h4> | |
ecdc0628 | 2426 | <p>Add language-encoded strings to an IPP message.</p> |
ef416fc2 | 2427 | <h4>Syntax</h4> |
2428 | <pre> | |
2429 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2430 | ippAddStrings( | |
2431 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2432 | ipp_tag_t group, | |
2433 | ipp_tag_t type, | |
ecdc0628 | 2434 | const char * name, |
ef416fc2 | 2435 | int num_values, |
ecdc0628 | 2436 | const char * charset, |
2437 | const char *const * values); | |
ef416fc2 | 2438 | </pre> |
2439 | <h4>Arguments</h4> | |
2440 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2441 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2442 | <tbody> | |
ecdc0628 | 2443 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2444 | <tr><td><tt>group</tt></td><td>IPP group</td></tr> |
2445 | <tr><td><tt>type</tt></td><td>Type of attribute</td></tr> | |
2446 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> | |
2447 | <tr><td><tt>num_values</tt></td><td>Number of values</td></tr> | |
2448 | <tr><td><tt>charset</tt></td><td>Character set</td></tr> | |
2449 | <tr><td><tt>values</tt></td><td>Values</td></tr> | |
2450 | </tbody></table></div> | |
2451 | <h4>Returns</h4> | |
2452 | <p>New attribute</p> | |
2453 | <!-- NEW PAGE --> | |
2454 | <h3 class='title'><a name='ippDateToTime'>ippDateToTime()</a></h3> | |
2455 | <h4>Description</h4> | |
2456 | <p>Convert from RFC 1903 Date/Time format to UNIX time | |
2457 | in seconds.</p> | |
2458 | <h4>Syntax</h4> | |
2459 | <pre> | |
2460 | time_t | |
2461 | ippDateToTime( | |
2462 | const <a href='#ipp_uchar_t'>ipp_uchar_t</a> * date); | |
2463 | </pre> | |
2464 | <h4>Arguments</h4> | |
2465 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2466 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2467 | <tbody> | |
2468 | <tr><td><tt>date</tt></td><td>RFC 1903 date info</td></tr> | |
2469 | </tbody></table></div> | |
2470 | <h4>Returns</h4> | |
2471 | <p>UNIX time value</p> | |
2472 | <!-- NEW PAGE --> | |
2473 | <h3 class='title'><a name='ippDelete'>ippDelete()</a></h3> | |
2474 | <h4>Description</h4> | |
ecdc0628 | 2475 | <p>Delete an IPP message.</p> |
ef416fc2 | 2476 | <h4>Syntax</h4> |
2477 | <pre> | |
2478 | void | |
2479 | ippDelete( | |
2480 | <a href='#ipp_t'>ipp_t</a> * ipp); | |
2481 | </pre> | |
2482 | <h4>Arguments</h4> | |
2483 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2484 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2485 | <tbody> | |
ecdc0628 | 2486 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2487 | </tbody></table></div> |
2488 | <h4>Returns</h4> | |
2489 | <p>Nothing.</p> | |
2490 | <!-- NEW PAGE --> | |
2491 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='ippDeleteAttribute'>ippDeleteAttribute()</a></h3> | |
2492 | <h4>Description</h4> | |
ecdc0628 | 2493 | <p>Delete a single attribute in an IPP message. |
ef416fc2 | 2494 | |
2495 | </p> | |
2496 | <h4>Syntax</h4> | |
2497 | <pre> | |
2498 | void | |
2499 | ippDeleteAttribute( | |
2500 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
2501 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * attr); | |
2502 | </pre> | |
2503 | <h4>Arguments</h4> | |
2504 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2505 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2506 | <tbody> | |
ecdc0628 | 2507 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2508 | <tr><td><tt>attr</tt></td><td>Attribute to delete</td></tr> |
2509 | </tbody></table></div> | |
2510 | <h4>Returns</h4> | |
2511 | <p>Nothing.</p> | |
2512 | <!-- NEW PAGE --> | |
2513 | <h3 class='title'><a name='ippErrorString'>ippErrorString()</a></h3> | |
2514 | <h4>Description</h4> | |
2515 | <p>Return a name for the given status code.</p> | |
2516 | <h4>Syntax</h4> | |
2517 | <pre> | |
ecdc0628 | 2518 | const char * |
ef416fc2 | 2519 | ippErrorString( |
2520 | ipp_status_t error); | |
2521 | </pre> | |
2522 | <h4>Arguments</h4> | |
2523 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2524 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2525 | <tbody> | |
2526 | <tr><td><tt>error</tt></td><td>Error status</td></tr> | |
2527 | </tbody></table></div> | |
2528 | <h4>Returns</h4> | |
2529 | <p>Text string</p> | |
2530 | <!-- NEW PAGE --> | |
2531 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ippErrorValue'>ippErrorValue()</a></h3> | |
2532 | <h4>Description</h4> | |
2533 | <p>Return a status code for the given name. | |
2534 | ||
2535 | </p> | |
2536 | <h4>Syntax</h4> | |
2537 | <pre> | |
2538 | ipp_status_t | |
2539 | ippErrorValue( | |
ecdc0628 | 2540 | const char * name); |
ef416fc2 | 2541 | </pre> |
2542 | <h4>Arguments</h4> | |
2543 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2544 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2545 | <tbody> | |
2546 | <tr><td><tt>name</tt></td><td>Name</td></tr> | |
2547 | </tbody></table></div> | |
2548 | <h4>Returns</h4> | |
2549 | <p>IPP status code</p> | |
2550 | <!-- NEW PAGE --> | |
2551 | <h3 class='title'><a name='ippFindAttribute'>ippFindAttribute()</a></h3> | |
2552 | <h4>Description</h4> | |
2553 | <p>Find a named attribute in a request...</p> | |
2554 | <h4>Syntax</h4> | |
2555 | <pre> | |
2556 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2557 | ippFindAttribute( | |
2558 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
ecdc0628 | 2559 | const char * name, |
ef416fc2 | 2560 | ipp_tag_t type); |
2561 | </pre> | |
2562 | <h4>Arguments</h4> | |
2563 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2564 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2565 | <tbody> | |
ecdc0628 | 2566 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2567 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> |
2568 | <tr><td><tt>type</tt></td><td>Type of attribute</td></tr> | |
2569 | </tbody></table></div> | |
2570 | <h4>Returns</h4> | |
2571 | <p>Matching attribute</p> | |
2572 | <!-- NEW PAGE --> | |
2573 | <h3 class='title'><a name='ippFindNextAttribute'>ippFindNextAttribute()</a></h3> | |
2574 | <h4>Description</h4> | |
2575 | <p>Find the next named attribute in a request...</p> | |
2576 | <h4>Syntax</h4> | |
2577 | <pre> | |
2578 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * | |
2579 | ippFindNextAttribute( | |
2580 | <a href='#ipp_t'>ipp_t</a> * ipp, | |
ecdc0628 | 2581 | const char * name, |
ef416fc2 | 2582 | ipp_tag_t type); |
2583 | </pre> | |
2584 | <h4>Arguments</h4> | |
2585 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2586 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2587 | <tbody> | |
ecdc0628 | 2588 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2589 | <tr><td><tt>name</tt></td><td>Name of attribute</td></tr> |
2590 | <tr><td><tt>type</tt></td><td>Type of attribute</td></tr> | |
2591 | </tbody></table></div> | |
2592 | <h4>Returns</h4> | |
2593 | <p>Matching attribute</p> | |
2594 | <!-- NEW PAGE --> | |
2595 | <h3 class='title'><a name='ippLength'>ippLength()</a></h3> | |
2596 | <h4>Description</h4> | |
ecdc0628 | 2597 | <p>Compute the length of an IPP message.</p> |
ef416fc2 | 2598 | <h4>Syntax</h4> |
2599 | <pre> | |
2600 | size_t | |
2601 | ippLength( | |
2602 | <a href='#ipp_t'>ipp_t</a> * ipp); | |
2603 | </pre> | |
2604 | <h4>Arguments</h4> | |
2605 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2606 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2607 | <tbody> | |
ecdc0628 | 2608 | <tr><td><tt>ipp</tt></td><td>IPP message</td></tr> |
ef416fc2 | 2609 | </tbody></table></div> |
2610 | <h4>Returns</h4> | |
ecdc0628 | 2611 | <p>Size of IPP message</p> |
ef416fc2 | 2612 | <!-- NEW PAGE --> |
2613 | <h3 class='title'><a name='ippNew'>ippNew()</a></h3> | |
2614 | <h4>Description</h4> | |
ecdc0628 | 2615 | <p>Allocate a new IPP message.</p> |
ef416fc2 | 2616 | <h4>Syntax</h4> |
2617 | <pre> | |
2618 | <a href='#ipp_t'>ipp_t</a> * | |
2619 | ippNew(void); | |
2620 | </pre> | |
2621 | <h4>Arguments</h4> | |
2622 | <p>None.</p> | |
2623 | <h4>Returns</h4> | |
ecdc0628 | 2624 | <p>New IPP message</p> |
2625 | <!-- NEW PAGE --> | |
2626 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ippNewRequest'>ippNewRequest()</a></h3> | |
2627 | <h4>Description</h4> | |
2628 | <p>Allocate a new IPP request message. | |
2629 | ||
2630 | The new request message is initialized with the attributes-charset and | |
2631 | attributes-natural-language attributes added. The | |
2632 | attributes-natural-language value is derived from the current locale. | |
2633 | ||
2634 | </p> | |
2635 | <h4>Syntax</h4> | |
2636 | <pre> | |
2637 | <a href='#ipp_t'>ipp_t</a> * | |
2638 | ippNewRequest( | |
2639 | ipp_op_t op); | |
2640 | </pre> | |
2641 | <h4>Arguments</h4> | |
2642 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2643 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2644 | <tbody> | |
2645 | <tr><td><tt>op</tt></td><td>Operation code</td></tr> | |
2646 | </tbody></table></div> | |
2647 | <h4>Returns</h4> | |
2648 | <p>IPP request message</p> | |
ef416fc2 | 2649 | <!-- NEW PAGE --> |
2650 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ippOpString'>ippOpString()</a></h3> | |
2651 | <h4>Description</h4> | |
2652 | <p>Return a name for the given operation id. | |
2653 | ||
2654 | </p> | |
2655 | <h4>Syntax</h4> | |
2656 | <pre> | |
ecdc0628 | 2657 | const char * |
ef416fc2 | 2658 | ippOpString( |
2659 | ipp_op_t op); | |
2660 | </pre> | |
2661 | <h4>Arguments</h4> | |
2662 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2663 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2664 | <tbody> | |
2665 | <tr><td><tt>op</tt></td><td>Operation ID</td></tr> | |
2666 | </tbody></table></div> | |
2667 | <h4>Returns</h4> | |
2668 | <p>Name</p> | |
2669 | <!-- NEW PAGE --> | |
2670 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ippOpValue'>ippOpValue()</a></h3> | |
2671 | <h4>Description</h4> | |
2672 | <p>Return an operation id for the given name. | |
2673 | ||
2674 | </p> | |
2675 | <h4>Syntax</h4> | |
2676 | <pre> | |
2677 | ipp_op_t | |
2678 | ippOpValue( | |
ecdc0628 | 2679 | const char * name); |
ef416fc2 | 2680 | </pre> |
2681 | <h4>Arguments</h4> | |
2682 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2683 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2684 | <tbody> | |
2685 | <tr><td><tt>name</tt></td><td>Textual name</td></tr> | |
2686 | </tbody></table></div> | |
2687 | <h4>Returns</h4> | |
2688 | <p>Operation ID</p> | |
2689 | <!-- NEW PAGE --> | |
2690 | <h3 class='title'><a name='ippPort'>ippPort()</a></h3> | |
2691 | <h4>Description</h4> | |
2692 | <p>Return the default IPP port number.</p> | |
2693 | <h4>Syntax</h4> | |
2694 | <pre> | |
2695 | int | |
2696 | ippPort(void); | |
2697 | </pre> | |
2698 | <h4>Arguments</h4> | |
2699 | <p>None.</p> | |
2700 | <h4>Returns</h4> | |
2701 | <p>Port number</p> | |
2702 | <!-- NEW PAGE --> | |
2703 | <h3 class='title'><a name='ippRead'>ippRead()</a></h3> | |
2704 | <h4>Description</h4> | |
ecdc0628 | 2705 | <p>Read data for an IPP message from a HTTP connection.</p> |
ef416fc2 | 2706 | <h4>Syntax</h4> |
2707 | <pre> | |
2708 | ipp_state_t | |
2709 | ippRead( | |
2710 | <a href='#http_t'>http_t</a> * http, | |
2711 | <a href='#ipp_t'>ipp_t</a> * ipp); | |
2712 | </pre> | |
2713 | <h4>Arguments</h4> | |
2714 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2715 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2716 | <tbody> | |
2717 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> | |
2718 | <tr><td><tt>ipp</tt></td><td>IPP data</td></tr> | |
2719 | </tbody></table></div> | |
2720 | <h4>Returns</h4> | |
2721 | <p>Current state</p> | |
2722 | <!-- NEW PAGE --> | |
2723 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='ippReadFile'>ippReadFile()</a></h3> | |
2724 | <h4>Description</h4> | |
ecdc0628 | 2725 | <p>Read data for an IPP message from a file. |
ef416fc2 | 2726 | |
2727 | </p> | |
2728 | <h4>Syntax</h4> | |
2729 | <pre> | |
2730 | ipp_state_t | |
2731 | ippReadFile( | |
2732 | int fd, | |
2733 | <a href='#ipp_t'>ipp_t</a> * ipp); | |
2734 | </pre> | |
2735 | <h4>Arguments</h4> | |
2736 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2737 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2738 | <tbody> | |
2739 | <tr><td><tt>fd</tt></td><td>HTTP data</td></tr> | |
2740 | <tr><td><tt>ipp</tt></td><td>IPP data</td></tr> | |
2741 | </tbody></table></div> | |
2742 | <h4>Returns</h4> | |
2743 | <p>Current state</p> | |
2744 | <!-- NEW PAGE --> | |
ecdc0628 | 2745 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ippReadIO'>ippReadIO()</a></h3> |
ef416fc2 | 2746 | <h4>Description</h4> |
ecdc0628 | 2747 | <p>Read data for an IPP message. |
ef416fc2 | 2748 | |
2749 | </p> | |
2750 | <h4>Syntax</h4> | |
2751 | <pre> | |
2752 | ipp_state_t | |
2753 | ippReadIO( | |
2754 | void * src, | |
2755 | <a href='#ipp_iocb_t'>ipp_iocb_t</a> cb, | |
2756 | int blocking, | |
2757 | <a href='#ipp_t'>ipp_t</a> * parent, | |
2758 | <a href='#ipp_t'>ipp_t</a> * ipp); | |
2759 | </pre> | |
2760 | <h4>Arguments</h4> | |
2761 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2762 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2763 | <tbody> | |
2764 | <tr><td><tt>src</tt></td><td>Data source</td></tr> | |
2765 | <tr><td><tt>cb</tt></td><td>Read callback function</td></tr> | |
2766 | <tr><td><tt>blocking</tt></td><td>Use blocking IO?</td></tr> | |
2767 | <tr><td><tt>parent</tt></td><td>Parent request, if any</td></tr> | |
2768 | <tr><td><tt>ipp</tt></td><td>IPP data</td></tr> | |
2769 | </tbody></table></div> | |
2770 | <h4>Returns</h4> | |
2771 | <p>Current state</p> | |
2772 | <!-- NEW PAGE --> | |
2773 | <h3 class='title'><a name='ippSetPort'>ippSetPort()</a></h3> | |
2774 | <h4>Description</h4> | |
2775 | <p>Set the default port number.</p> | |
2776 | <h4>Syntax</h4> | |
2777 | <pre> | |
2778 | void | |
2779 | ippSetPort( | |
2780 | int p); | |
2781 | </pre> | |
2782 | <h4>Arguments</h4> | |
2783 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2784 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2785 | <tbody> | |
2786 | <tr><td><tt>p</tt></td><td>Port number to use</td></tr> | |
2787 | </tbody></table></div> | |
2788 | <h4>Returns</h4> | |
2789 | <p>Nothing.</p> | |
2790 | <!-- NEW PAGE --> | |
2791 | <h3 class='title'><a name='ippTimeToDate'>ippTimeToDate()</a></h3> | |
2792 | <h4>Description</h4> | |
2793 | <p>Convert from UNIX time to RFC 1903 format.</p> | |
2794 | <h4>Syntax</h4> | |
2795 | <pre> | |
2796 | const <a href='#ipp_uchar_t'>ipp_uchar_t</a> * | |
2797 | ippTimeToDate( | |
2798 | time_t t); | |
2799 | </pre> | |
2800 | <h4>Arguments</h4> | |
2801 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2802 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2803 | <tbody> | |
2804 | <tr><td><tt>t</tt></td><td>UNIX time value</td></tr> | |
2805 | </tbody></table></div> | |
2806 | <h4>Returns</h4> | |
2807 | <p>RFC-1903 date/time data</p> | |
2808 | <!-- NEW PAGE --> | |
2809 | <h3 class='title'><a name='ippWrite'>ippWrite()</a></h3> | |
2810 | <h4>Description</h4> | |
ecdc0628 | 2811 | <p>Write data for an IPP message to a HTTP connection.</p> |
ef416fc2 | 2812 | <h4>Syntax</h4> |
2813 | <pre> | |
2814 | ipp_state_t | |
2815 | ippWrite( | |
2816 | <a href='#http_t'>http_t</a> * http, | |
2817 | <a href='#ipp_t'>ipp_t</a> * ipp); | |
2818 | </pre> | |
2819 | <h4>Arguments</h4> | |
2820 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2821 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2822 | <tbody> | |
2823 | <tr><td><tt>http</tt></td><td>HTTP connection</td></tr> | |
2824 | <tr><td><tt>ipp</tt></td><td>IPP data</td></tr> | |
2825 | </tbody></table></div> | |
2826 | <h4>Returns</h4> | |
2827 | <p>Current state</p> | |
2828 | <!-- NEW PAGE --> | |
2829 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='ippWriteFile'>ippWriteFile()</a></h3> | |
2830 | <h4>Description</h4> | |
ecdc0628 | 2831 | <p>Write data for an IPP message to a file. |
ef416fc2 | 2832 | |
2833 | </p> | |
2834 | <h4>Syntax</h4> | |
2835 | <pre> | |
2836 | ipp_state_t | |
2837 | ippWriteFile( | |
2838 | int fd, | |
2839 | <a href='#ipp_t'>ipp_t</a> * ipp); | |
2840 | </pre> | |
2841 | <h4>Arguments</h4> | |
2842 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2843 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2844 | <tbody> | |
2845 | <tr><td><tt>fd</tt></td><td>HTTP data</td></tr> | |
2846 | <tr><td><tt>ipp</tt></td><td>IPP data</td></tr> | |
2847 | </tbody></table></div> | |
2848 | <h4>Returns</h4> | |
2849 | <p>Current state</p> | |
2850 | <!-- NEW PAGE --> | |
ecdc0628 | 2851 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ippWriteIO'>ippWriteIO()</a></h3> |
ef416fc2 | 2852 | <h4>Description</h4> |
ecdc0628 | 2853 | <p>Write data for an IPP message. |
ef416fc2 | 2854 | |
2855 | </p> | |
2856 | <h4>Syntax</h4> | |
2857 | <pre> | |
2858 | ipp_state_t | |
2859 | ippWriteIO( | |
2860 | void * dst, | |
2861 | <a href='#ipp_iocb_t'>ipp_iocb_t</a> cb, | |
2862 | int blocking, | |
2863 | <a href='#ipp_t'>ipp_t</a> * parent, | |
2864 | <a href='#ipp_t'>ipp_t</a> * ipp); | |
2865 | </pre> | |
2866 | <h4>Arguments</h4> | |
2867 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
2868 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2869 | <tbody> | |
2870 | <tr><td><tt>dst</tt></td><td>Destination</td></tr> | |
2871 | <tr><td><tt>cb</tt></td><td>Write callback function</td></tr> | |
2872 | <tr><td><tt>blocking</tt></td><td>Use blocking IO?</td></tr> | |
ecdc0628 | 2873 | <tr><td><tt>parent</tt></td><td>Parent IPP message</td></tr> |
ef416fc2 | 2874 | <tr><td><tt>ipp</tt></td><td>IPP data</td></tr> |
2875 | </tbody></table></div> | |
2876 | <h4>Returns</h4> | |
2877 | <p>Current state</p> | |
2878 | <!-- NEW PAGE --> | |
2879 | <h2 class='title'><a name='STRUCTURES'>Structures</a></h2> | |
2880 | <ul> | |
ef416fc2 | 2881 | <li><a href='#http_addrlist_s'><tt>http_addrlist_s</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ef416fc2 | 2882 | <li><a href='#ipp_attribute_s'><tt>ipp_attribute_s</tt></a> </li> |
ecdc0628 | 2883 | <li><a href='#ipp_s'><tt>ipp_s</tt></a> </li> |
ef416fc2 | 2884 | </ul> |
2885 | <!-- NEW PAGE --> | |
ef416fc2 | 2886 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='http_addrlist_s'>http_addrlist_s</a></h3> |
2887 | <h4>Description</h4> | |
2888 | <p>Socket address list, which is | |
2889 | used to enumerate all of the | |
2890 | addresses that are associated | |
2891 | with a hostname. </p> | |
2892 | <h4>Definition</h4> | |
2893 | <pre> | |
2894 | struct http_addrlist_s | |
2895 | { | |
2896 | <a href='#http_addr_t'>http_addr_t</a> addr; | |
2897 | struct <a href='#http_addrlist_s'>http_addrlist_s</a> * next; | |
2898 | }; | |
2899 | </pre> | |
2900 | <h4>Members</h4> | |
2901 | <div class='table'><table align='center' border='1' width='80%'> | |
2902 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2903 | <tbody> | |
2904 | <tr><td><tt>addr</tt> </td><td>Address</td></tr> | |
2905 | <tr><td><tt>next</tt> </td><td>Pointer to next address in list</td></tr> | |
2906 | </tbody></table></div> | |
2907 | <!-- NEW PAGE --> | |
ef416fc2 | 2908 | <h3 class='title'><a name='ipp_attribute_s'>ipp_attribute_s</a></h3> |
2909 | <h4>Description</h4> | |
2910 | <p>Attribute</p> | |
2911 | <h4>Definition</h4> | |
2912 | <pre> | |
2913 | struct ipp_attribute_s | |
2914 | { | |
ecdc0628 | 2915 | char * name; |
ef416fc2 | 2916 | struct <a href='#ipp_attribute_s'>ipp_attribute_s</a> * next; |
2917 | int num_values; | |
2918 | ipp_tag_t group_tag, value_tag; | |
2919 | <a href='#ipp_value_t'>ipp_value_t</a> values[1]; | |
2920 | }; | |
2921 | </pre> | |
2922 | <h4>Members</h4> | |
2923 | <div class='table'><table align='center' border='1' width='80%'> | |
2924 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2925 | <tbody> | |
2926 | <tr><td><tt>name</tt> </td><td>Name of attribute</td></tr> | |
2927 | <tr><td><tt>next</tt> </td><td>Next attribute in list</td></tr> | |
2928 | <tr><td><tt>num_values</tt> </td><td>Number of values</td></tr> | |
2929 | <tr><td><tt>value_tag</tt> </td><td>What type of value is it?</td></tr> | |
2930 | <tr><td><tt>values[1]</tt> </td><td>Values</td></tr> | |
2931 | </tbody></table></div> | |
2932 | <!-- NEW PAGE --> | |
ecdc0628 | 2933 | <h3 class='title'><a name='ipp_s'>ipp_s</a></h3> |
ef416fc2 | 2934 | <h4>Description</h4> |
2935 | <p>IPP Request/Response/Notification</p> | |
2936 | <h4>Definition</h4> | |
2937 | <pre> | |
ecdc0628 | 2938 | struct ipp_s |
ef416fc2 | 2939 | { |
ecdc0628 | 2940 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * attrs; |
2941 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * current; | |
ef416fc2 | 2942 | ipp_tag_t curtag; |
ecdc0628 | 2943 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * last; |
ef416fc2 | 2944 | <a href='#ipp_attribute_t'>ipp_attribute_t</a> * prev; |
2945 | <a href='#ipp_request_t'>ipp_request_t</a> request; | |
2946 | ipp_state_t state; | |
2947 | }; | |
2948 | </pre> | |
2949 | <h4>Members</h4> | |
2950 | <div class='table'><table align='center' border='1' width='80%'> | |
2951 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
2952 | <tbody> | |
ecdc0628 | 2953 | <tr><td><tt>attrs</tt> </td><td>Attributes</td></tr> |
ef416fc2 | 2954 | <tr><td><tt>current</tt> </td><td>Current attribute (for read/write)</td></tr> |
2955 | <tr><td><tt>curtag</tt> </td><td>Current attribute group tag</td></tr> | |
ecdc0628 | 2956 | <tr><td><tt>last</tt> </td><td>Last attribute in list</td></tr> |
ef416fc2 | 2957 | <tr><td><tt>prev</tt> </td><td>Previous attribute (for read)</td></tr> |
2958 | <tr><td><tt>request</tt> </td><td>Request header</td></tr> | |
2959 | <tr><td><tt>state</tt> </td><td>State of request</td></tr> | |
2960 | </tbody></table></div> | |
2961 | <!-- NEW PAGE --> | |
2962 | <h2 class='title'><a name='TYPES'>Types</a></h2> | |
2963 | <ul> | |
ef416fc2 | 2964 | <li><a href='#http_addrlist_t'><tt>http_addrlist_t</tt></a> <span class='info'> CUPS 1.2 </span></li> |
2965 | <li><a href='#http_auth_t'><tt>http_auth_t</tt></a> </li> | |
2966 | <li><a href='#http_encoding_t'><tt>http_encoding_t</tt></a> </li> | |
2967 | <li><a href='#http_encryption_t'><tt>http_encryption_t</tt></a> </li> | |
2968 | <li><a href='#http_t'><tt>http_t</tt></a> </li> | |
2969 | <li><a href='#ipp_attribute_t'><tt>ipp_attribute_t</tt></a> </li> | |
ecdc0628 | 2970 | <li><a href='#ipp_iocb_t'><tt>ipp_iocb_t</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ef416fc2 | 2971 | <li><a href='#ipp_request_t'><tt>ipp_request_t</tt></a> </li> |
2972 | <li><a href='#ipp_t'><tt>ipp_t</tt></a> </li> | |
ecdc0628 | 2973 | <li><a href='#ipp_uchar_t'><tt>ipp_uchar_t</tt></a> </li> |
ef416fc2 | 2974 | <li><a href='#ipp_value_t'><tt>ipp_value_t</tt></a> </li> |
2975 | </ul> | |
2976 | <!-- NEW PAGE --> | |
ef416fc2 | 2977 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='http_addrlist_t'>http_addrlist_t</a></h3> |
2978 | <h4>Description</h4> | |
2979 | <p>Socket address list, which is | |
2980 | used to enumerate all of the | |
2981 | addresses that are associated | |
2982 | with a hostname. </p> | |
2983 | <h4>Definition</h4> | |
2984 | <pre> | |
2985 | typedef struct <a href='#http_addrlist_s'>http_addrlist_s</a> / http_addrlist_t; | |
2986 | </pre> | |
2987 | <!-- NEW PAGE --> | |
2988 | <h3 class='title'><a name='http_auth_t'>http_auth_t</a></h3> | |
2989 | <h4>Description</h4> | |
2990 | <p>HTTP authentication types</p> | |
2991 | <h4>Definition</h4> | |
2992 | <pre> | |
2993 | typedef enum <a href='#http_auth_e'>http_auth_e</a> http_auth_t; | |
2994 | </pre> | |
2995 | <!-- NEW PAGE --> | |
2996 | <h3 class='title'><a name='http_encoding_t'>http_encoding_t</a></h3> | |
2997 | <h4>Description</h4> | |
2998 | <p>HTTP transfer encoding values</p> | |
2999 | <h4>Definition</h4> | |
3000 | <pre> | |
3001 | typedef enum <a href='#http_encoding_e'>http_encoding_e</a> http_encoding_t; | |
3002 | </pre> | |
3003 | <!-- NEW PAGE --> | |
3004 | <h3 class='title'><a name='http_encryption_t'>http_encryption_t</a></h3> | |
3005 | <h4>Description</h4> | |
3006 | <p>HTTP encryption values</p> | |
3007 | <h4>Definition</h4> | |
3008 | <pre> | |
3009 | typedef enum <a href='#http_encryption_e'>http_encryption_e</a> http_encryption_t; | |
3010 | </pre> | |
3011 | <!-- NEW PAGE --> | |
3012 | <h3 class='title'><a name='http_t'>http_t</a></h3> | |
3013 | <h4>Description</h4> | |
3014 | <p>HTTP connection structure.</p> | |
3015 | <h4>Definition</h4> | |
3016 | <pre> | |
ecdc0628 | 3017 | typedef struct _http_s http_t; |
ef416fc2 | 3018 | </pre> |
3019 | <!-- NEW PAGE --> | |
3020 | <h3 class='title'><a name='ipp_attribute_t'>ipp_attribute_t</a></h3> | |
3021 | <h4>Description</h4> | |
3022 | <p>Attribute</p> | |
3023 | <h4>Definition</h4> | |
3024 | <pre> | |
3025 | typedef struct <a href='#ipp_attribute_s'>ipp_attribute_s</a> ipp_attribute_t; | |
3026 | </pre> | |
3027 | <!-- NEW PAGE --> | |
ecdc0628 | 3028 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ipp_iocb_t'>ipp_iocb_t</a></h3> |
ef416fc2 | 3029 | <h4>Description</h4> |
ecdc0628 | 3030 | <p>IPP IO Callback Function </p> |
ef416fc2 | 3031 | <h4>Definition</h4> |
3032 | <pre> | |
ecdc0628 | 3033 | typedef ssize_t (*ipp_iocb_t)(void *, <a href='#ipp_uchar_t'>ipp_uchar_t</a> *, size_t); |
ef416fc2 | 3034 | </pre> |
3035 | <!-- NEW PAGE --> | |
3036 | <h3 class='title'><a name='ipp_request_t'>ipp_request_t</a></h3> | |
3037 | <h4>Description</h4> | |
3038 | <p>Request Header</p> | |
3039 | <h4>Definition</h4> | |
3040 | <pre> | |
ecdc0628 | 3041 | typedef union <a href='#ipp_request_u'>ipp_request_u</a> ipp_request_t; |
ef416fc2 | 3042 | </pre> |
3043 | <!-- NEW PAGE --> | |
3044 | <h3 class='title'><a name='ipp_t'>ipp_t</a></h3> | |
3045 | <h4>Description</h4> | |
3046 | <p>Attribute Value</p> | |
3047 | <h4>Definition</h4> | |
3048 | <pre> | |
ecdc0628 | 3049 | typedef struct <a href='#ipp_s'>ipp_s</a> ipp_t; |
3050 | </pre> | |
3051 | <!-- NEW PAGE --> | |
3052 | <h3 class='title'><a name='ipp_uchar_t'>ipp_uchar_t</a></h3> | |
3053 | <h4>Description</h4> | |
3054 | <p>IPP status codes...</p> | |
3055 | <h4>Definition</h4> | |
3056 | <pre> | |
3057 | typedef typedef unsigned char ipp_uchar_t; | |
ef416fc2 | 3058 | </pre> |
3059 | <!-- NEW PAGE --> | |
3060 | <h3 class='title'><a name='ipp_value_t'>ipp_value_t</a></h3> | |
3061 | <h4>Description</h4> | |
3062 | <p>New in CUPS 1.1.19</p> | |
3063 | <h4>Definition</h4> | |
3064 | <pre> | |
ecdc0628 | 3065 | typedef union <a href='#ipp_value_u'>ipp_value_u</a> ipp_value_t; |
3066 | </pre> | |
3067 | <!-- NEW PAGE --> | |
3068 | <h2 class='title'><a name='UNIONS'>Unions</a></h2> | |
3069 | <ul> | |
3070 | <li><a href='#ipp_request_u'><tt>ipp_request_u</tt></a> </li> | |
3071 | <li><a href='#ipp_value_u'><tt>ipp_value_u</tt></a> </li> | |
3072 | </ul> | |
3073 | <!-- NEW PAGE --> | |
3074 | <h3 class='title'><a name='ipp_request_u'>ipp_request_u</a></h3> | |
3075 | <h4>Description</h4> | |
3076 | <p>Request Header</p> | |
3077 | <h4>Definition</h4> | |
3078 | <pre> | |
3079 | union ipp_request_u | |
3080 | { | |
3081 | }; | |
3082 | </pre> | |
3083 | <h4>Members</h4> | |
3084 | <div class='table'><table align='center' border='1' width='80%'> | |
3085 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
3086 | <tbody> | |
3087 | </tbody></table></div> | |
3088 | <!-- NEW PAGE --> | |
3089 | <h3 class='title'><a name='ipp_value_u'>ipp_value_u</a></h3> | |
3090 | <h4>Description</h4> | |
3091 | <p>New in CUPS 1.1.19</p> | |
3092 | <h4>Definition</h4> | |
3093 | <pre> | |
3094 | union ipp_value_u | |
3095 | { | |
3096 | char boolean; | |
3097 | <a href='#ipp_t'>ipp_t</a> * collection; | |
3098 | <a href='#ipp_uchar_t'>ipp_uchar_t</a> date[11]; | |
3099 | int integer; | |
3100 | }; | |
ef416fc2 | 3101 | </pre> |
ecdc0628 | 3102 | <h4>Members</h4> |
3103 | <div class='table'><table align='center' border='1' width='80%'> | |
3104 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
3105 | <tbody> | |
3106 | <tr><td><tt>boolean</tt> </td><td>Boolean value</td></tr> | |
3107 | <tr><td><tt>collection</tt> </td><td>Collection value</td></tr> | |
3108 | <tr><td><tt>date[11]</tt> </td><td>Date/time value</td></tr> | |
3109 | <tr><td><tt>integer</tt> </td><td>Integer/enumerated value</td></tr> | |
3110 | </tbody></table></div> | |
ef416fc2 | 3111 | </body> |
3112 | </html> |