1 #include <sys/stat.h>
2
3 #define STATE_READ_HEADER 1
4 #define STATE_PARSE_HEADER 2
5 #define STATE_WRITE_HEADER 3
6 #define STATE_WRITE_BODY 4
7 #define STATE_FINISHED 7
8
9 #define STATE_KEEPALIVE 8
10 #define STATE_CLOSE 9
11
12 #define MAX_HEADER 4096
13 #define BR_HEADER 512
14
15 struct REQUEST {
16 int fd; /* socket handle */
17 int state; /* what to to ??? */
18 time_t ping; /* last read/write (for timeouts) */
19 int keep_alive;
20
21 #ifdef HAVE_SOCKADDR_STORAGE
22 struct sockaddr_storage peer; /* client (log) */
23 #else
24 struct sockaddr peer;
25 #endif
26 char peerhost[65];
27 char peerserv[9];
28
29 /* request */
30 char hreq[MAX_HEADER+1]; /* request header */
31 int lreq; /* request length */
32 int hdata; /* data in hreq */
33 char type[16]; /* req type */
34 char uri[1024]; /* req uri */
35 char hostname[65]; /* hostname */
36 char path[1024]; /* file path */
37 int major,minor; /* http version */
38
39 /* response */
40 int status; /* status code (log) */
41 int bc; /* byte counter (log) */
42 char hres[MAX_HEADER+1]; /* response header */
43 int lres; /* header length */
44 char *mime; /* mime type */
45 char *body;
46 int lbody;
47 int free_the_mallocs;
48 int head_only;
49 off_t written;
50
51 /* linked list */
52 struct REQUEST *next;
53 };
54
55 /* --- alevtd.c ------------------------------------------------- */
56
57 extern int debug;
58 extern int tcp_port;
59 extern char *server_name;
60 extern int canonicalhost;
61 extern char server_host[];
62 extern time_t now,start;
63
64 extern struct vbi_state *vbi;
65
66 void xperror(int loglevel, char *txt, char *peerhost);
67 void xerror(int loglevel, char *txt, char *peerhost);
68
69 /* --- request.c ------------------------------------------------ */
70
71 void read_request(struct REQUEST *req, int pipelined);
72 void parse_request(struct REQUEST *req);
73
74 /* --- response.c ----------------------------------------------- */
75
76 void mkerror(struct REQUEST *req, int status, int ka);
77 void mkredirect(struct REQUEST *req);
78 void mkheader(struct REQUEST *req, int status, time_t mtime);
79 void write_request(struct REQUEST *req);
80
81 /* --- page.c ----------------------------------------------- */
82
83 void buildpage(struct REQUEST *req);
84
|
This page was automatically generated by the
LXR engine.
|