19#define CMSI_HTTPCLIENT_PROTOCOL_GUID {0x471b2c0e, 0x6137, 0x4d55, 0x92, 0x36, 0xdd, 0x0f, 0xdb, 0xc2, 0x52, 0xfb}
26#define HTTP_CLIENT_VERSION_MINOR 0
27#define HTTP_CLIENT_VERSION_MAJOR 1
30#define HTTP_CLIENT_MAX_SEND_RECV_HEADERS 1024
31#define HTTP_CLIENT_INIT_SEND_RECV_HEADERS 2048
33#define HTTP_CLIENT_MAX_USERNAME_LENGTH 16
34#define HTTP_CLIENT_MAX_PASSWORD_LENGTH 16
36#define HTTP_CLIENT_MAX_64_ENCODED_CRED ((HTTP_CLIENT_MAX_USERNAME_LENGTH + HTTP_CLIENT_MAX_PASSWORD_LENGTH) * 2) + 4
37#define HTTP_CLIENT_MAX_CHUNK_HEADER 64
38#define HTTP_CLIENT_MAX_PROXY_HOST_LENGTH 64
39#define HTTP_CLIENT_MAX_TOKEN_LENGTH 512
40#define HTTP_CLIENT_MAX_TOKEN_NAME_LENGTH 32
41#define HTTP_CLIENT_MAX_HEADER_SEARCH_CLUE 1024
42#define HTTP_CLIENT_ALLOW_HEAD_VERB 0
44#define HTTP_CLIENT_MEMORY_RESIZABLE FALSE
45#define HTTP_CLIENT_MEMORY_RESIZE_FACTOR 16
47#define HTTP_CLIENT_DEFAULT_PORT 80
48#define HTTP_CLIENT_DEFAULT_SSL_PORT 443
49#define HTTP_CLIENT_DEFAULT_VERB 0
50#define HTTP_CLIENT_DEFAULT_VER "HTTP/1.1"
51#define HTTP_CLIENT_DEFAULT_PROXY_VER "HTTP/1.0"
52#define HTTP_CLIENT_DEFAULT_AGENT "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"
53#define HTTP_CLIENT_DEFAULT_TIMEOUT 30
54#define HTTP_CLIENT_DEFAULT_KEEP_ALIVE 30
55#define HTTP_CLIENT_DEFAULT_DIGEST_AUTH "MD5"
56#define HTTP_CLIENT_DEFAULT_PROXY_AUTH 1
58#define HTTP_CLIENT_CRLF "\r\n"
59#define HTTP_CLIENT_CRLFX2 "\r\n\r\n"
63#define HTTP_CLIENT_FLAG_SECURE 0x00000010
64#define HTTP_CLIENT_FLAG_URLANDPORT 0x00000020
65#define HTTP_CLIENT_FLAG_URLHTTPS 0x00000040
66#define HTTP_CLIENT_FLAG_USINGPROXY 0x00000080
67#define HTTP_CLIENT_FLAG_CHUNKED 0x00000100
70#define HTTP_STATUS_OK 200
71#define HTTP_STATUS_UNAUTHORIZED 401
72#define HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED 407
75#define HTTP_STATUS_OBJECT_MOVED 302
76#define HTTP_STATUS_OBJECT_MOVED_PERMANENTLY 301
77#define HTTP_STATUS_CONTINUE 100
81#define MIN(a,b) (((a) < (b)) ? (a) : (b))
82#define MAX(a,b) (((a) > (b)) ? (a) : (b))
84#define HTTP_TIMEOUT(nTimeout) (((nTimeout) > (0)) ? (nTimeout) : (HTTP_CLIENT_DEFAULT_TIMEOUT))
87#define ALIGN(size) ((size & 0xfffffffc) + ((size & 3) ? 4 : 0))
90#ifdef _HTTP_DEBUGGING_
91 typedef VOID _stdcall E_HTTPDebug(
const char *,
const char*,
UINT32,
char *,...);
229#ifdef _HTTP_DEBUGGING_
267#ifdef _HTTP_DEBUGGING_
struct _HTTP_CLIENT HTTP_CLIENT
enum _HTTP_VERB HTTP_VERB
#define HTTP_CLIENT_MAX_URL_LENGTH
Definition HTTPClientCommon.h:21
enum _HTTP_AUTH_SCHEMA HTTP_AUTH_SCHEMA
int BOOL
Definition HTTPClientWrapper.h:103
unsigned short UINT16
Definition HTTPClientWrapper.h:102
int INT32
Definition HTTPClientWrapper.h:36
#define VOID
Definition HTTPClientWrapper.h:95
unsigned int UINT32
Definition HTTPClientWrapper.h:35
char CHAR
Definition HTTPClientWrapper.h:101
UINT32 HTTPClientRecvResponse(HTTP_SESSION_HANDLE pSession, UINT32 nTimeout)
UINT32 HTTPIntrnHeadersSend(P_HTTP_SESSION pHTTPSession, HTTP_VERB HttpVerb)
UINT32 HTTPIntrnHeadersFind(P_HTTP_SESSION pHTTPSession, CHAR *pHeaderName, HTTP_PARAM *pParam, BOOL IncommingHeaders, UINT32 nOffset)
#define HTTP_CLIENT_MAX_HEADER_SEARCH_CLUE
Definition HTTPClient.h:41
UINT32 HTTPIntrnHeadersRemove(P_HTTP_SESSION pHTTPSession, CHAR *pHeaderName)
struct _HTTP_AUTH_HEADER HTTP_AUTH_HEADER
struct _HTTP_HEADERS HTTP_HEADERS
UINT32 HTTPIntrnSessionGetUpTime(VOID)
UINT32 HTTPClientAddRequestHeaders(HTTP_SESSION_HANDLE pSession, CHAR *pHeaderName, CHAR *pHeaderData, BOOL nInsert)
UINT32 HTTPClientSetProxy(HTTP_SESSION_HANDLE pSession, CHAR *pProxyName, UINT16 nPort, CHAR *pUserName, CHAR *pPassword)
UINT32 HTTPIntrnHeadersReceive(P_HTTP_SESSION pHTTPSession, UINT32 nTimeout)
UINT32 HTTPClientSetLocalConnection(HTTP_SESSION_HANDLE pSession, UINT32 nPort)
UINT32 HTTPIntrnResizeBuffer(P_HTTP_SESSION pHTTPSession, UINT32 nNewSize)
UINT32 HTTPIntrnGetRemoteChunkLength(P_HTTP_SESSION pHTTPSession)
HTTP_SESSION_HANDLE HTTPClientOpenRequest(HTTP_CLIENT_SESSION_FLAGS Flags)
UINT32 HTTPClientGetNextHeader(HTTP_SESSION_HANDLE pSession, CHAR *pHeaderBuffer, UINT32 *nLength)
UINT32 HTTPIntrnSend(P_HTTP_SESSION pHTTPSession, CHAR *pData, UINT32 *nLength)
UINT32 HTTPClientSetCredentials(HTTP_SESSION_HANDLE pSession, CHAR *pUserName, CHAR *pPassword)
UINT32 HTTP_SESSION_HANDLE
Definition HTTPClient.h:236
UINT32 HTTPIntrnSessionReset(P_HTTP_SESSION pHTTPSession, BOOL EntireSession)
UINT32 HTTPIntrnConnectionOpen(P_HTTP_SESSION pHTTPSession)
struct _HTTP_CREDENTIALS HTTP_CREDENTIALS
struct _HTTP_CONNECTION HTTP_CONNECTION
struct _HTTP_PROXY HTTP_PROXY
struct _HTTP_COUNTERS HTTP_COUNTERS
struct _HTTP_REQUEST HTTP_SESSION
#define HTTP_CLIENT_MAX_PROXY_HOST_LENGTH
Definition HTTPClient.h:38
struct _HTTP_REQUEST * P_HTTP_SESSION
UINT32 HTTPClientWriteData(HTTP_SESSION_HANDLE pSession, VOID *pBuffer, UINT32 nBufferLength, UINT32 nTimeout)
UINT32 HTTP_CLIENT_SESSION_FLAGS
Definition HTTPClient.h:237
UINT32 HTTPClientSendRequest(HTTP_SESSION_HANDLE pSession, CHAR *pUrl, VOID *pData, UINT32 nDataLength, BOOL TotalLength, UINT32 nTimeout, UINT32 nClientPort)
struct _HTTP_PARAM HTTP_PARAM
UINT32 HTTPIntrnAuthSendBasic(P_HTTP_SESSION pHTTPSession)
UINT32 HTTPIntrnAuthenticate(P_HTTP_SESSION pHTTPSession)
struct _HTTP_URL HTTP_URL
struct _HTTP_HEADERS_INFO HTTP_HEADERS_INFO
UINT32 HTTPIntrnGetRemoteHeaders(P_HTTP_SESSION pHTTPSession)
UINT32 HTTPClientCloseRequest(HTTP_SESSION_HANDLE *pSession)
UINT32 HTTPClientGetInfo(HTTP_SESSION_HANDLE pSession, HTTP_CLIENT *HTTPClient)
BOOL HTTPIntrnSessionEvalTimeout(P_HTTP_SESSION pHTTPSession)
UINT32 HTTPClientFindCloseHeader(HTTP_SESSION_HANDLE pSession)
UINT32 HTTPIntrnSetURL(P_HTTP_SESSION pHTTPSession, CHAR *pUrl, UINT32 nUrlLength)
#define HTTP_CLIENT_MAX_PASSWORD_LENGTH
Definition HTTPClient.h:34
UINT32 HTTPIntrnParseAuthHeader(P_HTTP_SESSION pHTTPSession)
UINT32 HTTPClientReadData(HTTP_SESSION_HANDLE pSession, VOID *pBuffer, UINT32 nBytesToRead, UINT32 nTimeout, UINT32 *nBytesRecived)
UINT32 HTTPIntrnAuthSendDigest(P_HTTP_SESSION pHTTPSession)
UINT32 HTTPClientFindFirstHeader(HTTP_SESSION_HANDLE pSession, CHAR *pSearchClue, CHAR *pHeaderBuffer, UINT32 *nLength)
UINT32 HTTPClientSetVerb(HTTP_SESSION_HANDLE pSession, HTTP_VERB HttpVerb)
UINT32 HTTPIntrnConnectionClose(P_HTTP_SESSION pHTTPSession)
UINT32 HTTPIntrnRecv(P_HTTP_SESSION pHTTPSession, CHAR *pData, UINT32 *nLength, BOOL PeekOnly)
UINT32 HTTPIntrnHeadersParse(P_HTTP_SESSION pHTTPSession)
UINT32 HTTPIntrnAuthHandler(P_HTTP_SESSION pHTTPSession)
#define HTTP_CLIENT_MAX_USERNAME_LENGTH
Definition HTTPClient.h:33
UINT32 HTTPIntrnHeadersAdd(P_HTTP_SESSION pHTTPSession, CHAR *pHeaderName, UINT32 nNameLength, CHAR *pHeaderData, UINT32 nDataLength)
UINT32 HTTPClientSetAuth(HTTP_SESSION_HANDLE pSession, HTTP_AUTH_SCHEMA AuthSchema, void *pReserved)
Definition HTTPClient.h:114
UINT32 HttpStartTime
Definition HTTPClient.h:120
fd_set FDError
Definition HTTPClient.h:118
INT32 HttpSocket
Definition HTTPClient.h:119
fd_set FDRead
Definition HTTPClient.h:116
fd_set FDWrite
Definition HTTPClient.h:117
UINT32 HttpClientPort
Definition HTTPClient.h:121
BOOL TlsNego
Definition HTTPClient.h:122
Definition HTTPClient.h:201
UINT32 nSentChunks
Definition HTTPClient.h:209
UINT32 nSentBodyBytes
Definition HTTPClient.h:210
UINT32 nActionStartTime
Definition HTTPClient.h:207
UINT32 nRecivedChunkLength
Definition HTTPClient.h:205
UINT32 nActionTimeout
Definition HTTPClient.h:208
UINT32 nSentHeaderBytes
Definition HTTPClient.h:211
UINT32 nRecivedBodyLength
Definition HTTPClient.h:204
UINT32 nBytesToNextChunk
Definition HTTPClient.h:206
UINT32 nRecivedHeaderLength
Definition HTTPClient.h:203
Definition HTTPClient.h:190
CHAR CredUser[HTTP_CLIENT_MAX_USERNAME_LENGTH]
Definition HTTPClient.h:192
CHAR CredPassword[HTTP_CLIENT_MAX_PASSWORD_LENGTH]
Definition HTTPClient.h:193
HTTP_AUTH_SCHEMA CredAuthSchema
Definition HTTPClient.h:195
CHAR AuthSchemaName[16]
Definition HTTPClient.h:194
BOOL Authentication
Definition HTTPClient.h:196
Definition HTTPClient.h:105
CHAR * pParam
Definition HTTPClient.h:107
UINT32 nLength
Definition HTTPClient.h:108
Definition HTTPClient.h:178
CHAR ProxtUser[HTTP_CLIENT_MAX_USERNAME_LENGTH]
Definition HTTPClient.h:180
HTTP_AUTH_SCHEMA ProxyAuthSchema
Definition HTTPClient.h:184
CHAR ProxyPassword[HTTP_CLIENT_MAX_PASSWORD_LENGTH]
Definition HTTPClient.h:181
UINT16 nProxyPort
Definition HTTPClient.h:182
CHAR ProxyHost[HTTP_CLIENT_MAX_PROXY_HOST_LENGTH]
Definition HTTPClient.h:179
CHAR AuthSchemaName[16]
Definition HTTPClient.h:183
Definition HTTPClient.h:217
HTTP_URL HttpUrl
Definition HTTPClient.h:219
HTTP_AUTH_HEADER HttpAuthHeader
Definition HTTPClient.h:222
HTTP_COUNTERS HttpCounters
Definition HTTPClient.h:226
UINT32 HttpFlags
Definition HTTPClient.h:228
UINT32 HttpState
Definition HTTPClient.h:227
HTTP_PROXY HttpProxy
Definition HTTPClient.h:223
HTTP_HEADERS HttpHeaders
Definition HTTPClient.h:220
HTTP_HEADERS_INFO HttpHeadersInfo
Definition HTTPClient.h:221
HTTP_CREDENTIALS HttpCredentials
Definition HTTPClient.h:224
HTTP_CONNECTION HttpConnection
Definition HTTPClient.h:225
Definition HTTPClient.h:128
HTTP_PARAM UrlBsee
Definition HTTPClient.h:130
HTTP_PARAM UrlPort
Definition HTTPClient.h:132
HTTP_PARAM UrlRequest
Definition HTTPClient.h:133
HTTP_PARAM UrlHost
Definition HTTPClient.h:131
CHAR Url[HTTP_CLIENT_MAX_URL_LENGTH]
Definition HTTPClient.h:135
UINT16 nPort
Definition HTTPClient.h:134