/*++ Copyright (c) 1998-2001 Microsoft Corporation Module Name: parse.h Abstract: Contains all of the public definitions for the HTTP parsing code. Author: Henry Sanders (henrysa) 04-May-1998 Revision History: Paul McDaniel (paulmcd) 14-Apr-1999 --*/ #ifndef _PARSE_H_ #define _PARSE_H_ #ifdef __cplusplus extern "C" { #endif // // Size of a Date: header value. // #define DATE_HDR_LENGTH (sizeof("Mon, 05 May 1975 00:05:00 GMT") - sizeof(CHAR)) // // The initialization routine. // NTSTATUS InitializeParser(VOID); // // The main HTTP parse routine(s). // NTSTATUS UlParseHttp( IN PUL_INTERNAL_REQUEST pRequest, IN PUCHAR pHttpRequest, IN ULONG HttpRequestLength, OUT ULONG *pBytesTaken ); NTSTATUS UlParseChunkLength( IN PUL_INTERNAL_REQUEST pRequest, IN PUCHAR pBuffer, IN ULONG BufferLength, OUT PULONG pBytesTaken, OUT PULONGLONG pChunkLength ); // // Date header cache. // NTSTATUS UlInitializeDateCache( VOID ); VOID UlTerminateDateCache( VOID ); // // Utility tokenizing routine. // PUCHAR FindWSToken( IN PUCHAR pBuffer, IN ULONG BufferLength, OUT ULONG *TokenLength ); NTSTATUS UlComputeFixedHeaderSize( IN HTTP_VERSION Version, IN PHTTP_RESPONSE pUserResponse, OUT PULONG pHeaderLength ); ULONG UlComputeVariableHeaderSize( IN PUL_INTERNAL_REQUEST pRequest, IN BOOLEAN ForceDisconnect, IN PUCHAR pContentLengthString, IN ULONG ContentLengthStringLength, OUT PUL_CONN_HDR pConnHeader ); ULONG UlComputeMaxVariableHeaderSize( VOID ); NTSTATUS UlGenerateFixedHeaders( IN HTTP_VERSION Version, IN PHTTP_RESPONSE pUserResponse, IN ULONG BufferLength, OUT PUCHAR pBuffer, OUT PULONG pBytesCopied ); VOID UlGenerateVariableHeaders( IN UL_CONN_HDR ConnHeader, IN PUCHAR pContentLengthString, IN ULONG ContentLengthStringLength, OUT PUCHAR pBuffer, OUT PULONG pBytesCopied, OUT PLARGE_INTEGER pDateTime ); ULONG _MultiByteToWideChar( ULONG uCodePage, ULONG dwFlags, PCSTR lpMultiByteStr, int cchMultiByte, PWSTR lpWideCharStr, int cchWideChar ); ULONG GenerateDateHeader( OUT PUCHAR pBuffer, OUT PLARGE_INTEGER pSystemTime ); #ifdef __cplusplus }; // extern "C" #endif #endif // _PARSE_H_