aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2012-04-26 15:05:05 +0100
committerMatthew Wild <mwild1@gmail.com>2012-04-26 15:05:05 +0100
commite3433dca1d7218f37066a50908cd46744914c70e (patch)
treeef394010b32604fac0bd2a283930fd42783bc33b /net
parent898ec7a5cfb4dd5a0a589725e627966a8410e2ce (diff)
downloadprosody-e3433dca1d7218f37066a50908cd46744914c70e.tar.gz
prosody-e3433dca1d7218f37066a50908cd46744914c70e.zip
net.server.http: Parse absolute URIs in requests (thanks Maranda)
Diffstat (limited to 'net')
-rw-r--r--net/http/server.lua4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/http/server.lua b/net/http/server.lua
index d6c3a03a..4f9e1463 100644
--- a/net/http/server.lua
+++ b/net/http/server.lua
@@ -1,6 +1,7 @@
local t_insert, t_remove, t_concat = table.insert, table.remove, table.concat;
local parser_new = require "net.http.parser".new;
+local url_parse = require "socket.url".parse;
local events = require "util.events".new();
local addserver = require "net.server".addserver;
local log = require "util.logger".init("http.server");
@@ -101,6 +102,9 @@ function listener.onconnect(conn)
local function success_cb(request)
--log("debug", "success_cb: %s", request.path);
request.secure = secure;
+ local parsed_dest = url_parse(request.path);
+ request.url = parsed_dest;
+ request.path = parsed_dest.path;
t_insert(pending, request);
if not waiting then
process_next();