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
73struct 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;
92void websocket_http_client_init(
struct websocket_http_client_state *s);
93void websocket_http_client_set_proxy(
struct websocket_http_client_state *s,
94 const uip_ipaddr_t *
addr, uint16_t port);
96int websocket_http_client_register(
struct websocket_http_client_state *s,
100 const char *subprotocol,
102int websocket_http_client_get(
struct websocket_http_client_state *s);
103int websocket_http_client_send(
struct websocket_http_client_state *s,
106int websocket_http_client_sendbuflen(
struct websocket_http_client_state *s);
108void websocket_http_client_close(
struct websocket_http_client_state *s);
110const char *websocket_http_client_hostname(
struct websocket_http_client_state *s);
112int websocket_http_client_queuelen(
struct websocket_http_client_state *s);
116void websocket_http_client_datahandler(
struct websocket_http_client_state *s,
117 const uint8_t *data, uint16_t len);
118void websocket_http_client_connected(
struct websocket_http_client_state *s);
119void websocket_http_client_timedout(
struct websocket_http_client_state *s);
120void websocket_http_client_aborted(
struct websocket_http_client_state *s);
121void websocket_http_client_closed(
struct websocket_http_client_state *s);
static uip_ds6_addr_t * addr
Pointer to a nbr cache entry.