From d70912a26af49db468af7ec88e9689b8176e0576 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 26 May 2005 01:06:32 +0000 Subject: r6981: first version of the builtin web server for Samba4 This includes an embedded server side scripting system called 'esp' (see http://www.appwebserver.org/products/esp/esp.html) and javascript based scripting language called 'esj' (see http://www.appwebserver.org/products/ejs/ejs.html) The justification for including this scripting language is that it should make it much easier to write a high quality web interface for Samba4. The scripting language can call into any Samba4 library code (so for example it will be able to make ldb and loadparm calls), plus it provides easy support for forms, cookies, sessions etc. There is still quite a bit more work to do on the web server, but there is enough here now for people to look at and comment. I will be committing some sample web pages that test esp functionality shortly. (This used to be commit 26f0ba92c0c565ac9e4cb5a079d795d4262497dd) --- source4/web_server/web_server.h | 49 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 source4/web_server/web_server.h (limited to 'source4/web_server/web_server.h') diff --git a/source4/web_server/web_server.h b/source4/web_server/web_server.h new file mode 100644 index 0000000000..0202c91ef7 --- /dev/null +++ b/source4/web_server/web_server.h @@ -0,0 +1,49 @@ +/* + 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 "request.h" +#include "smbd/process_model.h" + +/* + context of one open web connection +*/ +struct websrv_context { + struct stream_connection *conn; + struct { + 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; + } input; + struct { + DATA_BLOB content; + int fd; + unsigned nsent; + int response_code; + const char **headers; + } output; +}; -- cgit