[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