VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
vsf_linux_httpd.h File Reference
#include "shell/sys/linux/vsf_linux_cfg.h"
#include "service/vsf_service.h"
#include "../../include/sys/socket.h"
#include "../../include/netinet/in.h"
#include "utilities/ooc_class.h"
#include "./urihandler/file/__vsf_linux_urihandler_file.h"
#include "./urihandler/websocket/__vsf_linux_urihandler_websocket.h"

Go to the source code of this file.

Data Structures

struct  vsf_linux_httpd_urihandler_op_t
 
struct  vsf_linux_httpd_urihandler_t
 
struct  vsf_linux_httpd_urihandler_header_t
 
class  vsf_linux_httpd_request_t
 
class  vsf_linux_httpd_session_t
 
class  vsf_linux_httpd_t
 

Macros

#define PUBLIC_CONST   const
 
#define VSF_LINUX_HTTPD_CFG_REQUEST_BUFSIZE   1024
 
#define VSF_LINUX_HTTPD_CFG_PRIV_SIZE   256
 
#define VSF_LINUX_HTTPD_CFG_FILESYSTEM   ENABLED
 
#define VSF_LINUX_HTTPD_CFG_WEBSOCKET   VSF_USE_MBEDTLS
 

Typedefs

typedef enum vsf_linux_httpd_request_method_t vsf_linux_httpd_request_method_t
 
typedef enum vsf_linux_httpd_mime_t vsf_linux_httpd_mime_t
 
typedef enum vsf_linux_httpd_language_t vsf_linux_httpd_language_t
 
typedef enum vsf_linux_httpd_response_t vsf_linux_httpd_response_t
 
typedef struct vsf_linux_httpd_urihandler_op_t vsf_linux_httpd_urihandler_op_t
 
typedef enum vsf_linux_httpd_urihandler_match_t vsf_linux_httpd_urihandler_match_t
 
typedef enum vsf_linux_httpd_urihandler_type_t vsf_linux_httpd_urihandler_type_t
 
typedef struct vsf_linux_httpd_urihandler_t vsf_linux_httpd_urihandler_t
 
typedef struct vsf_linux_httpd_urihandler_header_t vsf_linux_httpd_urihandler_header_t
 
typedef struct vsf_linux_httpd_urihandler_header_t vsf_linux_httpd_urihandler_buffer_t
 

Enumerations

enum  vsf_linux_httpd_request_method_t {
  VSF_LINUX_HTTPD_GET ,
  VSF_LINUX_HTTPD_POST ,
  VSF_LINUX_HTTPD_METHOD_NUM ,
  VSF_LINUX_HTTPD_HEAD ,
  VSF_LINUX_HTTPD_PUT ,
  VSF_LINUX_HTTPD_DELETE ,
  VSF_LINUX_HTTPD_CONNECT ,
  VSF_LINUX_HTTPD_OPTIONS ,
  VSF_LINUX_HTTPD_TRACE ,
  VSF_LINUX_HTTPD_PATCH
}
 
enum  vsf_linux_httpd_mime_t {
  VSF_LINUX_HTTPD_MIME_INVALID = 0 ,
  VSF_LINUX_HTTPD_MIME_TEXT_HTML ,
  VSF_LINUX_HTTPD_MIME_TEXT_XML ,
  VSF_LINUX_HTTPD_MIME_TEXT_CSS ,
  VSF_LINUX_HTTPD_MIME_TEXT_PLAIN ,
  VSF_LINUX_HTTPD_MIME_IMAGE_GIF ,
  VSF_LINUX_HTTPD_MIME_IMAGE_PNG ,
  VSF_LINUX_HTTPD_MIME_IMAGE_JPEG ,
  VSF_LINUX_HTTPD_MIME_IMAGE_SVG ,
  VSF_LINUX_HTTPD_MIME_IMAGE_ICON ,
  VSF_LINUX_HTTPD_MIME_VIDEO_AVI ,
  VSF_LINUX_HTTPD_MIME_AUDIO_MPEG ,
  VSF_LINUX_HTTPD_MIME_AUDIO_WAV ,
  VSF_LINUX_HTTPD_MIME_AUDIO_OGG ,
  VSF_LINUX_HTTPD_MIME_APP_PDF ,
  VSF_LINUX_HTTPD_MIME_APP_JS ,
  VSF_LINUX_HTTPD_MIME_APP_TAR ,
  VSF_LINUX_HTTPD_MIME_APP_ZIP ,
  VSF_LINUX_HTTPD_MIME_APP_JSON ,
  VSF_LINUX_HTTPD_MIME_APP_WASM ,
  VSF_LINUX_HTTPD_MIME_ANY ,
  VSF_LINUX_HTTPD_MIME_NUM = VSF_LINUX_HTTPD_MIME_ANY
}
 
