34 #include "tcp-socket.h"
46 HTTP_SOCKET_HOSTNAME_NOT_FOUND,
47 } http_socket_event_t;
49 struct http_socket_header {
51 int64_t content_length;
53 int64_t first_byte_pos;
54 int64_t last_byte_pos;
55 int64_t instance_length;
59 typedef void (* http_socket_callback_t)(
struct http_socket *s,
61 http_socket_event_t ev,
65 #define MAX(n, m) (((n) < (m)) ? (m) : (n))
67 #define HTTP_SOCKET_INPUTBUFSIZE UIP_TCP_MSS
68 #define HTTP_SOCKET_OUTPUTBUFSIZE MAX(UIP_TCP_MSS, 128)
70 #define HTTP_SOCKET_URLLEN 128
72 #define HTTP_SOCKET_TIMEOUT ((2 * 60 + 30) * CLOCK_SECOND)
75 struct http_socket *next;
77 uip_ipaddr_t proxy_addr;
81 const uint8_t *postdata;
83 http_socket_callback_t callback;
86 char url[HTTP_SOCKET_URLLEN];
87 uint8_t inputbuf[HTTP_SOCKET_INPUTBUFSIZE];
88 uint8_t outputbuf[HTTP_SOCKET_OUTPUTBUFSIZE];
90 struct etimer timeout_timer;
91 uint8_t timeout_timer_started;
92 struct pt pt, headerpt;
94 char header_field[15];
95 struct http_socket_header header;
96 uint8_t header_received;
98 const char *content_type;
101 void http_socket_init(
struct http_socket *s);
103 int http_socket_get(
struct http_socket *s,
const char *url,
104 int64_t pos, uint64_t length,
105 http_socket_callback_t callback,
108 int http_socket_post(
struct http_socket *s,
const char *url,
109 const void *postdata,
110 uint16_t postdatalen,
111 const char *content_type,
112 http_socket_callback_t callback,
115 int http_socket_close(
struct http_socket *socket);
117 void http_socket_set_proxy(
struct http_socket *s,
118 const uip_ipaddr_t *
addr, uint16_t port);
static uip_ds6_addr_t * addr
Pointer to a router list entry.