亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? httpapi.h

?? 這是一個minweb原程序
?? H
字號:
/////////////////////////////////////////////////////////////////////////// httpapi.h//// External API header file for http protocol/////////////////////////////////////////////////////////////////////////#ifndef _HTTPAPI_H_#define _HTTPAPI_H_#include <stdio.h>#include <string.h>#include <stdlib.h>#include <fcntl.h>#include <time.h>#define VER_MAJOR 0#define VER_MINOR 7#ifndef min#define min(x,y) (x>y?y:x)#endif#ifndef NODEBUG#define DEBUG printf#else#define DEBUG#endif#define SYSLOG fprintf#define LOG_ERR 1#define ASSERT#define GETDWORD(ptrData) (*(DWORD*)(ptrData))#define SETDWORD(ptrData,data) (*(DWORD*)(ptrData)=data)#define GETWORD(ptrData) (*(WORD*)(ptrData))#define SETWORD(ptrData,data) (*(WORD*)(ptrData)=data)#ifndef BIG_ENDINE#define DEFDWORD(char1,char2,char3,char4) (char1+(char2<<8)+(char3<<16)+(char4<<24))#define DEFWORD(char1,char2) (char1+(char2<<8))#else#define DEFDWORD(char1,char2,char3,char4) (char4+(char3<<8)+(char2<<16)+(char1<<24))#define DEFWORD(char1,char2) (char2+(char1<<8))#endif///////////////////////////////////////////////////////////////////////// Public definitions///////////////////////////////////////////////////////////////////////// file typestypedef enum {  HTTPFILETYPE_HTML=0,  HTTPFILETYPE_TEXT,  HTTPFILETYPE_GIF,  HTTPFILETYPE_JPEG,  HTTPFILETYPE_PNG,  HTTPFILETYPE_CSS,  HTTPFILETYPE_SWF,  HTTPFILETYPE_MPA,  HTTPFILETYPE_MPEG,  HTTPFILETYPE_JS,  HTTPFILETYPE_OCTET,  HTTPFILETYPE_STREAM,} HttpFileType;#define MAXPOSTPARAMS 50#define MAXPOSTREDIRECTFILENAME (200)/////////////////////////////////////////////////////////////////////////////// typedefs/////////////////////////////////////////////////////////////////////////////typedef struct _tagPostParam {  //  char* pchPageName;  struct {    char* pchParamName;    char* pchParamValue;  } stParams[MAXPOSTPARAMS];  int iNumParams;  char chFilename[MAXPOSTREDIRECTFILENAME];} PostParam;// multipart file upload post (per socket) structuretypedef struct {  char pchBoundaryValue[80];  OCTET oFileuploadStatus;  int iWriteLocation;  PostParam pp;  char *pchFilename;} HttpMultipart;typedef struct _tagSubstParam {  char* pchParamName;  char* pchParamValue;	// returned  int iMaxValueBytes;} SubstParam;#define FLAG_REQUEST_GET	0x1#define FLAG_REQUEST_POST	0x2#define FLAG_CONN_CLOSE		0x10#define FLAG_SUBST			0x20#define FLAG_AUTHENTICATION	0x40#define FLAG_MORE_CONTENT	0x80#define FLAG_TO_FREE		0x100#define FLAG_DATA_FILE		0x10000#define FLAG_DATA_RAW		0x20000#define FLAG_DATA_PIPE		0x40000#define FLAG_DATA_STREAM	0x80000#define FLAG_RECEIVING		0x80000000#define FLAG_SENDING		0x40000000#define SETFLAG(hs,bit) (hs->flags|=(bit));#define CLRFLAG(hs,bit) (hs->flags&=~(bit));#define ISFLAGSET(hs,bit) ((hs->flags&(bit)))typedef union {	unsigned long laddr;	unsigned short saddr[2];	unsigned char caddr[4];} IP;typedef struct {	IP ipAddr;	int iStartByte;	unsigned char *pucPath;	short int ofReferer;	short int ofHost;	short int siHeaderSize;#ifdef HTTPPOST	unsigned char* pucPayload;#endif} HttpRequest;typedef struct {	int iSentBytes;	int iContentLength;	HttpFileType fileType;	short int iBufferSize;			// the size of buffer pucData pointing to} HttpResponse;typedef struct {	char *name;	char *value;} HttpVariables;typedef struct {	void* hp;	unsigned char *pucRequest;	HttpVariables* pxVars;	int iVarCount;	unsigned char *pucHeader;	HttpRequest *request;	unsigned char *pucBuffer;	int iDataBytes;	int iContentBytes;	int iSentBytes;	HttpFileType fileType;} UrlHandlerParam;// Callback function protostypedef int (*PFNPOSTCALLBACK)(PostParam*);typedef int (*PFNSUBSTCALLBACK)(SubstParam*);typedef int (*PFNFILEUPLOADCALLBACK)(char*, OCTET, OCTET*, DWORD);typedef int (*PFNURLCALLBACK)(UrlHandlerParam*);typedef int (*PFNURLINIT)(void* hp, int uninit);typedef struct {	char* pchUrlPrefix;	PFNURLCALLBACK pfnUrlHandler;	PFNURLINIT pfnUrlHandlerInit;} UrlHandler;typedef struct {	time_t startTime;	int clientCount;	int clientCountMax;	int reqCount;	int reqGetCount;	int fileSentCount;	int fileSentBytes;	int varSubstCount;	int urlProcessCount;	int timeOutCount;#ifdef HTTPAUTH	int authFailCount;#endif#ifdef HTTPPOST	int reqPostCount;	int fileUploadCount;#endif} HttpStats;#define HTTP_BUFFER_SIZE (4*1024 /*bytes*/)// per connection/socket structuretypedef struct _HttpSocket{	struct _HttpSocket *next;	SOCKET socket;	int fd;	HttpRequest request;	HttpResponse response;	unsigned char *pucData;	int iDataLength;	unsigned long flags;	void* ptr;	time_t tmAcceptTime;	time_t tmExpirationTime;	unsigned short siRequestCount;	unsigned short ucReserved;	unsigned char buffer[HTTP_BUFFER_SIZE];} HttpSocket;#define FLAG_DIR_LISTING 1typedef struct _httpParam {	HttpSocket *phsSocketHead;				/* head of the socket linked list */	int   bKillWebserver; 	int   bWebserverRunning; 	unsigned int flags;	SOCKET listenSocket;	unsigned short int siHttpPort;	unsigned short int siMaxReqPerConn;		/* maximum requests on one connection */	unsigned short int siMaxClients;	unsigned short int siSocketRcvBufSize;	/* socket receive buffer size in KB */	char *pchWebPath;	UrlHandler *pxUrlHandler;		/* pointer to URL handler array */	// substitution callback	PFNSUBSTCALLBACK pfnSubst;#ifdef HTTPPOST	// post callbacks	PFNFILEUPLOADCALLBACK pfnFileUpload;	PFNPOSTCALLBACK pfnPost;#endif#ifdef HTTPAUTH	DWORD dwAuthenticatedNode;	time_t tmAuthExpireTime;#endif	#ifndef NOTHREAD	pthread_t tidHttpThread;	#endif	HttpStats stats;} HttpParam;typedef struct {	char* pchRootPath;	char* pchHttpPath;	char cFilePath[MAX_PATH];	char* pchExt;	int fTailSlash;} HttpFilePath;///////////////////////////////////////////////////////////////////////// Return codes///////////////////////////////////////////////////////////////////////// for post callback#define WEBPOST_OK                (0)#define WEBPOST_AUTHENTICATED     (1)#define WEBPOST_NOTAUTHENTICATED  (2)#define WEBPOST_AUTHENTICATIONON  (3)#define WEBPOST_AUTHENTICATIONOFF (4)// for multipart file uploads#define HTTPUPLOAD_MORECHUNKS     (0)#define HTTPUPLOAD_FIRSTCHUNK     (1)#define HTTPUPLOAD_LASTCHUNK      (2)///////////////////////////////////////////////////////////////////////// Public functions//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// mwServerStart. Startup the webserver///////////////////////////////////////////////////////////////////////int mwServerStart(HttpParam* hp);///////////////////////////////////////////////////////////////////////// mwServerShutdown. Shutdown the webserver (closes connections and// releases resources)///////////////////////////////////////////////////////////////////////int mwServerShutdown(HttpParam* hp);///////////////////////////////////////////////////////////////////////// mwSetRcvBufSize. Change the TCP windows size of acceped sockets///////////////////////////////////////////////////////////////////////int mwSetRcvBufSize(WORD wSize);///////////////////////////////////////////////////////////////////////// mwPostRegister. Specify the callback to be called when a POST is// recevied.///////////////////////////////////////////////////////////////////////PFNPOSTCALLBACK mwPostRegister(PFNPOSTCALLBACK);///////////////////////////////////////////////////////////////////////// mwFileUploadRegister. Specify the callback to be called whenever the // server has the next data chunk available from a multipart file upload.///////////////////////////////////////////////////////////////////////PFNFILEUPLOADCALLBACK mwFileUploadRegister(PFNFILEUPLOADCALLBACK);///////////////////////////////////////////////////////////////////////// Default subst, post and file-upload callback processing///////////////////////////////////////////////////////////////////////int DefaultWebSubstCallback(SubstParam* sp);int DefaultWebPostCallback(PostParam* pp);int DefaultWebFileUploadCallback(char *pchFilename,                                 OCTET oFileuploadStatus,                                 OCTET *poData,                                  DWORD dwDataChunkSize);int mwGetHttpDateTime(time_t tm, char *buf);int mwGetLocalFileName(HttpFilePath* hfp);char* mwGetVarValue(HttpVariables* vars, char *varname);#endif // _HTTPAPI_H////////////////////////// END OF FILE ////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区免费在线看 | 毛片不卡一区二区| 自拍偷拍亚洲欧美日韩| 国产精品国产三级国产专播品爱网| 2021久久国产精品不只是精品| 欧美一级免费观看| 日韩西西人体444www| 久久亚洲精品国产精品紫薇| 久久综合色婷婷| 久久久久成人黄色影片| 久久只精品国产| 乱中年女人伦av一区二区| 99国内精品久久| www成人在线观看| 美女脱光内衣内裤视频久久影院| 欧美日本国产视频| 亚洲第一激情av| 337p亚洲精品色噜噜狠狠| 色噜噜久久综合| 丰满放荡岳乱妇91ww| 国产91丝袜在线18| 91视频.com| 欧美日韩高清在线| 2欧美一区二区三区在线观看视频| 精品va天堂亚洲国产| 欧美精品在线观看播放| 一区二区三区在线视频免费观看 | 国产一区二区三区av电影| 免费av成人在线| 国产精品香蕉一区二区三区| 99热精品国产| 日韩欧美一级二级三级| 国产精品午夜在线| 一区二区三区在线免费观看| 蜜桃av一区二区三区| 激情亚洲综合在线| 99在线精品免费| 91精品国产综合久久久久久| 国产欧美视频一区二区| 婷婷丁香激情综合| 成人av资源下载| 日韩视频一区二区在线观看| 亚洲欧洲韩国日本视频| 欧美亚洲动漫精品| 中文文精品字幕一区二区| 日韩高清在线电影| 亚洲国产欧美在线人成| 国产麻豆欧美日韩一区| 欧美私人免费视频| 国产亚洲女人久久久久毛片| 亚洲成人精品影院| 成人性视频网站| 欧美一三区三区四区免费在线看 | 久久电影网电视剧免费观看| 99re成人精品视频| 欧美大片日本大片免费观看| 亚洲精品成人a在线观看| 国产一本一道久久香蕉| 欧美日韩精品电影| 亚洲欧美福利一区二区| 国产黄色精品视频| 欧美一区二区三区色| 一区二区在线观看免费| 懂色av一区二区在线播放| 精品久久久久久久人人人人传媒| 亚洲宅男天堂在线观看无病毒| 国产成人丝袜美腿| 国产校园另类小说区| 精品一区二区三区久久久| 91精品国产综合久久福利| 一区二区三区高清不卡| 99re这里只有精品首页| 欧美激情一区不卡| 国产呦萝稀缺另类资源| 欧美成人三级在线| 美女在线观看视频一区二区| 日韩一级片网站| 麻豆成人免费电影| 日韩欧美视频在线| 激情综合色综合久久综合| 精品日韩一区二区| 久久超碰97中文字幕| 日韩精品中文字幕在线一区| 久久99国产精品麻豆| 久久婷婷国产综合精品青草| 狠狠v欧美v日韩v亚洲ⅴ| 久久这里只有精品6| 国产成人精品亚洲午夜麻豆| 国产精品你懂的在线| thepron国产精品| 亚洲精品日产精品乱码不卡| 精品婷婷伊人一区三区三| 亚洲成av人片| 精品少妇一区二区三区免费观看| 久久99精品久久久久久久久久久久| 欧美成人艳星乳罩| 粉嫩aⅴ一区二区三区四区| 日韩理论片一区二区| 欧美裸体一区二区三区| 久久黄色级2电影| 国产精品免费aⅴ片在线观看| 一本色道久久综合亚洲精品按摩| 亚洲自拍偷拍图区| 日韩欧美不卡在线观看视频| 成人国产亚洲欧美成人综合网| 一区二区三区欧美亚洲| 日韩欧美国产一二三区| bt7086福利一区国产| 亚洲风情在线资源站| 久久视频一区二区| 在线日韩av片| 国产成人综合网| 亚洲一区二区成人在线观看| 日韩精品最新网址| 91麻豆精品一区二区三区| 免费久久精品视频| 亚洲欧洲三级电影| 精品国产一区二区亚洲人成毛片| av不卡在线播放| 久久国内精品视频| 亚洲精品成人天堂一二三| 久久久久久久网| 欧美久久久久久蜜桃| 成人动漫av在线| 激情五月婷婷综合| 亚洲国产日产av| 亚洲人快播电影网| 欧美国产丝袜视频| 日韩免费视频线观看| 欧洲在线/亚洲| 丁香桃色午夜亚洲一区二区三区| 日本亚洲电影天堂| 亚洲国产婷婷综合在线精品| 国产欧美一区二区精品婷婷| 欧美一级高清片在线观看| 色视频欧美一区二区三区| jizz一区二区| 久久国产人妖系列| 亚洲国产精品自拍| 亚洲青青青在线视频| 中国色在线观看另类| 久久亚洲精精品中文字幕早川悠里| 在线不卡a资源高清| 欧美视频精品在线观看| 色综合夜色一区| gogogo免费视频观看亚洲一| 国产成人免费视频| 国产成人夜色高潮福利影视| 麻豆极品一区二区三区| 日本怡春院一区二区| 日韩国产成人精品| 日本亚洲一区二区| 麻豆精品久久久| 乱中年女人伦av一区二区| 久久99国产精品麻豆| 韩国av一区二区三区在线观看| 麻豆精品视频在线观看免费| 久久国产人妖系列| 国产在线播放一区| 国产成人亚洲综合色影视| 成人一级黄色片| 成人av网站大全| 欧洲一区二区三区免费视频| 欧美一a一片一级一片| 欧洲av在线精品| 欧美日韩国产123区| 欧美www视频| 欧美国产一区视频在线观看| 亚洲欧美国产高清| 日韩精品一二三区| 蜜桃精品视频在线观看| 国产风韵犹存在线视精品| 成人av在线一区二区三区| 91久久精品一区二区| 欧美另类久久久品| 欧美mv和日韩mv的网站| 国产精品网站导航| 亚洲男人的天堂av| 美女网站一区二区| 处破女av一区二区| 91成人在线观看喷潮| 日韩欧美高清一区| 专区另类欧美日韩| 石原莉奈一区二区三区在线观看| 精品在线观看免费| 99精品久久99久久久久| 欧美高清视频一二三区 | 精品国产电影一区二区| 国产日韩欧美精品电影三级在线| 亚洲视频免费看| 美女性感视频久久| 99久久综合国产精品| 欧美成人女星排行榜| 亚洲日穴在线视频| 狠狠色丁香婷婷综合久久片| 色悠久久久久综合欧美99| 日韩一区二区三区视频在线观看| 国产精品嫩草影院av蜜臀| 免费观看在线色综合| 91麻豆免费看|