enum  vsf_linux_httpd_language_t {
  VSF_LINUX_HTTPD_LANGUAGE_INVALID = 0 ,
  VSF_LINUX_HTTPD_ENGLISH
}
 
enum  vsf_linux_httpd_response_t {
  VSF_LINUX_HTTPD_CONTINUE = 100 ,
  VSF_LINUX_HTTPD_OK = 200 ,
  VSF_LINUX_HTTPD_MULTIPLE_CHOICES = 300 ,
  VSF_LINUX_HTTPD_BAD_REQUEST = 400 ,
  VSF_LINUX_HTTPD_UNAUTHORIZED ,
  VSF_LINUX_HTTPD_PAYMENT_REQUIRED ,
  VSF_LINUX_HTTPD_FORBIDDEN ,
  VSF_LINUX_HTTPD_NOT_FOUND ,
  VSF_LINUX_HTTPD_METHOD_NOT_ALLOWED ,
  VSF_LINUX_HTTPD_NOT_ACCEPTABLE ,
  VSF_LINUX_HTTPD_PROXY_AUTHENTICATION_REQUIRED ,
  VSF_LINUX_HTTPD_REQUEST_TIME_OUT ,
  VSF_LINUX_HTTPD_CONFLICT ,
  VSF_LINUX_HTTPD_GONE ,
  VSF_LINUX_HTTPD_LENGTH_REQUIRED ,
  VSF_LINUX_HTTPD_PRECONDITION_FAILED ,
  VSF_LINUX_HTTPD_REQUEST_ENITIY_TOO_LARGE ,
  VSF_LINUX_HTTPD_REQUEST_URI_TOO_LARGE ,
  VSF_LINUX_HTTPD_UNSUPPORTED_MEDIA_TYPE ,
  VSF_LINUX_HTTPD_REQUESTED_RANGE_NOT_SATISFIABLE ,
  VSF_LINUX_HTTPD_EXPECTATION_FAILED ,
  VSF_LINUX_HTTPD_INTERNAL_SERVER_ERROR = 500 ,
  VSF_LINUX_HTTPD_NOT_IMPLEMENT ,
  VSF_LINUX_HTTPD_BAD_GATEWAY ,
  VSF_LINUX_HTTPD_SERVICE_UNAVAILABLE ,
  VSF_LINUX_HTTPD_GATEWAY_TIME_OUT ,
  VSF_LINUX_HTTPD_HTTP_VERSION_NOT_SUPPORTED
}
 
enum  vsf_linux_httpd_urihandler_match_t {
  VSF_LINUX_HTTPD_URI_MATCH_EXT = 1 << 0 ,
  VSF_LINUX_HTTPD_URI_MATCH_URI = 1 << 1 ,
  VSF_LINUX_HTTPD_URI_MATCH_ANY = 1 << 2
}
 
enum  vsf_linux_httpd_urihandler_type_t {
  VSF_LINUX_HTTPD_URI_OP = 0 ,
  VSF_LINUX_HTTPD_URI_REMAP
}
 

Functions

 dcl_vsf_bitmap (vsf_linux_httpd_mime_map_t, VSF_LINUX_HTTPD_MIME_NUM) typedef enum vsf_linux_httpd_encoding_t
 
 dcl_vsf_bitmap (vsf_linux_httpd_encoding_map_t, VSF_LINUX_HTTPD_ENCODING_NUM) typedef enum vsf_linux_httpd_charset_t
 
