#ifndef _HTTP_HEADER_H_
#define _HTTP_HEADER_H_

typedef struct http_header_st {
  char *name;
  char *value;
} http_header_t;

#ifdef __cplusplus
extern "C" {
#endif

/*
 * A new header object to be parsed from
 * 'header_line'.
 */
http_header_t *http_header_new(void);

/*
 * Parse an HTTP header into the header object.
 */
int http_header_parse(http_header_t *hdr, char *buffer);

/*
 * Set the contents of an HTTP header.
 */
int http_header_set(http_header_t *hdr, char *name, char *value);

/*
 * Delete memory associated with a header.
 */
void http_header_delete(http_header_t *hdr);

#ifdef __cplusplus
}
#endif

#endif /*_HTTP_HEADER_H_*/
