Changeset 4d4f656 in mainline for uspace/lib/http/include


Ignore:
Timestamp:
2013-09-26T20:50:52Z (12 years ago)
Author:
Martin Sucha <sucha14@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
408424e
Parents:
b623b68
Message:

libhttp: Add higher-level API for working with headers

Location:
uspace/lib/http/include/http
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/http/include/http/http.h

    rb623b68 r4d4f656  
    6767
    6868typedef struct {
     69        list_t list;
     70} http_headers_t;
     71
     72typedef struct {
    6973        char *method;
    7074        char *path;
    71         list_t headers;
     75        http_headers_t headers;
    7276} http_request_t;
    7377
     
    7680        uint16_t status;
    7781        char *message;
    78         list_t headers;
     82        http_headers_t headers;
    7983} http_response_t;
    8084
     
    8892extern int http_header_receive(receive_buffer_t *, http_header_t *);
    8993extern void http_header_normalize_value(char *);
     94extern bool http_header_name_match(const char *, const char *);
    9095ssize_t http_header_encode(http_header_t *, char *, size_t);
    9196extern void http_header_destroy(http_header_t *);
     97
     98extern void http_headers_init(http_headers_t *);
     99extern int http_headers_find_single(http_headers_t *, const char *,
     100    http_header_t **);
     101extern int http_headers_append(http_headers_t *, const char *, const char *);
     102extern int http_headers_set(http_headers_t *, const char *, const char *);
     103extern int http_headers_get(http_headers_t *, const char *, char **);
     104extern int http_headers_receive(receive_buffer_t *, http_headers_t *);
     105extern void http_headers_clear(http_headers_t *);
     106
     107#define http_headers_foreach(headers, iter) \
     108    list_foreach((headers).list, link, http_header_t, (iter))
     109
     110static inline void http_headers_remove(http_headers_t *headers,
     111    http_header_t *header)
     112{
     113        list_remove(&header->link);
     114}
     115
     116static inline void http_headers_append_header(http_headers_t *headers,
     117    http_header_t *header)
     118{
     119        list_append(&header->link, &headers->list);
     120}
    92121
    93122extern http_request_t *http_request_create(const char *, const char *);
Note: See TracChangeset for help on using the changeset viewer.