[SCM] Samba Shared Repository - branch master updated

Jelmer Vernooij jelmer at samba.org
Sun Jan 16 17:28:02 MST 2011


The branch, master has been updated
       via  e665fce web_server: Display trivial placeholder page if SWAT could not be found.
       via  7982f68 web_server: Fix initialization.
       via  04abf2c web_server: Avoid references to swat. Load samba.web_server instead.
       via  2f7d4a4 param: Load web service by default.
      from  93d9641 s4:dsdb_find_nc_root - fix it up to let the provisioning work correctly

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit e665fce31c29f502dc6a21559c4766ab627fb35a
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Jan 17 00:43:04 2011 +0100

    web_server: Display trivial placeholder page if SWAT could not be found.
    
    Autobuild-User: Jelmer Vernooij <jelmer at samba.org>
    Autobuild-Date: Mon Jan 17 01:27:10 CET 2011 on sn-devel-104

commit 7982f683ee4ae3bb693745c895b1b11586bf32d0
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Jan 17 00:30:49 2011 +0100

    web_server: Fix initialization.

commit 04abf2cc8dfda2a969cd2c1257d5d5a41979a0d2
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Jan 17 00:25:42 2011 +0100

    web_server: Avoid references to swat. Load samba.web_server instead.

commit 2f7d4a41904d0bcc54da3462f20a3a2f18f6fc40
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Jan 17 00:25:29 2011 +0100

    param: Load web service by default.

-----------------------------------------------------------------------

Summary of changes:
 source4/param/loadparm.c                           |    2 +-
 .../python/samba/web_server}/__init__.py           |   31 ++++++++++++++------
 source4/web_server/web_server.c                    |    9 ++++--
 source4/web_server/wsgi.c                          |   13 +++++---
 4 files changed, 37 insertions(+), 18 deletions(-)
 rename source4/{web_server/swat => scripting/python/samba/web_server}/__init__.py (66%)


Changeset truncated at 500 lines:

diff --git a/source4/param/loadparm.c b/source4/param/loadparm.c
index 531789e..8e487fc 100644
--- a/source4/param/loadparm.c
+++ b/source4/param/loadparm.c
@@ -2395,7 +2395,7 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
 	lpcfg_do_global_parameter(lp_ctx, "max connections", "-1");
 
 	lpcfg_do_global_parameter(lp_ctx, "dcerpc endpoint servers", "epmapper srvsvc wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi winreg dssetup unixinfo browser eventlog6");
-	lpcfg_do_global_parameter(lp_ctx, "server services", "smb rpc nbt wrepl ldap cldap kdc drepl winbind ntp_signd kcc dnsupdate");
+	lpcfg_do_global_parameter(lp_ctx, "server services", "smb rpc nbt wrepl ldap cldap kdc drepl winbind ntp_signd kcc dnsupdate web");
 	lpcfg_do_global_parameter(lp_ctx, "ntptr providor", "simple_ldb");
 	/* the winbind method for domain controllers is for both RODC
 	   auth forwarding and for trusted domains */
diff --git a/source4/web_server/swat/__init__.py b/source4/scripting/python/samba/web_server/__init__.py
similarity index 66%
rename from source4/web_server/swat/__init__.py
rename to source4/scripting/python/samba/web_server/__init__.py
index ea28e94..da528f4 100644
--- a/source4/web_server/swat/__init__.py
+++ b/source4/scripting/python/samba/web_server/__init__.py
@@ -5,32 +5,45 @@
 # Copyright © Jelmer Vernooij <jelmer at samba.org> 2008
 #
 # Implementation of SWAT that uses WSGI
-#   
+#
 # 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 3 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, see <http://www.gnu.org/licenses/>.
 #
 
-def __call__(environ, start_response):
+
+
+def render_placeholder(environ, start_response):
     status = '200 OK'
     response_headers = [('Content-type','text/html')]
     start_response(status, response_headers)
-    yield '<table>\n'
 
