blob: be514bc668b33aa6782af2c9c32fb0d47a7d1485 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#include "libhttpc.h"
#include <string.h>
#define METHOD(X) LibHTTPC_Method_##X
#define S_OPTIONS "OPTIONS"
#define S_GET "GET"
#define S_HEAD "HEAD"
#define S_POST "POST"
#define S_PUT "PUT"
#define S_DELETE "DELETE"
#define S_TRACE "TRACE"
#define S_CONNECT "CONNECT"
#define CHECK() \
do \
{ \
CASE(OPTIONS); \
CASE(GET); \
CASE(HEAD); \
CASE(POST); \
CASE(PUT); \
CASE(DELETE); \
CASE(TRACE); \
CASE(CONNECT); \
} while(0)
enum LibHTTPC_Method LibHTTPC_loadMethod(const char *method)
{
#define CASE(X) if (!strcmp((S_##X), method)) return METHOD(X)
CHECK();
#undef CASE
return METHOD(EXTENSION_METHOD);
}
const char *LibHTTPC_dumpMethod(enum LibHTTPC_Method method)
{
switch (method)
{
#define CASE(X) case METHOD(X): return S_##X
CHECK();
#undef CASE
}
return NULL;
}
|