X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=libs%2Fhttp%2Fluasrc%2Fhttp%2Fprotocol.lua;h=93851fb05d4c0bae05607d75054d9cd08dd4ed6b;hp=205869a2d8a4f6942c7525155b3e193b7cbe3d21;hb=d7697624c4953898e0e3b60ac72c0ba777c47a2b;hpb=7a4aa85dd64f72b9edcbf9310d0d95e59960d84e diff --git a/libs/http/luasrc/http/protocol.lua b/libs/http/luasrc/http/protocol.lua index 205869a2d..93851fb05 100644 --- a/libs/http/luasrc/http/protocol.lua +++ b/libs/http/luasrc/http/protocol.lua @@ -15,8 +15,7 @@ $Id$ module("luci.http.protocol", package.seeall) -require("ltn12") -require("luci.http.protocol.filter") +local ltn12 = require("luci.ltn12") HTTP_MAX_CONTENT = 1024*4 -- 4 kB maximum content size HTTP_URLENC_MAXKEYLEN = 1024 -- maximum allowd size of urlencoded parameter names @@ -31,7 +30,7 @@ function urldecode( str ) end if type(str) == "string" then - str = str:gsub( "+", " " ):gsub( "%%([a-fA-F0-9][a-fA-F0-9])", __chrdec ) + str = str:gsub( "%%([a-fA-F0-9][a-fA-F0-9])", __chrdec ) end return str @@ -84,7 +83,7 @@ function urlencode( str ) if type(str) == "string" then str = str:gsub( - "([^a-zA-Z0-9$_%-%.+!*'(),])", + "([^a-zA-Z0-9$_%-%.%+!*'(),])", __chrenc ) end @@ -160,7 +159,7 @@ process_states['magic'] = function( msg, chunk, err ) end end end - + -- Can't handle it return nil, "Invalid HTTP message magic" end @@ -533,7 +532,7 @@ function header_source( sock ) local chunk, err, part = sock:receive("*l") -- Line too long - if chunk == nil then + if chunk == nil then if err ~= "timeout" then return nil, part and "Line exceeds maximum allowed length["..part.."]" @@ -779,11 +778,14 @@ end -- Status codes statusmsg = { [200] = "OK", + [301] = "Moved Permanently", + [304] = "Not Modified", [400] = "Bad Request", [403] = "Forbidden", [404] = "Not Found", [405] = "Method Not Allowed", [411] = "Length Required", + [412] = "Precondition Failed", [500] = "Internal Server Error", [503] = "Server Unavailable", }