📄 http.h
字号:
#ifndef _HTTP_H
#define _HTTP_H
#include "includes.h"
#include <stdio.h>
#include <string.h>
#include "lwip/api.h"
//extern char getByte(_UL *a,_UL *b);
//extern char peekByte(_UL *c);
#define MAX_FILE_NAME_LENTH 256
#define MAX_VARIABLE_NAME_LENTH 31
#define MAX_HOST_FILE_NAME_LENTH 31
#define MAX_DYNAMIC_CONTENT 10
//最大的发送缓冲区
#define MAX_SENDBUF_SIZE 10240
#define MAX_USER_NUM 5
struct fileHdrStruct
{
_UL hdrStart;
_UL size;
_UL fileStart;
};
struct fileSetStruct
{
char name[MAX_HOST_FILE_NAME_LENTH];
char isVerify;
_UL size;
char *pfileStart;
};
struct dynamicContentStruct
{
char variableName[MAX_VARIABLE_NAME_LENTH];
char * (*pfunc)();
};
//void (* callback)(struct netconn *, enum netconn_evt, u16_t len);
struct dynamichandlerStruct
{
char fileName[MAX_FILE_NAME_LENTH];
char (*pfunc)(char *data);
};
enum FIX_BYTE
{
PREFIX_BYTE = 0xfa,
SUFFIX_BYTE = 0xf3
};
enum HTTP_OPER_TYPE
{
NOMAL_REQUEST = 0,
POST_REQUSET = 1,
UNKNOWN_FILE = 2
};
enum FILE_TYPE
{
TEXT_PLAIN = 0,
TEXT_HTML = 1,
OCTET_STREAM = 2,
JPEG_IMAGE = 3,
GIF_IMAGE = 4,
TEXT_HDML = 5
};
enum USER_INFO
{
USER_EXIST = 0,
USER_SUCCESS = 1,
USER_FAIL = 2,
USER_OUT = 3
};
//内部校验用户错误码
enum USER_VALIDITY
{
USER_NOT_EXIST = 0,
USER_PSW_ERR = 1,
USER_TIME_OUT = 2,
USER_VALID = 3,
USER_INPUT_ERR = 4
};
//客户端用户操作消息
enum USER_MSG_TYPE
{
USER_LOGIN = 0,
USER_OUT_MSG = 1,
USER_VARIFY = 2,
USER_BUTT
};
//当前用户状态(只涉及UDP客户端)
enum USER_STATUS_TYPE
{
USER_LOGIN_STATUS = 0,
USER_OUT_STATUS = 1,
USER_VARIFY_STATUS = 2,
USER_ONLINE_STATUS = 3,
USER_STATUS_BUTT
};
struct UserInfo
{
char name[11];
char psw[7];
char keyNo;
char status;
unsigned long Validtime;
};
//得到用户加密参数
struct Query_Client_Key
{
_US errCode;//成功或者失败
_UC keyNo; //加密序列号
};
//验证用户权限
struct Varify_UserInfo
{
_US errCode;//成功或者失败
_US failCode;//失败原因值
struct UserInfo userinfo;
};
void handleConnection(struct netconn * newconn);
void getFilename(char * inbuf,char * out,_UL start);
void returnFile(struct netconn * newconn,struct fileHdrStruct * filehdr);
_UL determineContentType(_UL fileOffset);
void returnFileHeader(struct netconn * newconn,_UL ct);
void parseAndEmitFile(struct netconn * newconn,struct fileHdrStruct * filehdr);
void getDynamicContent(char * name,char *content);
_UL callDynamicHander(char * name,char *content);
_UL lookupFilename(char * filename,struct fileHdrStruct * filehdr);
_UL addDynamicContent(char * name,char *(*function)());
_UL addDynamicHandler(char * name, char (* function)());
void emitByte(char byte);
void emitString(char * string);
void sendLog(struct netconn * newconn);
_UL parseVariable(char * msgbody,char * variable,char * value);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -