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