WE310F5  39.00.000
m2mb_httpd.h File Reference

This file contains the APIs for HTTP server operations. More...

Go to the source code of this file.

Data Structures

struct  M2MB_HTTPD_CONFIG_S
 HTTP server configuration structure. More...
 
struct  M2MB_HTTPD_URI_CTX
 HTTP server URI context structure. More...
 
struct  M2MB_HTTPD_URI_REQ_INFO
 HTTP server URI Request structure. More...
 
struct  M2MB_HTTPD_URI_REQ_CGI_KEY_PAIR
 HTTP server CGI parameter pair structure. More...
 
struct  M2MB_HTTPD_URI_REQ_CGI_FORM_DATA
 HTTP server CGI form data structure. More...
 
struct  M2MB_URI_CFG_S
 
struct  M2MB_HTTPD_INIT_PARAMS
 HTTPD initialization parameters. More...
 
struct  M2MB_HTTPD_URI_CONFIG_PARAMS
 This structure is used to set HTTPD URI configuration parameters. More...
 
struct  M2MB_HTTPD_GET_MSG_INFO
 The structure is used to GET the HEAD/BODY information. More...
 
struct  M2MB_HTTPD_GET_CONTENT_LEN
 The structure is used to GET the content length of the request. More...
 
struct  M2MB_HTTPD_GET_BODY_LOC
 The structure is used to GET the pointer to the body locaiton on the request. More...
 
struct  M2MB_HTTPD_GET_REQUEST_TYPE
 The structure is used to GET the request type on the connection handler. More...
 
struct  M2MB_HTTPD_GET_REQ_URI_CGI_FORM_DATA
 The structure is used to GET the CGI form data with the URI request. More...
 
struct  M2MB_HTTPD_URICTXT_FROM_INDEX
 The structure is used to GET the applicaiton context of the registered URI. More...
 
struct  M2MB_HTTPD_USER_INFO
 The structure is used to GET/SET the user information on the HTTPD module. More...
 
union  M2MB_HTTPD_CONF_PARAMS_T
 Structure is used by SET/GET configuration paramters of CONF IDs mentioned in enum M2MB_HTTPD_CONF_ID_E. More...
 
#define M2MB_HTTPD_PATH_MAX   31
 
#define M2MB_HTTPD_SRVR_NAME_MAX   512
 
#define HTTP_OK   200
 
#define HTTP_CREATED   201
 
#define HTTP_ACCEPTED   202
 
#define HTTP_NO_CONTENT   204
 
#define HTTP_RESET_CONTENT   205
 
#define HTTP_REDIRECT_MULTI   300
 
#define HTTP_REDIRECT_PERM   301
 
#define HTTP_REDIRECT_TEMP   302
 
#define HTTP_REDIRECT_OTHER   303
 
#define HTTP_REDIRECT_NOMOD   304
 
#define HTTP_REDIRECT_PROXY   305
 
#define HTTP_ERROR_BADREQ   400
 
#define HTTP_ERROR_AUTHFAIL   401
 
#define HTTP_ERROR_PAYMENT   402
 
#define HTTP_ERROR_FORBID   403
 
#define HTTP_ERROR_NOFILE   404
 
#define HTTP_ERROR_METHOD   405
 
#define HTTP_ERROR_UNACCEPT   406
 
#define HTTP_ERROR_PROXYAUT   407
 
#define HTTP_ERROR_REQTMO   408
 
#define HTTP_ERROR_CONFLICT   409
 
#define HTTP_ERROR_RESGONE   410
 
#define HTTP_ERROR_LENGTH   411
 
#define HTTP_ERROR_PREFAIL   412
 
#define HTTP_ERROR_TOOBIG   413
 
#define HTTP_ERROR_URIBIG   414
 
#define HTTP_ERROR_BADMEDIA   415
 
#define HTTP_ERROR_SERVER   500
 
#define HTTP_ERROR_NOTIMPLEMENTED   501
 
#define HTTP_ERROR_BADGATEWAY   502
 
#define HTTP_ERROR_OVERLOAD   503
 
#define HTTP_ERROR_GATEAWYTMO   504
 
#define HTTP_ERROR_HTTPVER   505
 
enum  M2MB_HTTPD_CGI_RETURN_E {
  FP_ERR = 0x110,
  FP_OK = 0x120,
  FP_FILE = 0x140,
  FP_DONE = 0x200
}
 Return values enumeration. More...
 
