X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fuhttpd.git;a=blobdiff_plain;f=lua.c;h=3efe22bd9e21a0d4d924698937f39243b18566d4;hp=aa27ec0837f40e2e9c714acdb02fb51562000fb8;hb=3fd58e9b6da7d9e1a4710dbeefc2d289baea09fb;hpb=aec143997b9aba65f7ea702d7cd42b553afe335f diff --git a/lua.c b/lua.c index aa27ec0..3efe22b 100644 --- a/lua.c +++ b/lua.c @@ -222,6 +222,10 @@ static void lua_main(struct client *cl, struct path_info *pi, char *url) pi->query = str + 1; path_len = str - url; } + + if (prefix_len > 0 && conf.lua_prefix[prefix_len - 1] == '/') + prefix_len--; + if (path_len > prefix_len) { lua_pushlstring(L, url + prefix_len, path_len - prefix_len); @@ -255,7 +259,7 @@ static void lua_main(struct client *cl, struct path_info *pi, char *url) printf("Status: 500 Internal Server Error\r\n\r\n" "Unable to launch the requested Lua program:\n" - " %s: %s\n", pi->phys, strerror(errno)); + " %s: %s\n", pi->phys, error); } exit(0); @@ -295,6 +299,6 @@ static int lua_plugin_init(const struct uhttpd_ops *o, struct config *c) return 0; } -const struct uhttpd_plugin uhttpd_plugin = { +struct uhttpd_plugin uhttpd_plugin = { .init = lua_plugin_init, };