1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-14 19:24:43 +03:00
Andrew Bartlett 742c110cd6 r15400: Move the TLS code behind the socket interface.
This reduces caller complexity, because the TLS code is now called
just like any other socket.  (A new socket context is returned by the
tls_init_server and tls_init_client routines).

When TLS is not available, the original socket is returned.

Andrew Bartlett
(This used to be commit 09b2f30dfa7a640f5187b4933204e9680be61497)
2007-10-10 14:05:32 -05:00

80 lines
2.0 KiB
C

/*
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
the Free Software Foundation; either version 2 of the License, or
(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
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "smbd/process_model.h"
/*
context of one open web connection
*/
struct websrv_context {
struct task_server *task;
struct stream_connection *conn;
struct {
BOOL tls_detect;
BOOL tls_first_char;
uint8_t first_byte;
DATA_BLOB partial;
BOOL end_of_headers;
char *url;
unsigned content_length;
BOOL post_request;
const char *content_type;
const char *query_string;
const char *user_agent;
const char *referer;
const char *host;
const char *accept_encoding;
const char *accept_language;
const char *accept_charset;
const char *cookie;
const char *session_key;
} input;
struct {
BOOL output_pending;
DATA_BLOB content;
int fd;
unsigned nsent;
int response_code;
const char **headers;
} output;
struct session_data *session;
};
/*
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;
struct tls_params *tls_params;
};
#include "web_server/proto.h"