00001 #ifndef SESSION_H_INCLUDED 00002 #define SESSION_H_INCLUDED 00003 00004 #include <xmlrpc-c/abyss.h> 00005 #include "abyss_date.h" 00006 #include "abyss_data.h" 00007 00008 typedef struct { 00009 uint8_t major; 00010 uint8_t minor; 00011 } httpVersion; 00012 00013 struct _TSession { 00014 abyss_bool validRequest; 00015 /* Client has sent, and server has recognized, a valid HTTP request. 00016 This is false when the session is new. If and when the server 00017 reads the request from the client and finds it to be valid HTTP, 00018 it becomes true. 00019 */ 00020 TRequestInfo request_info; 00021 uint32_t nbfileds; 00022 TList cookies; 00023 TList ranges; 00024 00025 uint16_t status; 00026 /* Response status from handler. Zero means handler has not 00027 set it. 00028 */ 00029 TString header; 00030 00031 abyss_bool serverDeniesKeepalive; 00032 /* Server doesn't want keepalive for this session, regardless of 00033 what happens in the session. E.g. because the connection has 00034 already been kept alive long enough. 00035 */ 00036 abyss_bool responseStarted; 00037 /* Handler has at least started the response (i.e. called 00038 ResponseWrite()) 00039 */ 00040 00041 struct _TConn * conn; 00042 00043 httpVersion version; 00044 00045 TTable request_headers; 00046 TTable response_headers; 00047 00048 TDate date; 00049 00050 abyss_bool chunkedwrite; 00051 abyss_bool chunkedwritemode; 00052 }; 00053 00054 00055 #endif
1.5.6