#ifndef picohttpparser_h
#define picohttpparser_h
/* $Id: e8df3d19ac99b0e989e41f8281fd710fa94d17d4 $ */
#ifdef __cplusplus
extern "C" {
#endif
/* contains name and value of a header (name == NULL if is a continuing line
* of a multiline header */
struct phr_header {
const char* name;
size_t name_len;
const char* value;
size_t value_len;
};
/* returns number of bytes cosumed if successful, -2 if request is partial,
* -1 if failed */
int phr_parse_request(const char* buf, size_t len, const char** method,
size_t* method_len, const char** path,
size_t* path_len, int* minor_version,
struct phr_header* headers, size_t* num_headers,
size_t last_len);
/* ditto */
int phr_parse_response(const char* _buf, size_t len, int *minor_version,
int *status, const char **msg, size_t *msg_len,
struct phr_header* headers, size_t* num_headers,
size_t last_len);
#ifdef __cplusplus
}
#endif
#endif