usbmodeswitch: Updated to v.1.2.6 from shibby's branch.
[tomato.git] / release / src / router / httpd / httpd.h
blob2421c554e2e8bcf40972936be9c66a7cfc0a3840
1 #ifndef __HTTPD_H__
2 #define __HTTPD_H__
4 extern struct sockaddr_storage clientsai;
5 extern int post;
6 extern char *user_agent;
8 struct mime_handler {
9 const char *pattern;
10 const char *mime_type;
11 int cache;
12 void (*input)(char *path, int len, char *boundary);
13 void (*output)(char *path);
14 int auth;
16 extern const struct mime_handler mime_handlers[];
21 extern void do_file(char *path);
24 // basic http i/o
26 typedef enum {
27 WOF_NONE,
28 WOF_JAVASCRIPT,
29 WOF_HTML
30 } wofilter_t;
32 extern int web_getline(char *buffer, int max);
33 extern int web_putc(char c);
34 extern void web_puts(const char *buffer);
35 extern void web_putj(const char *buffer);
36 extern void web_puth(const char *buffer);
37 extern int web_write(const char *buffer, int len);
38 extern int web_read(void *buffer, int len);
39 extern int web_read_x(void *b, int len);
40 extern int web_eat(int max);
41 extern int web_flush(void);
42 extern int web_open(void);
43 extern int web_close(void);
45 extern int web_pipecmd(const char *cmd, wofilter_t wof);
46 extern int web_putfile(const char *fname, wofilter_t wof);
48 extern int _web_printf(wofilter_t wof, const char *format, ...);
49 #define web_printf(args...) _web_printf(WOF_NONE, ##args)
50 #define web_printfj(args...) _web_printf(WOF_JAVASCRIPT, ##args)
51 #define web_printfh(args...) _web_printf(WOF_HTML, ##args)
54 // http header handling
56 extern const char mime_html[];
57 extern const char mime_plain[];
58 extern const char mime_javascript[];
59 extern const char mime_octetstream[];
60 extern const char mime_binary[];
61 extern int header_sent;
63 extern void send_header(int status, const char *header, const char *mime, int cache);
64 extern void send_error(int status, const char *header, const char *text);
65 extern void redirect(const char *path);
66 extern int skip_header(int *len);
69 // cgi handling
71 extern void webcgi_init(char *query);
72 extern char *webcgi_get(const char *name);
73 extern void webcgi_set(char *name, char *value);
75 #define webcgi_safeget(key, default) (webcgi_get(key) ? : (default))
78 // asp file handing
80 typedef struct {
81 const char *name;
82 void (*exec)(int argc, char **argv);
83 } aspapi_t;
85 extern const aspapi_t aspapi[];
87 extern int parse_asp(const char *path);
91 extern void check_id(const char *url);
93 #endif