87b0b1cec65ae1ff103aab804497f26930f7666d
[citadel.git] / webcit / paramhandling.h
1 /* URL / Mime Post parsing -> paramhandling.c */
2 void upload_handler(char *name, char *filename, char *partnum, char *disp,
3                     void *content, char *cbtype, char *cbcharset,
4                     size_t length, char *encoding, char *cbid, void *userdata);
5
6 void ParseURLParams(StrBuf *url);
7
8
9 /* These may return NULL if not foud */
10 #define sbstr(a) SBstr(a, sizeof(a) - 1)
11 const StrBuf *SBSTR(const char *key);
12 const StrBuf *SBstr(const char *key, size_t keylen);
13
14 #define xbstr(a, b) (char*) XBstr(a, sizeof(a) - 1, b)
15 const char *XBstr(const char *key, size_t keylen, size_t *len);
16 const char *XBSTR(const char *key, size_t *len);
17
18 #define lbstr(a) LBstr(a, sizeof(a) - 1)
19 long LBstr(const char *key, size_t keylen);
20 long LBSTR(const char *key);
21
22 #define ibstr(a) IBstr(a, sizeof(a) - 1)
23 #define ibcstr(a) IBstr(a.Key, a.len)
24 int IBstr(const char *key, size_t keylen);
25 int IBSTR(const char *key);
26
27 #define havebstr(a) HaveBstr(a, sizeof(a) - 1)
28 int HaveBstr(const char *key, size_t keylen);
29 int HAVEBSTR(const char *key);
30
31 #define yesbstr(a) YesBstr(a, sizeof(a) - 1)
32 int YesBstr(const char *key, size_t keylen);
33 int YESBSTR(const char *key);
34
35 /* TODO: get rid of the non-const-typecast */
36 #define bstr(a) (char*) Bstr(a, sizeof(a) - 1)
37 const char *BSTR(const char *key);
38 const char *Bstr(const char *key, size_t keylen);
39 /* if you want to ease some parts by just parametring yourself... */
40 #define putbstr(a, b) PutBstr(a, sizeof(a) - 1, b)
41 void PutBstr(const char *key, long keylen, StrBuf *Value);
42
43 #define putlbstr(a, b) PutlBstr(a, sizeof(a) - 1, b)
44 void PutlBstr(const char *key, long keylen, long Value);
45