libUPnP  1.6.17
Data Structures | Defines | Enumerations | Functions
httpparser.h File Reference
#include "LinkedList.h"
#include "membuffer.h"
#include "uri.h"
#include "upnputil.h"
Include dependency graph for httpparser.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  scanner_t
struct  http_header_t
struct  http_message_t
struct  http_parser_t

Defines

#define ENTREAD_DETERMINE_READ_METHOD   1
#define ENTREAD_USING_CLEN   2
#define ENTREAD_USING_CHUNKED   3
#define ENTREAD_UNTIL_CLOSE   4
#define ENTREAD_CHUNKY_BODY   5
#define ENTREAD_CHUNKY_HEADERS   6
#define HDR_UNKNOWN   -1
#define HDR_CACHE_CONTROL   1
#define HDR_CALLBACK   2
#define HDR_CONTENT_LENGTH   3
#define HDR_CONTENT_TYPE   4
#define HDR_DATE   5
#define HDR_EXT   6
#define HDR_HOST   7
#define HDR_LOCATION   11
#define HDR_MAN   12
#define HDR_MX   13
#define HDR_NT   14
#define HDR_NTS   15
#define HDR_SERVER   16
#define HDR_SEQ   17
#define HDR_SID   18
#define HDR_SOAPACTION   19
#define HDR_ST   20
#define HDR_TIMEOUT   21
#define HDR_TRANSFER_ENCODING   22
#define HDR_USN   23
#define HDR_USER_AGENT   24
#define HDR_ACCEPT   25
#define HDR_ACCEPT_ENCODING   26
#define HDR_ACCEPT_CHARSET   27
#define HDR_ACCEPT_LANGUAGE   28
#define HDR_ACCEPT_RANGE   29
#define HDR_CONTENT_ENCODING   30
#define HDR_CONTENT_LANGUAGE   31
#define HDR_CONTENT_LOCATION   32
#define HDR_CONTENT_RANGE   33
#define HDR_IF_RANGE   34
#define HDR_RANGE   35
#define HDR_TE   36

Enumerations

enum  token_type_t {
  TT_IDENTIFIER, TT_WHITESPACE, TT_CRLF, TT_CTRL,
  TT_SEPARATOR, TT_QUOTEDSTRING
}
enum  parser_pos_t {
  POS_REQUEST_LINE, POS_RESPONSE_LINE, POS_HEADERS, POS_ENTITY,
  POS_COMPLETE
}
enum  http_method_t {
  HTTPMETHOD_POST, HTTPMETHOD_MPOST, HTTPMETHOD_SUBSCRIBE, HTTPMETHOD_UNSUBSCRIBE,
  HTTPMETHOD_NOTIFY, HTTPMETHOD_GET, HTTPMETHOD_HEAD, HTTPMETHOD_MSEARCH,
  HTTPMETHOD_UNKNOWN, SOAPMETHOD_POST, HTTPMETHOD_SIMPLEGET
}
enum  parse_status_t {
  PARSE_SUCCESS = 0, PARSE_INCOMPLETE, PARSE_INCOMPLETE_ENTITY, PARSE_FAILURE,
  PARSE_OK, PARSE_NO_MATCH, PARSE_CONTINUE_1
}

Functions

void httpmsg_init (http_message_t *msg)
void httpmsg_destroy (http_message_t *msg)
http_header_thttpmsg_find_hdr_str (http_message_t *msg, const char *header_name)
http_header_thttpmsg_find_hdr (http_message_t *msg, int header_name_id, memptr *value)
void parser_request_init (http_parser_t *parser)
void parser_response_init (http_parser_t *parser, http_method_t request_method)
parse_status_t parser_parse (http_parser_t *parser)
parse_status_t parser_parse_responseline (http_parser_t *parser)
parse_status_t parser_parse_headers (http_parser_t *parser)
parse_status_t parser_parse_entity (http_parser_t *parser)
parse_status_t parser_get_entity_read_method (http_parser_t *parser)
parse_status_t parser_append (http_parser_t *parser, const char *buf, size_t buf_length)
parse_status_t matchstr (char *str, size_t slen, const char *fmt,...)
int raw_to_int (memptr *raw_value, int base)
int raw_find_str (memptr *raw_value, const char *str)
const char * method_to_str (http_method_t method)

Detailed Description


Enumeration Type Documentation

status of parsing

Enumerator:
PARSE_SUCCESS 

msg was parsed successfully.

PARSE_INCOMPLETE 

need more data to continue.

PARSE_INCOMPLETE_ENTITY 

for responses that don't have length specified.

PARSE_FAILURE 

parse failed; check status code for details.

PARSE_OK 

done partial.

PARSE_NO_MATCH 

token not matched.

PARSE_CONTINUE_1 

private.