-    for key, value in environ.items():
-        if isinstance(value, str):
-            yield '\t<tr><td><b>%s</b></td><td>%s</td></tr>\n' % (key, value)
+    yield "<!doctype html>\n"
+    yield "<html>\n"
+    yield "  <title>The Samba web service</title>\n"
+    yield "</html>\n"
+
+    yield "<body>\n"
+    yield "<p>Welcome to this Samba web server.</p>\n"
+    yield "<p>This page is a simple placeholder. You probably want to install "
+    yield "SWAT. More information can be found "
+    yield "<a href='http://wiki.samba.org/index.php/SWAT'>on the wiki</a>.</p>"
+    yield "</p>\n"
+    yield "</body>\n"
+    yield "</html>\n"
+
+
+__call__ = render_placeholder
 
-    yield '</table>\n'
 
 if __name__ == '__main__':
     from wsgiref import simple_server
diff --git a/source4/web_server/web_server.c b/source4/web_server/web_server.c
index 8e81685..b2f6f5f 100644
--- a/source4/web_server/web_server.c
+++ b/source4/web_server/web_server.c
@@ -310,6 +310,8 @@ static void websrv_task_init(struct task_server *task)
 	wdata = talloc_zero(task, struct web_server_data);
 	if (wdata == NULL) goto failed;
 
+	task->private_data = wdata;
+
 	if (lpcfg_interfaces(task->lp_ctx) && lpcfg_bind_interfaces_only(task->lp_ctx)) {
 		int num_interfaces;
 		int i;
@@ -326,7 +328,7 @@ static void websrv_task_init(struct task_server *task)
 						     &web_stream_ops, 
 						     "ipv4", address, 
 						     &port, lpcfg_socket_options(task->lp_ctx),
-						     wdata);
+						     task);
 			if (!NT_STATUS_IS_OK(status)) goto failed;
 		}
 
@@ -337,15 +339,16 @@ static void websrv_task_init(struct task_server *task)
 					     &web_stream_ops,
 					     "ipv4", lpcfg_socket_address(task->lp_ctx),
 					     &port, lpcfg_socket_options(task->lp_ctx),
-					     wdata);
+					     task);
 		if (!NT_STATUS_IS_OK(status)) goto failed;
 	}
-	
+
 	wdata->tls_params = tls_initialise(wdata, task->lp_ctx);
 	if (wdata->tls_params == NULL) goto failed;
 
 	if (!wsgi_initialize(wdata)) goto failed;
 
+
 	return;
 
 failed:
diff --git a/source4/web_server/wsgi.c b/source4/web_server/wsgi.c
index 1c105d0..2f47af2 100644
--- a/source4/web_server/wsgi.c
+++ b/source4/web_server/wsgi.c
@@ -26,6 +26,7 @@
 #include "../lib/util/dlinklist.h"
 #include "lib/tls/tls.h"
 #include "lib/tsocket/tsocket.h"
+#include "scripting/python/modules.h"
 
 /* There's no Py_ssize_t in 2.4, apparently */
 #if PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION < 5
@@ -380,10 +381,12 @@ static void wsgi_process_http_input(struct web_server_data *wdata,
 
 bool wsgi_initialize(struct web_server_data *wdata)
 {
-	PyObject *py_swat;
+	PyObject *py_web_server;
 
 	Py_Initialize();
 
+	py_update_path("bin"); /* FIXME: Can't assume this is always the case */
+
 	if (PyType_Ready(&web_request_Type) < 0)
 		return false;
 
@@ -394,11 +397,11 @@ bool wsgi_initialize(struct web_server_data *wdata)
 		return false;
 
 	wdata->http_process_input = wsgi_process_http_input;
-	py_swat = PyImport_Import(PyString_FromString("swat"));
-	if (py_swat == NULL) {
-		DEBUG(0, ("Unable to find SWAT\n"));
+	py_web_server = PyImport_ImportModule("samba.web_server");
+	if (py_web_server == NULL) {
+		DEBUG(0, ("Unable to find web server\n"));
 		return false;
 	}
-	wdata->private_data = py_swat;
+	wdata->private_data = py_web_server;
 	return true;
 }


-- 
Samba Shared Repository


More information about the samba-cvs mailing list