6 #include "contiki-net.h"
9 #define STATE_WAITING 0
10 #define STATE_OUTPUT 1
13 #define LINE_FEED_CHAR '\n'
14 #define CARRIAGE_RETURN_CHAR '\r'
18 extern const char* http_string;
21 extern const char* http_get_string;
22 extern const char* http_head_string;
23 extern const char* http_post_string;
24 extern const char* http_put_string;
25 extern const char* http_delete_string;
27 extern const char* httpv1_1;
28 extern const char* line_end;
29 extern const char* contiki;
30 extern const char* close;
33 extern const char* HTTP_HEADER_NAME_CONTENT_TYPE;
34 extern const char* HTTP_HEADER_NAME_CONTENT_LENGTH;
35 extern const char* HTTP_HEADER_NAME_LOCATION;
36 extern const char* HTTP_HEADER_NAME_CONNECTION;
37 extern const char* HTTP_HEADER_NAME_SERVER;
38 extern const char* HTTP_HEADER_NAME_HOST;
39 extern const char* HTTP_HEADER_NAME_IF_NONE_MATCH;
40 extern const char* HTTP_HEADER_NAME_ETAG;
42 extern const char* header_delimiter;
46 #define HTTP_PORT 8080
47 #define HTTP_DATA_BUFF_SIZE 600
48 #define INCOMING_DATA_BUFF_SIZE 102
52 HTTP_METHOD_GET = (1 << 0),
53 HTTP_METHOD_POST = (1 << 1),
54 HTTP_METHOD_PUT = (1 << 2),
55 HTTP_METHOD_DELETE = (1 << 3)
62 NOT_MODIFIED_304 = 304,
63 BAD_REQUEST_400 = 400,
65 METHOD_NOT_ALLOWED_405 = 405,
66 REQUEST_URI_TOO_LONG_414 = 414,
67 UNSUPPORTED_MADIA_TYPE_415 = 415,
68 INTERNAL_SERVER_ERROR_500 = 500,
69 BAD_GATEWAY_502 = 502,
70 SERVICE_UNAVAILABLE_503 = 503,
71 GATEWAY_TIMEOUT_504 = 504
82 APPLICATION_LINK_FORMAT,
88 struct http_header_t {
89 struct http_header_t* next;
93 typedef struct http_header_t http_header_t;
96 struct http_request_t {
99 http_method_t request_type;
102 http_header_t* headers;
103 uint16_t payload_len;
106 typedef struct http_request_t http_request_t;
109 struct http_response_t {
110 status_code_t status_code;
112 http_header_t* headers;
113 uint16_t payload_len;
116 typedef struct http_response_t http_response_t;
120 struct psock sin, sout;
122 char inputbuf[INCOMING_DATA_BUFF_SIZE];
124 http_request_t request;
125 http_response_t response;
126 } connection_state_t;
133 HTTP_MEMORY_ALLOC_ERR,
134 HTTP_MEMORY_BOUNDARY_EXCEEDED,
138 HTTP_SOAP_MESSAGE_NOT_VALID,
The representation of a protosocket.