rsstats 0.0.1
Redis Enterprise Statistic collector
libhttp.h
Go to the documentation of this file.
1
22#ifndef __LIBHTTP_H__
23#define __LIBHTTP_H__
24
25typedef enum HTTPVersion_e {
34
35typedef enum HTTPMethod_e {
47
48/* https://en.wikipedia.org/wiki/List_of_HTTP_status_codes */
49typedef enum HTTPStatus_e {
66 REDIRECTION_FOUND = 302, /* Moved temporarily */
114
116
117typedef struct HTTP_s HTTP_t;
118
120void HTTP_del(HTTP_t* http);
121HTTP_t* HTTP_setbody(HTTP_t* http, const char* body);
122char* HTTP_getbody(HTTP_t* http);
123HTTPHeader_t* HTTP_addheader(HTTP_t* http, const char* name, const char* value);
124HTTPHeader_t* HTTP_addbasicauth(HTTP_t* http, const char* login, const char* pass);
125HTTPHeader_t* HTTPHeader_setname(HTTPHeader_t* header, const char* name);
126char* HTTPHeader_getname(HTTPHeader_t* header);
127HTTPHeader_t* HTTPHeader_setvalue(HTTPHeader_t* header, const char* value);
128char* HTTPHeader_getvalue(HTTPHeader_t* header);
131HTTPHeader_t* HTTP_findheader(const HTTPHeader_t* start, const char* name);
133char* HTTP_buildheaders(const HTTP_t* http);
134
135char* HTTP_buildrequest(const HTTPMethod_t method, const char* uri, const HTTPVersion_t version);
136void HTTP_parserequest(const char* request, HTTP_t** http, HTTPMethod_t method, char* uri, HTTPVersion_t version);
137char* HTTP_buildreply(const HTTP_t* http, const HTTPVersion_t, const HTTPStatus_t);
138void HTTP_parsereply(const char* reply, HTTP_t** http, HTTPVersion_t*, HTTPStatus_t*);
139
140
141#endif /* __LIBHTTP_H__ */
const char *const name
Definition: cJSON.h:268
HTTPHeader_t * HTTP_firstheader(const HTTP_t *http)
Definition: libhttp.c:271
enum HTTPVersion_e HTTPVersion_t
char * HTTPHeader_getvalue(HTTPHeader_t *header)
Definition: libhttp.c:86
HTTP_t * HTTP_remheader(HTTP_t *http, HTTPHeader_t *header)
Definition: libhttp.c:331
void HTTP_del(HTTP_t *http)
Definition: libhttp.c:153
enum HTTPStatus_e HTTPStatus_t
HTTPMethod_e
Definition: libhttp.h:35
@ HTTPMETHOD_PUT
Definition: libhttp.h:39
@ HTTPMETHOD_POST
Definition: libhttp.h:38
@ HTTPMETHOD_CONNECT
Definition: libhttp.h:41
@ HTTPMETHOD_TRACE
Definition: libhttp.h:43
@ HTTPMETHOD_PATCH
Definition: libhttp.h:44
@ HTTPMETHOD_DELETE
Definition: libhttp.h:40
@ HTTPMETHOD_OPTIONS
Definition: libhttp.h:42
@ HTTPMETHOD_GET
Definition: libhttp.h:36
@ HTTPMETHOD_INVALID
Definition: libhttp.h:45
@ HTTPMETHOD_HEAD
Definition: libhttp.h:37
HTTPVersion_e
Definition: libhttp.h:25
@ HTTPVERSION_HTTP11b
Definition: libhttp.h:29
@ HTTPVERSION_INVALID
Definition: libhttp.h:32
@ HTTPVERSION_HTTP09
Definition: libhttp.h:26
@ HTTPVERSION_HTTP2
Definition: libhttp.h:30
@ HTTPVERSION_HTTP10
Definition: libhttp.h:27
@ HTTPVERSION_HTTP3
Definition: libhttp.h:31
@ HTTPVERSION_HTTP11
Definition: libhttp.h:28
enum HTTPMethod_e HTTPMethod_t
char * HTTP_buildreply(const HTTP_t *http, const HTTPVersion_t, const HTTPStatus_t)
HTTPStatus_e
Definition: libhttp.h:49
@ CLIENTERROR_TOOEARLY
Definition: libhttp.h:96
@ CLIENTERROR_UNAVAILABLEFORLEGALREASONS
Definition: libhttp.h:101
@ CLIENTERROR_FAILEDDEPENDENCY
Definition: libhttp.h:95
@ SUCCESS_IMUSED
Definition: libhttp.h:63
@ REDIRECTION_PERMANENTREDIRECT
Definition: libhttp.h:72
@ REDIRECTION_MOVEDPERMANENTLY
Definition: libhttp.h:65
@ REDIRECTION_MULTIPLECHOICES
Definition: libhttp.h:64
@ CLIENTERROR_CONFLICT
Definition: libhttp.h:82
@ SUCCESS_PARTIALCONTENT
Definition: libhttp.h:60
@ CLIENTERROR_PROXYAUTHENTICATIONREQUIRED
Definition: libhttp.h:80
@ SUCCESS_ACCEPTED
Definition: libhttp.h:56
@ SERVERERROR_GATEWAYTIMEOUT
Definition: libhttp.h:106
@ CLIENTERROR_GONE
Definition: libhttp.h:83
@ REDIRECTION_TEMPORARYREDIRECT
Definition: libhttp.h:71
@ CLIENTERROR_URITOOLONG
Definition: libhttp.h:87
@ SUCCESS_RESETCONTENT
Definition: libhttp.h:59
@ SERVERERROR_INTERNALSERVERERROR
Definition: libhttp.h:102
@ SUCCESS_OK
Definition: libhttp.h:54
@ REDIRECTION_SWITCHPROXY
Definition: libhttp.h:70
@ REDIRECTION_FOUND
Definition: libhttp.h:66
@ SERVERERROR_NOTIMPLEMENTED
Definition: libhttp.h:103
@ SUCCESS_CREATED
Definition: libhttp.h:55
@ REDIRECTION_SEEOTHER
Definition: libhttp.h:67
@ SERVERERROR_NOTEXTENDED
Definition: libhttp.h:111
@ SUCCESS_ALREADYREPORTED
Definition: libhttp.h:62
@ SERVERERROR_INSUFFICIENTSTORAGE
Definition: libhttp.h:109
@ SUCCESS_NOCONTENT
Definition: libhttp.h:58
@ SERVERERROR_LOOPDETECTED
Definition: libhttp.h:110
@ CLIENTERROR_NOTACCEPTABLE
Definition: libhttp.h:79
@ SERVERERROR_NETWORKAUTHENTICATIONREQUIRED
Definition: libhttp.h:112
@ CLIENTERRORPRECONDITIONFAILED
Definition: libhttp.h:85
@ INFO_SWITCHINGPROTOCOLS
Definition: libhttp.h:51
@ CLIENTERROR_REQUESTTIMEOUT
Definition: libhttp.h:81
@ REDIRECTION_NOTMODIFIED
Definition: libhttp.h:68
@ CLIENTERROR_IMATEAPOT
Definition: libhttp.h:91
@ SERVERERROR_SERVICEUNAVAILABLE
Definition: libhttp.h:105
@ INFO_PROCESSING
Definition: libhttp.h:52
@ CLIENTERROR_REQUESTHEADERFIELDSTOOLARGE
Definition: libhttp.h:100
@ SERVERERROR_BADGATEWAY
Definition: libhttp.h:104
@ CLIENTERROR_NOTFOUND
Definition: libhttp.h:77
@ CLIENTERROR_PRECONDITIONREQUIRED
Definition: libhttp.h:98
@ CLIENTERROR_UNSUPPORTEDMEDIATYPE
Definition: libhttp.h:88
@ SUCCESS_NONAUTHORITATIVEINFORMATION
Definition: libhttp.h:57
@ SERVERERROR_VARIANTALSONEGOTIATES
Definition: libhttp.h:108
@ CLIENTERROR_PAYMENTREQUIRED
Definition: libhttp.h:75
@ CLIENTERROR_BADREQUEST
Definition: libhttp.h:73
@ REDIRECTION_USEPROXY
Definition: libhttp.h:69
@ CLIENTERROR_FORBIDDEN
Definition: libhttp.h:76
@ INFO_EARLYHINTS
Definition: libhttp.h:53
@ CLIENTERROR_LOCKED
Definition: libhttp.h:94
@ CLIENTERROR_UPGRADEREQUIRED
Definition: libhttp.h:97
@ CLIENTERROR_EXPECTATIONFAILED
Definition: libhttp.h:90
@ CLIENTERROR_UNAUTHORIZED
Definition: libhttp.h:74
@ CLIENTERROR_UNPROCESSABLECONTENT
Definition: libhttp.h:93
@ INFO_CONTINUE
Definition: libhttp.h:50
@ SERVERERROR_HTTPVERSIONNOTSUPPORTED
Definition: libhttp.h:107
@ CLIENTERROR_METHODNOTALLOWED
Definition: libhttp.h:78
@ CLIENTERROR_TOOMANYREQUESTS
Definition: libhttp.h:99
@ CLIENTERROR_LENGTHREQUIRED
Definition: libhttp.h:84
@ CLIENTERROR_PAYLOADTOOLARGE
Definition: libhttp.h:86
@ CLIENTERROR_MISDIRECTEDREQUEST
Definition: libhttp.h:92
@ SUCCESS_MULTISTATUS
Definition: libhttp.h:61
@ CLIENTERROR_RANGENOTSATISFIABLE
Definition: libhttp.h:89
char * HTTP_buildheaders(const HTTP_t *http)
Definition: libhttp.c:370
void HTTP_parserequest(const char *request, HTTP_t **http, HTTPMethod_t method, char *uri, HTTPVersion_t version)
HTTP_t * HTTP_new()
Definition: libhttp.c:129
HTTPHeader_t * HTTP_addbasicauth(HTTP_t *http, const char *login, const char *pass)
Definition: libhttp.c:231
char * HTTP_getbody(HTTP_t *http)
Definition: libhttp.c:196
void HTTP_parsereply(const char *reply, HTTP_t **http, HTTPVersion_t *, HTTPStatus_t *)
char * HTTPHeader_getname(HTTPHeader_t *header)
Definition: libhttp.c:61
HTTPHeader_t * HTTPHeader_setname(HTTPHeader_t *header, const char *name)
Definition: libhttp.c:39
HTTPHeader_t * HTTP_findheader(const HTTPHeader_t *start, const char *name)
Definition: libhttp.c:300
HTTP_t * HTTP_setbody(HTTP_t *http, const char *body)
Definition: libhttp.c:178
HTTPHeader_t * HTTP_addheader(HTTP_t *http, const char *name, const char *value)
Definition: libhttp.c:204
char * HTTP_buildrequest(const HTTPMethod_t method, const char *uri, const HTTPVersion_t version)
Definition: libhttp.c:409
HTTPHeader_t * HTTPHeader_setvalue(HTTPHeader_t *header, const char *value)
Definition: libhttp.c:69
HTTPHeader_t * HTTP_nextheader(const HTTPHeader_t *header)
Definition: libhttp.c:283
Definition: libhttp.c:28
char * body
Definition: libhttp.c:30