root/source4/web_server/web_server.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* 
   2    Unix SMB/CIFS implementation.
   3    
   4    Copyright (C) Andrew Tridgell              2005
   5    
   6    This program is free software; you can redistribute it and/or modify
   7    it under the terms of the GNU General Public License as published by
   8    the Free Software Foundation; either version 3 of the License, or
   9    (at your option) any later version.
  10    
  11    This program is distributed in the hope that it will be useful,
  12    but WITHOUT ANY WARRANTY; without even the implied warranty of
  13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14    GNU General Public License for more details.
  15    
  16    You should have received a copy of the GNU General Public License
  17    along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18 */
  19 
  20 #include "smbd/process_model.h"
  21 
  22 struct websrv_context;
  23 
  24 struct web_server_data {
  25         struct tls_params *tls_params;
  26         void (*http_process_input)(struct web_server_data *wdata, 
  27                                    struct websrv_context *web);
  28         void *private_data;
  29 };
  30 
  31 struct http_header {
  32         char *name;
  33         char *value;
  34         struct http_header *prev, *next;
  35 };
  36 
  37 /*
  38   context of one open web connection
  39 */
  40 struct websrv_context {
  41         struct task_server *task;
  42         struct stream_connection *conn;
  43         struct websrv_request_input {
  44                 bool tls_detect;
  45                 bool tls_first_char;
  46                 uint8_t first_byte;
  47                 DATA_BLOB partial;
  48                 bool end_of_headers;
  49                 char *url;
  50                 unsigned content_length;
  51                 bool post_request;
  52                 struct http_header *headers;
  53         } input;
  54         struct websrv_request_output {
  55                 bool output_pending;
  56                 DATA_BLOB content;
  57                 bool headers_sent;
  58                 unsigned nsent;
  59         } output;
  60         struct session_data *session;
  61 };
  62 
  63 
  64 #include "web_server/proto.h"
  65 

/* [<][>][^][v][top][bottom][index][help] */