2005-05-26 05:06:32 +04:00
/*
Unix SMB / CIFS implementation .
Copyright ( C ) Andrew Tridgell 2005
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
2007-07-10 06:07:03 +04:00
the Free Software Foundation ; either version 3 of the License , or
2005-05-26 05:06:32 +04:00
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
2007-07-10 06:07:03 +04:00
along with this program . If not , see < http : //www.gnu.org/licenses/>.
2005-05-26 05:06:32 +04:00
*/
# include "smbd/process_model.h"
/*
context of one open web connection
*/
struct websrv_context {
2005-05-27 04:29:58 +04:00
struct task_server * task ;
2005-05-26 05:06:32 +04:00
struct stream_connection * conn ;
struct {
2007-08-27 22:10:19 +04:00
bool tls_detect ;
bool tls_first_char ;
2005-05-27 15:57:14 +04:00
uint8_t first_byte ;
2005-05-26 05:06:32 +04:00
DATA_BLOB partial ;
2007-08-27 22:10:19 +04:00
bool end_of_headers ;
2005-05-26 05:06:32 +04:00
char * url ;
unsigned content_length ;
2007-08-27 22:10:19 +04:00
bool post_request ;
2005-05-26 05:06:32 +04:00
const char * content_type ;
const char * query_string ;
const char * user_agent ;
const char * referer ;
const char * host ;
const char * accept_encoding ;
2005-05-27 04:29:58 +04:00
const char * accept_language ;
const char * accept_charset ;
const char * cookie ;
const char * session_key ;
2005-05-26 05:06:32 +04:00
} input ;
struct {
2007-08-27 22:10:19 +04:00
bool output_pending ;
2005-05-26 05:06:32 +04:00
DATA_BLOB content ;
int fd ;
unsigned nsent ;
int response_code ;
const char * * headers ;
} output ;
2005-05-27 04:29:58 +04:00
struct session_data * session ;
2005-05-26 05:06:32 +04:00
} ;
2005-05-27 04:29:58 +04:00
2005-05-27 15:57:14 +04:00
/*
context for long term storage in the web server , to support session [ ]
and application [ ] data . Stored in task - > private .
*/
struct esp_data {
struct session_data {
struct session_data * next , * prev ;
struct esp_data * edata ;
const char * id ;
struct MprVar * data ;
struct timed_event * te ;
int lifetime ;
} * sessions ;
struct MprVar * application_data ;
2005-06-19 08:21:45 +04:00
struct tls_params * tls_params ;
2005-05-27 15:57:14 +04:00
} ;
2006-03-14 18:03:25 +03:00
# include "web_server/proto.h"