⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 httpint.h

📁 这是一个minweb原程序
💻 H
字号:
///////////////////////////////////////////////////////////////////////////////// httpint.h//// http implementation internal header file///////////////////////////////////////////////////////////////////////////////#ifndef _HTTPINT_H_#define _HTTPINT_H_#include "httpapi.h"/////////////////////////////////////////////////////////////////////////////// defines/////////////////////////////////////////////////////////////////////////////// HTTP messages/part messages#define HTTP200_HEADER "HTTP/1.1 %s\r\nServer: MiniWeb\r\nCache-control: no-cache\r\nPragma: no-cache\r\nAccept-Ranges: bytes\r\nKeep-Alive: timeout=%d, max=%d\r\nConnection: %s\r\nLast-Modified: "#define HTTP200_HDR_EST_SIZE ((sizeof(HTTP200_HEADER)+128)&(-4))#define HTTP404_HEADER "HTTP/1.1 404 Not Found\r\nServer: MiniWeb\r\nConnection: Keep-Alive\r\nContent-length: 180\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 - the tiny HTTP server</i></body></html>"#define HTTPBODY_REDIRECT "<html><head><meta http-equiv=\"refresh\" content=\"0; URL=%s\"></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_MPA "audio/mpeg"#define HTTPTYPE_MPEG "video/mpeg"#define HTTPTYPE_AVI "video/avi"#define HTTPTYPE_OCTET "application/octet-stream"#define HTTPTYPE_STREAM "application/x-datastream"#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_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)#define FILEEXT_HTML DEFDWORD('H','T','M','L')#define FILEEXT_MPG DEFDWORD('M','P','G',0)#define FILEEXT_MPEG DEFDWORD('M','P','E','G')#define FILEEXT_MPA DEFDWORD('M','P',('3' - 32),0)// Settings for http server#define HTTP_EXPIRATION_TIME (30/*secs*/)#define HTTP_KEEPALIVE_TIME (15/*secs*/)#define MAX_RECV_RETRIES (3/*times*/)#define HTTPAUTHTIMEOUT   (300/*secs*/)#define HTTPSUBSTEXPANSION (0/*bytes*/)#define HTTPHEADERSIZE (512/*bytes*/)#define HTTPSMALLBUFFER (256/*bytes*/)#define HTTPMAXRECVBUFFER HTTP_BUFFER_SIZE#define HTTPUPLOAD_CHUNKSIZE (1024/*bytes*/)#define MAX_REQUEST_PATH_LEN (512/*bytes*/)#define MAX_REQUEST_SIZE (2*1024 /*bytes*/)#ifndef WIN32#define SLASH '/'#else#define SLASH '\\'#endif/////////////////////////////////////////////////////////////////////////////// local helper function prototypes/////////////////////////////////////////////////////////////////////////////SOCKET _mwAcceptSocket(HttpParam* hp, struct sockaddr_in *sinaddr);int _mwProcessReadSocket(HttpParam* hp, HttpSocket* phsSocket);int _mwProcessWriteSocket(HttpParam *hp, HttpSocket* phsSocket);void _mwCloseSocket(HttpParam* hp, HttpSocket* phsSocket);int _mwStartSendFile(HttpParam* hp, HttpSocket* phsSocket);int _mwSendFileChunk(HttpParam *hp, HttpSocket* phsSocket);void _mwProcessPost(HttpSocket* phsSocket);void _mwProcessMultipartPost(HttpSocket* phsSocket);int _mwSubstVariables(HttpParam* hp, char* pchData, int iLength, int* piBytesUsed);char* _mwStrStrNoCase(char* pchHaystack, char* pchNeedle);void _mwProcessPostVars(HttpSocket* phsSocket,			  int iContentOffset, int iContentLength);void _mwRedirect(HttpSocket* phsSocket, char* pchFilename);int _mwSendRawDataChunk(HttpParam *hp, HttpSocket* phsSocket);int _mwStartSendRawData(HttpParam *hp, HttpSocket* phsSocket);void* _mwHttpThread(HttpParam* hp);int _mwGetToken(char* pchBuffer,int iTokenNumber,char** ppchToken); void _mwDecodeString(char* pchString);__inline char _mwDecodeCharacter(char* pchEncodedChar);int _mwLoadFileChunk(HttpParam *hp, HttpSocket* phsSocket);OCTET* _mwFindMultipartBoundary(OCTET *poHaystack, int iHaystackSize,                                   OCTET *poNeedle);void _mwNotifyPostVars(HttpSocket* phsSocket, PostParam *pp);BOOL _mwCheckAuthentication(HttpSocket* phsSocket);int _mwStartSendMemoryData(HttpSocket* phsSocket);int _GetContentType(char *pchFilename);int _mwCheckAccess(HttpSocket* phsSocket);int _mwGetContentType(char *pchExtname);int _mwSendHttpHeader(HttpSocket* phsSocket);char* _mwStrDword(char* pchHaystack, DWORD dwSub, DWORD dwCharMask);SOCKET _mwStartListening(HttpParam* hp);int _mwParseHttpHeader(HttpSocket* phsSocket);__inline int _mwStrCopy(char *dest, char *src);#endif////////////////////////// END OF FILE //////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -