Ulfius
HTTP Framework for REST Applications in C
u_private.h
Go to the documentation of this file.
1 
26 #ifndef __U_PRIVATE_H__
27 #define __U_PRIVATE_H__
28 
29 #include "ulfius.h"
30 
32 #define UNUSED(x) (void)(x)
33 
38 #ifdef U_WITH_FREERTOS
39  #include <FreeRTOS_Sockets.h>
40  #define sockaddr freertos_sockaddr
41  typedef unsigned long int socklen_t;
42 #else
43  #ifdef U_WITH_LWIP
44  #include <lwip/sockets.h>
45  #endif // U_WITH_LWIP
46 #endif // U_WITH_FREERTOS
47 
48 
49 /**********************************
50  * Internal functions declarations
51  **********************************/
52 
59 struct _u_endpoint ** ulfius_endpoint_match(const char * method, const char * url, struct _u_endpoint * endpoint_list);
60 
66 int ulfius_parse_url(const char * url, const struct _u_endpoint * endpoint, struct _u_map * map, int check_utf8);
67 
73 int ulfius_set_response_header(struct MHD_Response * response, const struct _u_map * response_map_header);
74 
80 int ulfius_set_response_cookie(struct MHD_Response * mhd_response, const struct _u_response * response);
81 
100 const unsigned char * utf8_check(const char * s_orig);
101 
102 #ifndef U_DISABLE_WEBSOCKET
103 
111 void ulfius_start_websocket_cb (void *cls,
112  struct MHD_Connection *connection,
113  void *con_cls,
114  const char *extra_in,
115  size_t extra_in_size,
116  MHD_socket sock,
117  struct MHD_UpgradeResponseHandle *urh);
118 
122 int ulfius_generate_handshake_answer(const char * key, char * out_digest);
123 
129 int ulfius_check_list_match(const char * source, const char * match, const char * separator, char ** result);
130 
136 int ulfius_check_first_match(const char * source, const char * match, const char * separator, char ** result);
137 
142 int ulfius_init_websocket_message_list(struct _websocket_message_list * message_list);
143 
147 void ulfius_clear_websocket_message_list(struct _websocket_message_list * message_list);
148 
153 int ulfius_push_websocket_message(struct _websocket_message_list * message_list, struct _websocket_message * message);
154 
158 int ulfius_clear_websocket(struct _websocket * websocket);
159 
163 void ulfius_clear_websocket_manager(struct _websocket_manager * websocket_manager);
164 
168 int ulfius_close_websocket(struct _websocket * websocket);
169 
173 void * ulfius_thread_websocket_manager_run(void * args);
174 
178 int ulfius_instance_add_websocket_active(struct _u_instance * instance, struct _websocket * websocket);
179 
183 int ulfius_instance_remove_websocket_active(struct _u_instance * instance, struct _websocket * websocket);
184 
189 int ulfius_init_websocket(struct _websocket * websocket);
190 
195 int ulfius_init_websocket_manager(struct _websocket_manager * websocket_manager);
196 
200 int ulfius_check_handshake_response(const char * key, const char * response);
201 
202 #endif // U_DISABLE_WEBSOCKET
203 
204 #endif // __U_PRIVATE_H__
ulfius_check_first_match
int ulfius_check_first_match(const char *source, const char *match, const char *separator, char **result)
Definition: u_websocket.c:980
ulfius_set_response_cookie
int ulfius_set_response_cookie(struct MHD_Response *mhd_response, const struct _u_response *response)
Definition: u_response.c:189
ulfius_check_handshake_response
int ulfius_check_handshake_response(const char *key, const char *response)
Definition: u_websocket.c:862
_u_map
Definition: ulfius.h:195
ulfius_instance_remove_websocket_active
int ulfius_instance_remove_websocket_active(struct _u_instance *instance, struct _websocket *websocket)
Definition: u_websocket.c:1061
_u_endpoint
Contains all informations needed for an endpoint.
Definition: ulfius.h:289
ulfius_endpoint_match
struct _u_endpoint ** ulfius_endpoint_match(const char *method, const char *url, struct _u_endpoint *endpoint_list)
Definition: u_request.c:174
ulfius_parse_url
int ulfius_parse_url(const char *url, const struct _u_endpoint *endpoint, struct _u_map *map, int check_utf8)
Definition: u_request.c:231
ulfius_clear_websocket_message_list
void ulfius_clear_websocket_message_list(struct _websocket_message_list *message_list)
Definition: u_websocket.c:1234
ulfius_check_list_match
int ulfius_check_list_match(const char *source, const char *match, const char *separator, char **result)
Definition: u_websocket.c:939
ulfius_set_response_header
int ulfius_set_response_header(struct MHD_Response *response, const struct _u_map *response_map_header)
Definition: u_response.c:165
ulfius_generate_handshake_answer
int ulfius_generate_handshake_answer(const char *key, char *out_digest)
Definition: u_websocket.c:879
ulfius_clear_websocket_manager
void ulfius_clear_websocket_manager(struct _websocket_manager *websocket_manager)
Definition: u_websocket.c:1325
ulfius_init_websocket
int ulfius_init_websocket(struct _websocket *websocket)
Definition: u_websocket.c:1248
_u_response
definition of the parameters available in a struct _u_response
Definition: ulfius.h:264
ulfius_clear_websocket
int ulfius_clear_websocket(struct _websocket *websocket)
Definition: u_websocket.c:1208
ulfius.h
Ulfius framework.
ulfius_instance_add_websocket_active
int ulfius_instance_add_websocket_active(struct _u_instance *instance, struct _websocket *websocket)
Definition: u_websocket.c:1042
ulfius_thread_websocket_manager_run
void * ulfius_thread_websocket_manager_run(void *args)
Definition: u_websocket.c:432
ulfius_close_websocket
int ulfius_close_websocket(struct _websocket *websocket)
Definition: u_websocket.c:1020
ulfius_init_websocket_message_list
int ulfius_init_websocket_message_list(struct _websocket_message_list *message_list)
Definition: u_websocket.c:905
_u_instance
Contains the needed data for an ulfius instance to work.
Definition: ulfius.h:306
ulfius_start_websocket_cb
void ulfius_start_websocket_cb(void *cls, struct MHD_Connection *connection, void *con_cls, const char *extra_in, size_t extra_in_size, MHD_socket sock, struct MHD_UpgradeResponseHandle *urh)
Definition: u_websocket.c:818
ulfius_init_websocket_manager
int ulfius_init_websocket_manager(struct _websocket_manager *websocket_manager)
Definition: u_websocket.c:1282
ulfius_push_websocket_message
int ulfius_push_websocket_message(struct _websocket_message_list *message_list, struct _websocket_message *message)
Definition: u_websocket.c:919
utf8_check
const unsigned char * utf8_check(const char *s_orig)
Definition: ulfius.c:1688