void * vsf_linux_httpd_thread (void *param)
 
vsf_err_t vsf_linux_httpd_start (vsf_linux_httpd_t *httpd)
 

Variables

 vsf_linux_httpd_encoding_t
 
 vsf_linux_httpd_charset_t
 
const vsf_linux_httpd_urihandler_op_t vsf_linux_httpd_urihandler_buffer_op
 

Macro Definition Documentation

◆ PUBLIC_CONST

#define PUBLIC_CONST   const

◆ VSF_LINUX_HTTPD_CFG_REQUEST_BUFSIZE

#define VSF_LINUX_HTTPD_CFG_REQUEST_BUFSIZE   1024

◆ VSF_LINUX_HTTPD_CFG_PRIV_SIZE

#define VSF_LINUX_HTTPD_CFG_PRIV_SIZE   256

◆ VSF_LINUX_HTTPD_CFG_FILESYSTEM

#define VSF_LINUX_HTTPD_CFG_FILESYSTEM   ENABLED

◆ VSF_LINUX_HTTPD_CFG_WEBSOCKET

#define VSF_LINUX_HTTPD_CFG_WEBSOCKET   VSF_USE_MBEDTLS

Typedef Documentation

◆ vsf_linux_httpd_request_method_t

◆ vsf_linux_httpd_mime_t

◆ vsf_linux_httpd_language_t

◆ vsf_linux_httpd_response_t

◆ vsf_linux_httpd_urihandler_op_t

◆ vsf_linux_httpd_urihandler_match_t

◆ vsf_linux_httpd_urihandler_type_t

◆ vsf_linux_httpd_urihandler_t

◆ vsf_linux_httpd_urihandler_header_t

◆ vsf_linux_httpd_urihandler_buffer_t

Enumeration Type Documentation

◆ vsf_linux_httpd_request_method_t

Enumerator
VSF_LINUX_HTTPD_GET 
VSF_LINUX_HTTPD_POST 
VSF_LINUX_HTTPD_METHOD_NUM 
VSF_LINUX_HTTPD_HEAD 
VSF_LINUX_HTTPD_PUT 
VSF_LINUX_HTTPD_DELETE 
VSF_LINUX_HTTPD_CONNECT 
VSF_LINUX_HTTPD_OPTIONS 
VSF_LINUX_HTTPD_TRACE 
VSF_LINUX_HTTPD_PATCH 

◆ vsf_linux_httpd_mime_t

Enumerator
VSF_LINUX_HTTPD_MIME_INVALID 
VSF_LINUX_HTTPD_MIME_TEXT_HTML 
VSF_LINUX_HTTPD_MIME_TEXT_XML 
VSF_LINUX_HTTPD_MIME_TEXT_CSS 
VSF_LINUX_HTTPD_MIME_TEXT_PLAIN 
VSF_LINUX_HTTPD_MIME_IMAGE_GIF 
VSF_LINUX_HTTPD_MIME_IMAGE_PNG 
VSF_LINUX_HTTPD_MIME_IMAGE_JPEG 
VSF_LINUX_HTTPD_MIME_IMAGE_SVG 
VSF_LINUX_HTTPD_MIME_IMAGE_ICON 
VSF_LINUX_HTTPD_MIME_VIDEO_AVI 
VSF_LINUX_HTTPD_MIME_AUDIO_MPEG 
VSF_LINUX_HTTPD_MIME_AUDIO_WAV 
VSF_LINUX_HTTPD_MIME_AUDIO_OGG 
VSF_LINUX_HTTPD_MIME_APP_PDF 
VSF_LINUX_HTTPD_MIME_APP_JS 
VSF_LINUX_HTTPD_MIME_APP_TAR 
VSF_LINUX_HTTPD_MIME_APP_ZIP 
VSF_LINUX_HTTPD_MIME_APP_JSON 
VSF_LINUX_HTTPD_MIME_APP_WASM 
VSF_LINUX_HTTPD_MIME_ANY 
VSF_LINUX_HTTPD_MIME_NUM 

