Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  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.