使用goahead搭建https服务器的实例

                                                   

webcomm与前端的通讯-goahead服务器流程图 

#ifndef __CET_WEBCOMM_H__
#define __CET_WEBCOMM_H__

// 0x0000FFFF
typedef enum eWebSubOptionType
{
	WSOT_DASHBOARD			= 0X00000001,
	WSOT_INTERFACE			= 0X00000002,	
	WSOT_CONNECTION 		= 0X00000004,	
	WSOT_NETWORK			= 0X00000008,
	WSOT_WLAN				= 0X00000010,
	WSOT_PARAMETERS 		= 0X00000020,
	WSOT_EXPORT 			= 0X00000040,
	WSOT_RESET				= 0X00000080,
	WSOT_FW_UPDATE			= 0X00000100,
	WSOT_DEBUG				= 0X00000200,
	WSOT_LOGS				= 0X00000400,
	WSOT_USERS				= 0X00000800,
	WSOT_DATE_AND_TIME		= 0X00001000,
	WSOT_LOAD_CERT			= 0X00002000,
	WSOT_IPFILTER			= 0X00004000,
	WSOT_ABOUT				= 0X00008000,
	WSOT_MUST_SUPPORT		= 0XFFFFFFFF,
	
} WebSubOptionType_t;

#ifndef WEBCOMM_ACCOUNT_PERMISSION_CHECK
#define WEBCOMM_ACCOUNT_PERMISSION_CHECK	( 1 )
#endif

#ifndef WEBCOMM_ACCOUNT_MAX_NUM
#define WEBCOMM_ACCOUNT_MAX_NUM				( 16 )
#endif

typedef void * WEBHANDLE;

typedef BYTE WebcommResult_t;
enum eWebcommResult
{	
	WEBERR_RSN_OK = 0,						/**< 操作成功 */
	WEBERR_RSN_OK_NOTRSP = 1,				/**< 操作成功但无回复 */

	WEBERR_RSN_ACCOUNT_PASSWORD_ERROR = 11,		/**< 账号或密码错误 */
	WEBERR_RSN_ACCOUNT_LOGIN_TIMEOUT = 12,		/**< 账号登入超时 */
	WEBERR_RSN_ACCOUNT_DISABLE = 13,			/**< 账号被禁用 */
	WEBERR_RSN_ACCOUNT_OUT_NUMBER = 14,			/**< 账号数量超出最大值(默认最大16个) */
	WEBERR_RSN_ACCOUNT_NOT_PERISSION = 15,		/**< 账号没有访问权限 */
	WEBERR_RSN_ACCOUNT_ALREADY_EXIST = 16,		/**< 账号已存在 */
	WEBERR_RSN_ACCOUNT_PASSWORD_SAME = 17,		/**< 账号和密码一样 */
	WEBERR_RSN_FILES_NOT_EXIST = 18,			/**< 文件不存在 */	
	WEBERR_RSN_FILES_CANNOT_OPEN = 19,			/**< 文件不能被打开 */	
	WEBERR_RSN_FILES_FORMAT_ERROR = 20, 		/**< 文件格式错误 */
	WEBERR_RSN_FILES_CHECKSUM_FAIL = 21,		/**< 文件校验失败 */
	WEBERR_RSN_DATABASE_OPERATE_FAIL = 22,		/**< 数据库操作失败 */
	WEBERR_RSN_NOT_FLASH_SPACE = 23,			/**< FLASH空间不足 */
	WEBERR_RSN_HUB_COMM_FAIL = 24,				/**< HUB通信失败 */
	WEBERR_RSN_PARAMETER_MISSING = 25,			/**< 请求的参数缺失 */
	WEBERR_RSN_PARAMETER_VALUE_OUTOFRANGE = 26,	/**< 请求的参数值超出范围 */
	WEBERR_RSN_MEMORY_ALLOCATION_FAIL = 27, 	/**< 内存分配失败 */
	WEBERR_RSN_URL_NOT_SUPPORT = 28,			/**< URL请求路径不支持 */
	WEBERR_RSN_REQUEST_NOT_METHOD = 29, 		/**< 请求不支持该方法 */
	WEBERR_RSN_PORT_ALREADY_OCCUPIED = 30, 		/**< 端口已被占用 */
	
	WEBERR_RSN_UNKNOWN = 60,				/**< 未知错误 */
};

typedef struct sReasonInfo
{
	WebcommResult_t	code;		/**< 错误的原因编号 */
	const char		*message;	/**< 编号的字符串形式 */
	
} GCC_PACKED ReasonInfo_t;

// Webcomm Result Response
#define WEBRES_CODE					"code"
#define WEBRES_MESSAGE				"message"
#define WEBRES_DATA					"data"

#define WEBCOMM_METHOD					"method"
#define WEBCOMM_LOGIN_USER				"username"
#define WEBCOMM_LOGIN_PASS				"password"
#define WEBCOMM_LOGIN_LAST				"last_time"
#define WEBCOMM_TOKEN_ACCESS 			"access_token"

#define WEBMETHOD_POST			"POST"	// 创建(更新,删除)
#define WEBMETHOD_GET			"GET"	// 读取

#define POSTMETHOD_CREATE		"create"	// 创建
#define POSTMETHOD_UPDATE		"update"	// 更新
#define POSTMETHOD_DELETE		"delete"	// 删除
#define POSTMETHOD_IMPORT		"import"	// 导入
#define POSTMETHOD_EXPORT		"export"	// 导出
#define POSTMETHOD_LOAD			"load"		// 加载
#define POSTMETHOD_EXECUTE		"execute"	// 执行

typedef WebcommResult_t (*fHandler_t)(WEBHANDLE webHandle, const char *uriPath, Webs *wp);

// create webcomm object
WEBHANDLE WebcommCreate(void);

// destroy webcomm object
void WebcommDestroy(WEBHANDLE webHandle);

// send result from webcomm data
int WebcommSendResult(WEBHANDLE webHandle, Webs *wp);

// check User account and password
WebcommResult_t WebcommLoginCheck(WEBHANDLE webHandle, int alreaylogin, const char *cname, const char *cpasswd);

// New Session
WebcommResult_t WebcommNewSession(WEBHANDLE webHandle, Webs *wp, const char *cname, const char *cvalue);

WebcommResult_t WebcommGetSession(WEBHANDLE webHandle, Webs *wp, const char *cname);

WebcommResult_t WebcommDeleteSession(WEBHANDLE webHandle, Webs *wp, const char *cname);

WebcommResult_t WebcommExecuteHandler(WEBHANDLE webHandle, Webs *wp, const char *cname);

const char *ReasonInfo(WebcommResult_t code);

///

#endif /* __CET_WEBCOMM_H__ */

/*
 * File name	: webcommsdk.c
 *
 * Created on	: 2020年3月12日09:35:10
 * Au
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值