Free (GPLv2) TCP/IP stack developed by TASS Belgium
Fork of PicoTCP by
Diff: modules/pico_http_util.h
- Revision:
- 3:b4047e8a0123
diff -r d12a891f2eca -r b4047e8a0123 modules/pico_http_util.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/pico_http_util.h Fri May 24 15:25:25 2013 +0000 @@ -0,0 +1,117 @@ +/********************************************************************* +PicoTCP. Copyright (c) 2012 TASS Belgium NV. Some rights reserved. +See LICENSE and COPYING for usage. + +Author: Andrei Carp <andrei.carp@tass.be> +*********************************************************************/ + +#ifndef PICO_HTTP_UTIL_H_ +#define PICO_HTTP_UTIL_H_ + +/* Informational reponses */ +#define HTTP_CONTINUE 100u +#define HTTP_SWITCHING_PROTOCOLS 101u +#define HTTP_PROCESSING 102u + +/* Success */ +#define HTTP_OK 200u +#define HTTP_CREATED 201u +#define HTTP_ACCEPTED 202u +#define HTTP_NON_AUTH_INFO 203u +#define HTTP_NO_CONTENT 204u +#define HTTP_RESET_CONTENT 205u +#define HTTP_PARTIAL_CONTENT 206u +#define HTTP_MULTI_STATUS 207u +#define HTTP_ALREADY_REPORTED 208u +#define HTTP_LOW_SPACE 250u +#define HTTP_IM_SPACE 226u + +/* Redirection */ +#define HTTP_MULTI_CHOICE 300u +#define HTTP_MOVED_PERMANENT 301u +#define HTTP_FOUND 302u +#define HTTP_SEE_OTHER 303u +#define HTTP_NOT_MODIFIED 304u +#define HTTP_USE_PROXY 305u +#define HTTP_SWITCH_PROXY 306u +#define HTTP_TEMP_REDIRECT 307u +#define HTTP_PERM_REDIRECT 308u + +/* Client error */ +#define HTTP_BAD_REQUEST 400u +#define HTTP_UNAUTH 401u +#define HTTP_PAYMENT_REQ 402u +#define HTTP_FORBIDDEN 403u +#define HTTP_NOT_FOUND 404u +#define HTTP_METH_NOT_ALLOWED 405u +#define HTTP_NOT_ACCEPTABLE 406u +#define HTTP_PROXY_AUTH_REQ 407u +#define HTTP_REQ_TIMEOUT 408u +#define HTTP_CONFLICT 409u +#define HTTP_GONE 410u +#define HTTP_LEN_REQ 411u +#define HTTP_PRECONDITION_FAIL 412u +#define HTTP_REQ_ENT_LARGE 413u +#define HTTP_URI_TOO_LONG 414u +#define HTTP_UNSUPORTED_MEDIA 415u +#define HTTP_REQ_RANGE_NOK 416u +#define HTTP_EXPECT_FAILED 417u +#define HTTP_TEAPOT 418u +#define HTTP_UNPROC_ENTITY 422u +#define HTTP_LOCKED 423u +#define HTTP_METHOD_FAIL 424u +#define HTTP_UNORDERED 425u +#define HTTP_UPGRADE_REQ 426u +#define HTTP_PRECOND_REQ 428u +#define HTTP_TOO_MANY_REQ 429u +#define HTTP_HEDER_FIELD_LARGE 431u + +/* Server error */ +#define HTTP_INTERNAL_SERVER_ERR 500u +#define HTTP_NOT_IMPLEMENTED 501u +#define HTTP_BAD_GATEWAY 502u +#define HTTP_SERVICE_UNAVAILABLE 503u +#define HTTP_GATEWAY_TIMEOUT 504u +#define HTTP_NOT_SUPPORTED 505u +#define HTTP_SERV_LOW_STORAGE 507u +#define HTTP_LOOP_DETECTED 508u +#define HTTP_NOT_EXTENDED 510u +#define HTTP_NETWORK_AUTH 511u +#define HTTP_PERMISSION_DENIED 550u + +/* Returns used */ +#define HTTP_RETURN_ERROR -1 +#define HTTP_RETURN_OK 0 + +/* List of events - shared between client and server */ +#define EV_HTTP_CON 1u +#define EV_HTTP_REQ 2u +#define EV_HTTP_PROGRESS 4u +#define EV_HTTP_SENT 8u +#define EV_HTTP_CLOSE 16u +#define EV_HTTP_ERROR 32u +#define EV_HTTP_BODY 64u +#define EV_HTTP_DNS 128u + +#ifndef TRUE + #define TRUE 1 +#endif + +#ifndef FALSE + #define FALSE 0 +#endif + +struct pico_http_uri +{ + uint8_t protoHttp; // is the protocol Http ? + char * host; // hostname + uint16_t port; // port if specified + char * resource; // resource , ignoring the other possible parameters +}; + +// used for chunks +int pico_itoaHex(uint16_t port, char * ptr); +int pico_itoa(uint16_t port, char * ptr); +int pico_processURI(const char * uri, struct pico_http_uri * urikey); + +#endif /* PICO_HTTP_UTIL_H_ */