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

📄 http.h

📁 ucos移植到44b0
💻 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 + -