📄 httpint.h
字号:
///////////////////////////////////////////////////////////////////////////////// httpint.h//// http implementation internal header file///////////////////////////////////////////////////////////////////////////////#ifndef _HTTPINT_H_#define _HTTPINT_H_#include "httpapi.h"/////////////////////////////////////////////////////////////////////////////// defines/////////////////////////////////////////////////////////////////////////////#define VER_MAJOR 0#define VER_MINOR 50#define ASSERT#define GETDWORD(ptrData) (*(DWORD*)(ptrData))#ifndef BIG_ENDINE#define DEFDWORD(char1,char2,char3,char4) (char1+(char2<<8)+(char3<<16)+(char4<<24))#else#define DEFDWORD(char1,char2,char3,char4) (char4+(char3<<8)+(char2<<16)+(char1<<24))#endif// HTTP messages/part messages#define HTTPHEADER_OK "HTTP/1.0 200 OK\r\nServer: MiniWeb\r\nCache-control: no-cache\r\nPragma: no-cache\r\nContent-length: %d\r\nContent-type: %s\r\n\r\n"#define HTTPHEADER_MISSING "HTTP/1.0 404 Not Found\r\nServer: MiniWeb\r\nConnection: close\r\nContent-Type: text/html\r\n\r\n<html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL was not found on this server.</p><hr><i>MiniWeb %d.%d (C)2005 Written by Stanley Huang</i></body></html>"#define HTTPBODY_REDIRECT "<html><head><meta http-equiv=\"refresh\" content=\"0; URL=%s\"><title></title></head><body></body></html>"#define HTTPTYPE_HTML "text/html"#define HTTPTYPE_TEXT "text/plain"#define HTTPTYPE_GIF "image/gif"#define HTTPTYPE_JPEG "image/jpeg"#define HTTPTYPE_PNG "image/png"#define HTTPTYPE_JS "application/x-javascript"#define HTTPTYPE_CSS "text/css"#define HTTPTYPE_SWF "application/x-shockwave-flash"#define HTTPTYPE_OCTET "application/octet-stream"#define HTTP_CONTENTLENGTH "Content-Length:"#define HTTP_MULTIPARTHEADER "multipart/form-data"#define HTTP_MULTIPARTCONTENT "Content-Disposition: form-data; name="#define HTTP_MULTIPARTBOUNDARY "boundary="#define HTTP_FILENAME "filename="#define HTTP_GET DEFDWORD('G','E','T',' ')#define HTTP_POST DEFDWORD('P','O','S','T')#define HTTP_HEADEREND DEFDWORD('\r','\n','\r','\n')#define HTTP_HEADEREND_STR "\r\n\r\n"// Define file extensions#define FILEEXT_HTM DEFDWORD('H','T','M',0)#define FILEEXT_HTML DEFDWORD('H','T','M','L')#define FILEEXT_TEXT DEFDWORD('T','X','T',0)#define FILEEXT_GIF DEFDWORD('G','I','F',0)#define FILEEXT_JPG DEFDWORD('J','P','G',0)#define FILEEXT_PNG DEFDWORD('P','N','G',0)#define FILEEXT_CSS DEFDWORD('C','S','S',0)#define FILEEXT_JS DEFDWORD('J','S',0,0)#define FILEEXT_SWF DEFDWORD('S','W','F',0)// Settings for http server#define HTTPAUTHTIMEOUT (300/*secs*/)#define HTTPMAXPENDINGCON (8)#define HTTPEXPIRATIONTIME (60/*secs*/)#define HTTPMAXFILECHUNK (4*1024/*bytes*/)#define HTTPSUBSTEXPANSION (256/*bytes*/)#define HTTPHEADERSIZE (512/*bytes*/)#define HTTPSMALLBUFFER (256/*bytes*/)#define HTTPMAXRECVBUFFER (8192/*bytes*/)#define HTTPUPLOAD_CHUNKSIZE (1024/*bytes*/)typedef struct { char* pchUrlPrefix; PFNURLCALLBACK pfnUrlProcCallback;} UrlProcParam;/////////////////////////////////////////////////////////////////////////////// local helper function prototypes/////////////////////////////////////////////////////////////////////////////void _mwAcceptSocket(HttpSocket* phsListenSocket, HttpSocket* phsNewSocket);void _mwProcessSocket(HttpSocket* phsSocket, BOOL bRead, BOOL bWrite);void _mwCloseSocket(HttpSocket* phsSocket);void _mwStartSendFile(HttpSocket* phsSocket, char* pchFilename);void _mwSendFileChunk(HttpSocket* phsSocket);void _mwProcessPost(HttpSocket* phsSocket);void _mwProcessMultipartPost(HttpSocket* phsSocket);int _mwSubstVariables(char* pchData, int iLength, int iMaxLength, int* piBytesUsed);char* _mwStrStrNoCase(char* pchHaystack, char* pchNeedle);void _mwProcessPostVars(HttpSocket* phsSocket, int iContentOffset, int iContentLength);void _mwRedirect(HttpSocket* phsSocket, char* pchFilename);void _mwSendRawDataChunk(HttpSocket* phsSocket);void* _mwHttpThread(SOCKET listenSocket);int _mwGetToken(char* pchBuffer,int iTokenNumber,char** ppchToken); void _mwDecodeString(char* pchString);__inline char _mwDecodeCharacter(char* pchEncodedChar);int _mwLoadFileChunk(HttpSocket* phsSocket, int iChunkBufferSize);OCTET* _mwFindMultipartBoundary(OCTET *poHaystack, int iHaystackSize, OCTET *poNeedle);void _mwNotifyPostVars(HttpSocket* phsSocket, PostParam *pp);BOOL _mwCheckAuthentication(HttpSocket* phsSocket);void _mwSendMemoryChunk(HttpSocket* phsSocket);int _mwStartSendMemoryData(HttpSocket* phsSocket);int _GetContentType(char *pchFilename);int _mwCheckAccess(HttpSocket* phsSocket);int _mwGetLocalFilename(char *requestFile, char *buffer, int bufsize);int _mwSendHttpHeader(HttpSocket* phsSocket, int iContentLength);char* _mwStrDword(char* pchHaystack, DWORD dwSub, DWORD dwCharMask);SOCKET _mwStartListening(httpParam *param);int _mwCheckHeader(HttpSocket* phsSocket);#endif////////////////////////// END OF FILE //////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -