http.h
author Tero Marttila <terom@fixme.fi>
Fri, 06 Jun 2008 16:05:26 +0300
changeset 10 9daa832ab9c4
child 27 1e79b4cc8f1b
permissions -rw-r--r--
separate http query argument parsing into a new http module, and clean up unused headers from web_main.c

committer: Tero Marttila <terom@fixme.fi>
10
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
/*
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
 * The HTTP interface code
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
 */
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
#ifndef HTTP_H
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
#define HTTP_H
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
#include <event2/http.h>
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
enum http_qarg_type {
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
    QARG_INVALID,   // hqa_addr is NULL, abort parsing
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
    QARG_INT,       // hqa_addr is a `signed long int`
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
    QARG_UINT,      // hqa_addr is an `unsigned long int`
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
    QARG_END,       // last item in the qarg_spec
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
};
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
struct http_qarg {
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
    // the key to look for
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
    const char          *hqa_key;
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
    // the type of value
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
    enum http_qarg_type  hqa_type;
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
    // where to store the value, left unchanged if not found
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
    void                *hqa_addr;
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
};
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
/*
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    30
 * Parse the query args in the given evhttp_request according to the given http_arg specification.
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
 *
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    32
 * Returns zero if all matching fields were succesfully parsed, nonzero if any field was invalid
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
 */
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    34
int http_qarg_parse (struct evhttp_request *request, struct http_qarg *qarg_spec);
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
9daa832ab9c4 separate http query argument parsing into a new http module, and clean up unused headers from web_main.c
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
#endif /* HTTP_H */