diff options
author | Matthew Wild <mwild1@gmail.com> | 2012-04-26 15:05:05 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2012-04-26 15:05:05 +0100 |
commit | e3433dca1d7218f37066a50908cd46744914c70e (patch) | |
tree | ef394010b32604fac0bd2a283930fd42783bc33b /net/http/server.lua | |
parent | 898ec7a5cfb4dd5a0a589725e627966a8410e2ce (diff) | |
download | prosody-e3433dca1d7218f37066a50908cd46744914c70e.tar.gz prosody-e3433dca1d7218f37066a50908cd46744914c70e.zip |
net.server.http: Parse absolute URIs in requests (thanks Maranda)
Diffstat (limited to 'net/http/server.lua')
-rw-r--r-- | net/http/server.lua | 4 |
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(); |