31 #ifndef WEBSOCKET_HTTP_CLIENT_H_ 32 #define WEBSOCKET_HTTP_CLIENT_H_ 35 #include "tcp-socket.h" 37 #ifdef WEBSOCKET_HTTP_CLIENT_CONF_INPUTBUFSIZE 38 #define WEBSOCKET_HTTP_CLIENT_INPUTBUFSIZE WEBSOCKET_HTTP_CLIENT_CONF_INPUTBUFSIZE 40 #define WEBSOCKET_HTTP_CLIENT_INPUTBUFSIZE 100 43 #ifdef WEBSOCKET_HTTP_CLIENT_CONF_OUTPUTBUFSIZE 44 #define WEBSOCKET_HTTP_CLIENT_OUTPUTBUFSIZE WEBSOCKET_HTTP_CLIENT_CONF_OUTPUTBUFSIZE 46 #define WEBSOCKET_HTTP_CLIENT_OUTPUTBUFSIZE 300 49 #ifdef WEBSOCKET_HTTP_CLIENT_CONF_MAX_HOSTLEN 50 #define WEBSOCKET_HTTP_CLIENT_MAX_HOSTLEN WEBSOCKET_HTTP_CLIENT_CONF_MAX_HOSTLEN 52 #define WEBSOCKET_HTTP_CLIENT_MAX_HOSTLEN 32 55 #ifdef WEBSOCKET_HTTP_CLIENT_CONF_MAX_FILELEN 56 #define WEBSOCKET_HTTP_CLIENT_MAX_FILELEN WEBSOCKET_HTTP_CLIENT_CONF_MAX_FILELEN 58 #define WEBSOCKET_HTTP_CLIENT_MAX_FILELEN 32 61 #ifdef WEBSOCKET_HTTP_CLIENT_CONF_MAX_SUBPROTOCOLLEN 62 #define WEBSOCKET_HTTP_CLIENT_MAX_SUBPROTOCOLLEN WEBSOCKET_HTTP_CLIENT_CONF_MAX_SUBPROTOCOLLEN 64 #define WEBSOCKET_HTTP_CLIENT_MAX_SUBPROTOCOLLEN 24 67 #ifdef WEBSOCKET_HTTP_CLIENT_CONF_MAX_HEADERLEN 68 #define WEBSOCKET_HTTP_CLIENT_MAX_HEADERLEN WEBSOCKET_HTTP_CLIENT_CONF_MAX_HEADERLEN 70 #define WEBSOCKET_HTTP_CLIENT_MAX_HEADERLEN 128 73 struct websocket_http_client_state {
75 uint8_t inputbuf[WEBSOCKET_HTTP_CLIENT_INPUTBUFSIZE];
76 uint8_t outputbuf[WEBSOCKET_HTTP_CLIENT_OUTPUTBUFSIZE];
77 char host[WEBSOCKET_HTTP_CLIENT_MAX_HOSTLEN];
78 char file[WEBSOCKET_HTTP_CLIENT_MAX_FILELEN];
79 char subprotocol[WEBSOCKET_HTTP_CLIENT_MAX_SUBPROTOCOLLEN];
80 char header[WEBSOCKET_HTTP_CLIENT_MAX_HEADERLEN];
84 struct pt parse_header_pt;
88 uip_ipaddr_t proxy_addr;
92 void websocket_http_client_init(
struct websocket_http_client_state *s);
93 void websocket_http_client_set_proxy(
struct websocket_http_client_state *s,
94 const uip_ipaddr_t *
addr, uint16_t port);
96 int websocket_http_client_register(
struct websocket_http_client_state *s,
100 const char *subprotocol,
102 int websocket_http_client_get(
struct websocket_http_client_state *s);
103 int websocket_http_client_send(
struct websocket_http_client_state *s,
106 int websocket_http_client_sendbuflen(
struct websocket_http_client_state *s);
108 void websocket_http_client_close(
struct websocket_http_client_state *s);
110 const char *websocket_http_client_hostname(
struct websocket_http_client_state *s);
112 int websocket_http_client_queuelen(
struct websocket_http_client_state *s);
116 void websocket_http_client_datahandler(
struct websocket_http_client_state *s,
117 const uint8_t *data, uint16_t len);
118 void websocket_http_client_connected(
struct websocket_http_client_state *s);
119 void websocket_http_client_timedout(
struct websocket_http_client_state *s);
120 void websocket_http_client_aborted(
struct websocket_http_client_state *s);
121 void websocket_http_client_closed(
struct websocket_http_client_state *s);
static uip_ds6_addr_t * addr
Pointer to a nbr cache entry.