diff options
author | Stefan Metzmacher <metze@samba.org> | 2010-04-27 16:36:26 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2010-04-27 17:05:30 +0200 |
commit | 9a1a00199c2603376eacfdba7e7d0d55bc64f405 (patch) | |
tree | 916e6b72300b8f85360a8b4c661ef8ea5bc7ef12 /source4/web_server | |
parent | 41d970718a105a1321cf80bc1004b51b7af7cc69 (diff) | |
download | samba-9a1a00199c2603376eacfdba7e7d0d55bc64f405.tar.gz samba-9a1a00199c2603376eacfdba7e7d0d55bc64f405.tar.bz2 samba-9a1a00199c2603376eacfdba7e7d0d55bc64f405.zip |
s4:web_server: use tsocket_address functions to get the local ip and port
metze
Diffstat (limited to 'source4/web_server')
-rw-r--r-- | source4/web_server/wsgi.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/source4/web_server/wsgi.c b/source4/web_server/wsgi.c index 9b5e38400c..7ee70e1107 100644 --- a/source4/web_server/wsgi.c +++ b/source4/web_server/wsgi.c @@ -26,6 +26,7 @@ #include "../lib/util/dlinklist.h" #include "../lib/util/data_blob.h" #include "lib/tls/tls.h" +#include "lib/tsocket/tsocket.h" typedef struct { PyObject_HEAD @@ -320,18 +321,23 @@ static void wsgi_process_http_input(struct web_server_data *wdata, { PyObject *py_environ, *result, *item, *iter; PyObject *request_handler = (PyObject *)wdata->private_data; - struct socket_address *socket_address; - + struct tsocket_address *my_address = web->conn->local_address; + const char *addr = "0.0.0.0"; + uint16_t port = 0; web_request_Object *py_web = PyObject_New(web_request_Object, &web_request_Type); py_web->web = web; - socket_address = socket_get_my_addr(web->conn->socket, web); + if (tsocket_address_is_inet(my_address, "ip")) { + addr = tsocket_address_inet_addr_string(my_address, wdata); + port = tsocket_address_inet_port(my_address); + } + py_environ = create_environ(tls_enabled(web->conn->socket), web->input.content_length, web->input.headers, web->input.post_request?"POST":"GET", - socket_address->addr, - socket_address->port, + addr, + port, Py_InputHttpStream(web), web->input.url ); |