1 
2 #ifndef _SWILLINT_H
3 #define _SWILLINT_H
4 
5 #include "swill.h"
6 
7 #define SWILL_MAX_HEADER 8192
8 #define SWILL_MAX_QUERY  131072
9 #define SWILL_TIMEOUT    30
10 #define SWILL_DEFAULT    "index.html"
11 
12 #define String DOHString
13 #define List   DOHList
14 #define Hash   DOHHash
15 #define File   DOHFile
16 
17 #include <fcntl.h>
18 #include <stdlib.h>
19 #include <string.h>
20 #include <sys/time.h>
21 #include <sys/types.h>
22 #include <sys/socket.h>
23 #include <netinet/in.h>
24 #include <arpa/inet.h>
25 #include <errno.h>
26 #include <sys/stat.h>
27 #include <ctype.h>
28 #include <unistd.h>
29 #include <time.h>
30 #include <signal.h>
31 
32 #define assert(x)  if (!(x)) { fprintf(stderr,"%s:%d. Failed assertion." #x "\n", __FILE__, __LINE__); abort(); }
33 
34 
35 #include "doh.h"
36 
37 extern int     swill_read_rawrequest(int fd, String **request, String **excess);
38 extern String *swill_read_post(int fd, int length, String *excess);
39 extern Hash   *swill_parse_request(String *request);
40 extern Hash   *swill_parse_request_headers(String *request);
41 extern int     swill_parse_request_data(Hash *req);
42 
43 extern Hash   *swill_parse_headers(List *headers);
44 extern Hash   *swill_parse_query(String *qs);
45 extern void    swill_url_encode(DOH *in, DOH *out);
46 extern void    swill_url_decode(DOH *in, DOH *out);
47 extern void    swill_pre_encode(DOH *in, DOH *out);
48 extern Hash    *swill_mime_headers(File *in);
49 
50 extern void    swill_base64_decode(DOH *in, DOH *out);
51 extern char   *swill_guess_mimetype(const char *fn);
52 extern DOH    *swill_url_encoder(DOH *);
53 extern DOH    *swill_pre_encoder(DOH *);
54 
55 /* Predefined handler functions */
56 extern Hash *swill_handler_lookup(const String *uri);
57 extern void  swill_handler_reset(void);
58 extern int   SwillListHandlers(DOH *out, void *);
59 extern int   SwillFileNotFound(DOH *out, void *);
60 extern int   SwillAuthenticate(DOH *out, void *);
61 extern int   SwillUnsupported(DOH *out, void *);
62 extern int   SwillFormHandler(DOH *out, void *);
63 
64 /* Security */
65 extern int   swill_check_ip(const String *ip);
66 extern void  swill_security_init();
67 extern void  swill_security_reset();
68 extern void  swill_timeout(int seconds);
69 extern int   swill_checkuser();
70 
71 extern int   SwillInit;
72 extern int   SwillTimeout;
73 
74 
75 #endif
76 
77 
78 
79 
80 
81