◆ vsf_linux_httpd_language_t

Enumerator
VSF_LINUX_HTTPD_LANGUAGE_INVALID 
VSF_LINUX_HTTPD_ENGLISH 

◆ vsf_linux_httpd_response_t

Enumerator
VSF_LINUX_HTTPD_CONTINUE 
VSF_LINUX_HTTPD_OK 
VSF_LINUX_HTTPD_MULTIPLE_CHOICES 
VSF_LINUX_HTTPD_BAD_REQUEST 
VSF_LINUX_HTTPD_UNAUTHORIZED 
VSF_LINUX_HTTPD_PAYMENT_REQUIRED 
VSF_LINUX_HTTPD_FORBIDDEN 
VSF_LINUX_HTTPD_NOT_FOUND 
VSF_LINUX_HTTPD_METHOD_NOT_ALLOWED 
VSF_LINUX_HTTPD_NOT_ACCEPTABLE 
VSF_LINUX_HTTPD_PROXY_AUTHENTICATION_REQUIRED 
VSF_LINUX_HTTPD_REQUEST_TIME_OUT 
VSF_LINUX_HTTPD_CONFLICT 
VSF_LINUX_HTTPD_GONE 
VSF_LINUX_HTTPD_LENGTH_REQUIRED 
VSF_LINUX_HTTPD_PRECONDITION_FAILED 
VSF_LINUX_HTTPD_REQUEST_ENITIY_TOO_LARGE 
VSF_LINUX_HTTPD_REQUEST_URI_TOO_LARGE 
VSF_LINUX_HTTPD_UNSUPPORTED_MEDIA_TYPE 
VSF_LINUX_HTTPD_REQUESTED_RANGE_NOT_SATISFIABLE 
VSF_LINUX_HTTPD_EXPECTATION_FAILED 
VSF_LINUX_HTTPD_INTERNAL_SERVER_ERROR 
VSF_LINUX_HTTPD_NOT_IMPLEMENT 
VSF_LINUX_HTTPD_BAD_GATEWAY 
VSF_LINUX_HTTPD_SERVICE_UNAVAILABLE 
VSF_LINUX_HTTPD_GATEWAY_TIME_OUT 
VSF_LINUX_HTTPD_HTTP_VERSION_NOT_SUPPORTED 

◆ vsf_linux_httpd_urihandler_match_t

Enumerator
VSF_LINUX_HTTPD_URI_MATCH_EXT 
VSF_LINUX_HTTPD_URI_MATCH_URI 
VSF_LINUX_HTTPD_URI_MATCH_ANY 

◆ vsf_linux_httpd_urihandler_type_t

Enumerator
VSF_LINUX_HTTPD_URI_OP 
VSF_LINUX_HTTPD_URI_REMAP 

Function Documentation

◆ dcl_vsf_bitmap() [1/2]

dcl_vsf_bitmap ( vsf_linux_httpd_mime_map_t  ,
VSF_LINUX_HTTPD_MIME_NUM   
)

◆ dcl_vsf_bitmap() [2/2]

dcl_vsf_bitmap ( vsf_linux_httpd_encoding_map_t  ,
VSF_LINUX_HTTPD_ENCODING_NUM   
)

◆ vsf_linux_httpd_thread()

void * vsf_linux_httpd_thread ( void *  param)
extern

◆ vsf_linux_httpd_start()

vsf_err_t vsf_linux_httpd_start ( vsf_linux_httpd_t httpd)
extern

Variable Documentation

◆ vsf_linux_httpd_encoding_t

vsf_linux_httpd_encoding_t

◆ vsf_linux_httpd_charset_t

vsf_linux_httpd_charset_t

◆ vsf_linux_httpd_urihandler_buffer_op

const vsf_linux_httpd_urihandler_op_t vsf_linux_httpd_urihandler_buffer_op
extern