enum  M2MB_HTTPD_MODE_E {
  M2MB_HTTPD_MODE_HTTP = 1,
  M2MB_HTTPD_MODE_HTTPS = 2,
  M2MB_HTTPD_MODE_HTTP_AND_HTTPS = 3
}
 HTTP server operational mode enumeration. More...
 
enum  M2MB_HTTPD_METHOD_E {
  M2MB_HTTPD_METHOD_INVALID = 1,
  M2MB_HTTPD_METHOD_GET = 2,
  M2MB_HTTPD_METHOD_HEAD = 3,
  M2MB_HTTPD_METHOD_POST = 4,
  M2MB_HTTPD_METHOD_PUT = 5,
  M2MB_HTTPD_METHOD_DELETE = 6,
  M2MB_HTTPD_METHOD_TRACE = 7,
  M2MB_HTTPD_METHOD_POSTMULTI = 8
}
 HTTP server request method enumeration. More...
 
enum  M2MB_URI_AUTH_FLAG {
  M2MB_URI_FLAG_NOAUTH = 0x00,
  M2MB_URI_FLAG_AUTHBASIC = 0x02,
  M2MB_URI_FLAG_AUTHMD5 = 0x04
}
 HTTP server URI user authentication enumeration. More...
 
enum  M2MB_HTTPD_URI_USER_EVENT {
  M2MB_HTTPD_URI_USER_EVENT_CON_OPENED = 0x00000001,
  M2MB_HTTPD_URI_USER_EVENT_CON_CLOSE = 0x00000002,
  M2MB_HTTPD_URI_USER_EVENT_HEADERS_RECV = 0x00000004,
  M2MB_HTTPD_URI_USER_EVENT_FORM_RECV = 0x00000008,
  M2MB_HTTPD_URI_USER_EVENT_BODY_RECV = 0x00000010,
  M2MB_HTTPD_URI_USER_EVENT_ALL_RECV = 0x00000020,
  M2MB_HTTPD_URI_USER_EVENT_FORM_FILE_RECV = 0x00000040,
  M2MB_HTTPD_URI_USER_EVENT_DATA_SENT = 0x00000080
}
 HTTP server URI user event enumeration. More...
 
enum  M2MB_HTTPD_CONF_ID {
  M2MB_HTTPD_CONF_SET_REGISTER_URI = 0,
  M2MB_HTTPD_CONF_SET_DEREGISTER_URI = 1,
  M2MB_HTTPD_CONF_SET_USER_CHANGE_PASSWORD = 2,
  M2MB_HTTPD_CONF_GET_IS_STARTED = 3,
  M2MB_HTTPD_CONF_GET_MESSAGE_BODY = 4,
  M2MB_HTTPD_CONF_GET_MESSAGE_HEAD = 5,
  M2MB_HTTPD_CONF_GET_CONTENT_LEN = 6,
  M2MB_HTTPD_CONF_GET_BODY_LOCATION = 7,
  M2MB_HTTPD_CONF_GET_REQUEST_TYPE = 8,
  M2MB_HTTPD_CONF_GET_CGI_FORM = 9
}
 HTTP server GET/SET Configuration enumeration. More...
 
typedef enum M2MB_URI_AUTH_FLAG M2MB_URI_AUTH_FLAG_T
 HTTP server URI user authentication enumeration. More...
 
typedef enum M2MB_HTTPD_URI_USER_EVENT M2MB_HTTPD_URI_USER_EVENT_E
 HTTP server URI user event enumeration. More...
 
typedef struct M2MB_HTTPD_CONFIG_S M2MB_HTTPD_CONFIG_T
 HTTP server configuration structure. More...
 
typedef struct M2MB_HTTPD_URI_CTX M2MB_HTTPD_URICTX_T
 HTTP server URI context structure. More...
 
typedef struct M2MB_HTTPD_URI_REQ_INFO M2MB_HTTPD_URI_REQ_INFO_T
 HTTP server URI Request structure. More...
 
typedef struct M2MB_HTTPD_URI_REQ_CGI_KEY_PAIR M2MB_HTTPD_URI_REQ_CGI_KEY_PAIR_T
 HTTP server CGI parameter pair structure. More...
 
