/*
- * "$Id: http.h 7026 2007-10-19 00:57:45Z mike $"
+ * "$Id$"
*
- * Hyper-Text Transport Protocol definitions for CUPS.
+ * Hyper-Text Transport Protocol definitions for CUPS.
*
- * Copyright 2007-2012 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products, all rights reserved.
+ * Copyright 2007-2013 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law. Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file. If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
*
- * This file is subject to the Apple OS-Developed Software exception.
+ * This file is subject to the Apple OS-Developed Software exception.
*/
#ifndef _CUPS_HTTP_H_
# define s6_addr32 _S6_un._S6_u32
# elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)|| defined(__DragonFly__)
# define s6_addr32 __u6_addr.__u6_addr32
-# elif defined(__osf__)
-# define s6_addr32 s6_un.sa6_laddr
# elif defined(WIN32)
/*
* Windows only defines byte and 16-bit word members of the union and
HTTP_FIELD_UPGRADE, /* Upgrade field */
HTTP_FIELD_USER_AGENT, /* User-Agent field */
HTTP_FIELD_WWW_AUTHENTICATE, /* WWW-Authenticate field */
- HTTP_FIELD_ACCEPT_ENCODING, /* Accepting-Encoding field @since CUPS 1.7@ */
- HTTP_FIELD_ALLOW, /* Allow field @since CUPS 1.7@ */
- HTTP_FIELD_SERVER, /* Server field @since CUPS 1.7@ */
+ HTTP_FIELD_ACCEPT_ENCODING, /* Accepting-Encoding field @since CUPS 1.7/OS X 10.9@ */
+ HTTP_FIELD_ALLOW, /* Allow field @since CUPS 1.7/OS X 10.9@ */
+ HTTP_FIELD_SERVER, /* Server field @since CUPS 1.7/OS X 10.9@ */
HTTP_FIELD_MAX /* Maximum field index */
} http_field_t;
HTTP_STATE_TRACE, /* TRACE command, waiting for blank line */
HTTP_STATE_CONNECT, /* CONNECT command, waiting for blank line */
HTTP_STATE_STATUS, /* Command complete, sending status */
- HTTP_STATE_UNKNOWN_METHOD, /* Unknown request method, waiting for blank line @since CUPS 1.7@ */
- HTTP_STATE_UNKNOWN_VERSION /* Unknown request method, waiting for blank line @since CUPS 1.7@ */
+ HTTP_STATE_UNKNOWN_METHOD, /* Unknown request method, waiting for blank line @since CUPS 1.7/OS X 10.9@ */
+ HTTP_STATE_UNKNOWN_VERSION /* Unknown request method, waiting for blank line @since CUPS 1.7/OS X 10.9@ */
# ifndef _CUPS_NO_DEPRECATED
# define HTTP_WAITING HTTP_STATE_WAITING
typedef enum http_status_e /**** HTTP status codes ****/
{
HTTP_STATUS_ERROR = -1, /* An error response from httpXxxx() */
- HTTP_STATUS_NONE = 0, /* No Expect value @since CUPS 1.7@ */
+ HTTP_STATUS_NONE = 0, /* No Expect value @since CUPS 1.7/OS X 10.9@ */
HTTP_STATUS_CONTINUE = 100, /* Everything OK, keep going... */
HTTP_STATUS_SWITCHING_PROTOCOLS, /* HTTP upgrade to TLS/SSL */
HTTP_STATUS_GATEWAY_TIMEOUT, /* Gateway connection timed out */
HTTP_STATUS_NOT_SUPPORTED, /* HTTP version not supported */
- CUPS_STATUS_AUTHORIZATION_CANCELED = 1000,
+ HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED = 1000,
/* User canceled authorization @since CUPS 1.4@ */
- CUPS_STATUS_PKI_ERROR, /* Error negotiating a secure connection @since CUPS 1.5/OS X 10.7@ */
- CUPS_STATUS_WEBIF_DISABLED /* Web interface is disabled @private@ */
+ HTTP_STATUS_CUPS_PKI_ERROR, /* Error negotiating a secure connection @since CUPS 1.5/OS X 10.7@ */
+ HTTP_STATUS_CUPS_WEBIF_DISABLED /* Web interface is disabled @private@ */
# ifndef _CUPS_NO_DEPRECATED
/* Old names for this enumeration */
# define HTTP_GATEWAY_TIMEOUT HTTP_STATUS_GATEWAY_TIMEOUT
# define HTTP_NOT_SUPPORTED HTTP_STATUS_NOT_SUPPORTED
-# define HTTP_AUTHORIZATION_CANCELED CUPS_STATUS_AUTHORIZATION_CANCELED
-# define HTTP_PKI_ERROR CUPS_STATUS_PKI_ERROR
-# define HTTP_WEBIF_DISABLED CUPS_STATUS_WEBIF_DISABLED
+# define HTTP_AUTHORIZATION_CANCELED HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED
+# define HTTP_PKI_ERROR HTTP_STATUS_CUPS_PKI_ERROR
+# define HTTP_WEBIF_DISABLED HTTP_STATUS_CUPS_WEBIF_DISABLED
# endif /* !_CUPS_NO_DEPRECATED */
} http_status_t;
HTTP_URI_CODING_RESOURCE = 4, /* En/decode the resource portion */
HTTP_URI_CODING_MOST = 7, /* En/decode all but the query */
HTTP_URI_CODING_QUERY = 8, /* En/decode the query portion */
- HTTP_URI_CODING_ALL = 15 /* En/decode everything */
+ HTTP_URI_CODING_ALL = 15, /* En/decode everything */
+ HTTP_URI_CODING_RFC6874 = 16 /* Use RFC 6874 address format */
} http_uri_coding_t;
typedef enum http_version_e /**** HTTP version numbers ****/
extern void httpClearFields(http_t *http);
extern void httpClose(http_t *http);
extern http_t *httpConnect(const char *host, int port)
- _CUPS_DEPRECATED_MSG("Use httpConnect2 instead.");
+ _CUPS_DEPRECATED_1_7_MSG("Use httpConnect2 instead.");
extern http_t *httpConnectEncrypt(const char *host, int port,
http_encryption_t encryption)
- _CUPS_DEPRECATED_MSG("Use httpConnect2 instead.");
+ _CUPS_DEPRECATED_1_7_MSG("Use httpConnect2 instead.");
extern int httpDelete(http_t *http, const char *uri);
extern int httpEncryption(http_t *http, http_encryption_t e);
extern int httpError(http_t *http);
__attribute__ ((__format__ (__printf__, 2, 3)));
extern int httpPut(http_t *http, const char *uri);
extern int httpRead(http_t *http, char *buffer, int length) _CUPS_DEPRECATED_MSG("Use httpRead2 instead.");
-extern int httpReconnect(http_t *http) _CUPS_DEPRECATED_MSG("Use httpReconnect2 instead.");
+extern int httpReconnect(http_t *http) _CUPS_DEPRECATED_1_6_MSG("Use httpReconnect2 instead.");
extern void httpSeparate(const char *uri, char *method,
char *username, char *host, int *port,
char *resource) _CUPS_DEPRECATED_MSG("Use httpSeparateURI instead.");
_CUPS_API_1_6;
-/**** New in CUPS 1.7 ****/
+/**** New in CUPS 1.7/OS X 10.9 ****/
extern http_t *httpAcceptConnection(int fd, int blocking)
_CUPS_API_1_7;
extern http_addrlist_t *httpAddrCopyList(http_addrlist_t *src) _CUPS_API_1_7;
extern int httpAddrListen(http_addr_t *addr, int port)
_CUPS_API_1_7;
extern int httpAddrPort(http_addr_t *addr) _CUPS_API_1_7;
+extern char *httpAssembleUUID(const char *server, int port,
+ const char *name, int number,
+ char *buffer, size_t bufsize)
+ _CUPS_API_1_7;
extern http_t *httpConnect2(const char *host, int port,
http_addrlist_t *addrlist,
int family, http_encryption_t encryption,
extern http_state_t httpWriteResponse(http_t *http,
http_status_t status) _CUPS_API_1_7;
+/* New in CUPS 2.0 */
+extern int httpAddrClose(http_addr_t *addr, int fd) _CUPS_API_2_0;
+extern int httpAddrFamily(http_addr_t *addr) _CUPS_API_2_0;
+extern int httpCompareCredentials(cups_array_t *cred1,
+ cups_array_t *cred2)
+ _CUPS_API_2_0;
+extern int httpCreateCredentials(const char *path,
+ cups_array_t **credentials,
+ const char *common_name)
+ _CUPS_API_2_0;
+extern size_t httpCredentialsString(cups_array_t *credentials,
+ char *buffer, size_t bufsize)
+ _CUPS_API_2_0;
+extern http_field_t httpFieldValue(const char *name) _CUPS_API_2_0;
+extern time_t httpGetActivity(http_t *http) _CUPS_API_2_0;
+extern http_addr_t *httpGetAddress(http_t *http) _CUPS_API_2_0;
+extern http_encryption_t httpGetEncryption(http_t *http) _CUPS_API_2_0;
+extern http_keepalive_t httpGetKeepAlive(http_t *http) _CUPS_API_2_0;
+extern size_t httpGetPending(http_t *http) _CUPS_API_2_0;
+extern size_t httpGetReady(http_t *http) _CUPS_API_2_0;
+extern size_t httpGetRemaining(http_t *http) _CUPS_API_2_0;
+extern int httpIsChunked(http_t *http) _CUPS_API_2_0;
+extern int httpIsEncrypted(http_t *http) _CUPS_API_2_0;
+extern int httpLoadCredentials(const char *path,
+ cups_array_t **credentials,
+ const char *common_name)
+ _CUPS_API_2_0;
+extern const char *httpResolveHostname(http_t *http, char *buffer, size_t bufsize) _CUPS_API_2_0;
+extern int httpSaveCredentials(const char *path,
+ cups_array_t *credentials,
+ const char *common_name)
+ _CUPS_API_2_0;
+extern void httpSetKeepAlive(http_t *http, http_keepalive_t keep_alive) _CUPS_API_2_0;
+extern void httpShutdown(http_t *http) _CUPS_API_2_0;
+extern const char *httpStateString(http_state_t state);
+
/*
* C++ magic...
#endif /* !_CUPS_HTTP_H_ */
/*
- * End of "$Id: http.h 7026 2007-10-19 00:57:45Z mike $".
+ * End of "$Id$".
*/