typedef struct M2MB_HTTPD_URI_REQ_CGI_FORM_DATA M2MB_HTTPD_URI_REQ_CGI_FORM_DATA_T
 HTTP server CGI form data structure. More...
 
typedef INT32(* M2MB_HTTPD_URI_HANDLER_T) (VOID *conn_handle, VOID *usr_ctx, INT32 event)
 HTTP server URI Request user call back prototype. More...
 
typedef struct M2MB_URI_CFG_S M2MB_URI_CFG_T
 
typedef enum M2MB_HTTPD_CONF_ID M2MB_HTTPD_CONF_ID_E
 HTTP server GET/SET Configuration enumeration. More...
 
typedef struct M2MB_HTTPD_INIT_PARAMS M2MB_HTTPD_INIT_PARAMS_T
 HTTPD initialization parameters. More...
 
typedef struct M2MB_HTTPD_URI_CONFIG_PARAMS M2MB_HTTPD_URI_CONFIG_PARAMS_T
 This structure is used to set HTTPD URI configuration parameters. More...
 
typedef struct M2MB_HTTPD_GET_MSG_INFO M2MB_HTTPD_GET_MSG_INFO_T
 The structure is used to GET the HEAD/BODY information. More...
 
typedef struct M2MB_HTTPD_GET_CONTENT_LEN M2MB_HTTPD_GET_CONTENT_LEN_T
 The structure is used to GET the content length of the request. More...
 
typedef struct M2MB_HTTPD_GET_BODY_LOC M2MB_HTTPD_GET_BODY_LOC_T
 The structure is used to GET the pointer to the body locaiton on the request. More...
 
typedef struct M2MB_HTTPD_GET_REQUEST_TYPE M2MB_HTTPD_GET_REQUEST_TYPE_T
 The structure is used to GET the request type on the connection handler. More...
 
typedef struct M2MB_HTTPD_GET_REQ_URI_CGI_FORM_DATA M2MB_HTTPD_GET_REQ_URI_CGI_FORM_DATA_T
 The structure is used to GET the CGI form data with the URI request. More...
 
typedef struct M2MB_HTTPD_URICTXT_FROM_INDEX M2MB_HTTPD_URICTXT_FROM_INDEX_T
 The structure is used to GET the applicaiton context of the registered URI. More...
 
typedef struct M2MB_HTTPD_USER_INFO M2MB_HTTPD_USER_INFO_T
 The structure is used to GET/SET the user information on the HTTPD module. More...
 
M2MB_STATUS_T m2mb_httpd_init (HANDLE *handle, M2MB_HTTPD_INIT_PARAMS_T *init_params)
 HTTP server deinitialization. More...
 
M2MB_STATUS_T m2mb_httpd_deinit (HANDLE handle)
 HTTP server deinitialization. More...
 
M2MB_STATUS_T m2mb_httpd_start (HANDLE handle)
 Start HTTP server. More...
 
M2MB_STATUS_T m2mb_httpd_stop (HANDLE handle)
 Stop HTTP server. More...
 
M2MB_STATUS_T m2mb_httpd_send_headers (VOID *conn_handle, UINT8 *content_type, INT32 content_length, INT32 status_code, UINT8 *status_text, UINT8 *user_headers)
 Send HTTP headers. More...
 
M2MB_STATUS_T m2mb_httpd_send_data (VOID *conn_handle, const INT8 *data, UINT32 length)
 Send HTTP data. More...
 
M2MB_STATUS_T m2mb_httpd_set_cfg (HANDLE handle, M2MB_HTTPD_CONF_ID_E conf_id, M2MB_HTTPD_CONF_PARAMS_T *conf_params)
 SET the HTTPD configuration parameters. More...
 
M2MB_STATUS_T m2mb_httpd_get_cfg (HANDLE handle, M2MB_HTTPD_CONF_ID_E conf_id, M2MB_HTTPD_CONF_PARAMS_T *conf_params)
 GET the HTTPD configuration parameters. More...
 
M2MB_URI_CFG_Tm2mb_httpd_get_uri_cfg_from_index (INT32 index)
 Gets the URI configuration. More...
 

Detailed Description

This file contains the APIs for HTTP server operations.

epl/inc/nwk/m2mb_httpd.h

WE310F5_HTTPD.png
HTTPD

HTTP Server APis can be used to create a HTTP server and respond to HTTP client request. The diagram shows the sequence of API call to be performed.

Definition in file m2mb_httpd.h.