diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2009-02-09 13:17:26 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2009-02-09 13:17:26 +0000 |
commit | b5026e65c0334f9d8afddb0a3ca1797ef2baff5c (patch) | |
tree | 11bbfe5c05510a9301bfb8eedfe8fc68b9b2687b | |
parent | 8dbb8a0ad386fd890f688109c44df0429c2af597 (diff) |
libs/web: don't send Status: 500 in error500() if header is already sent
modules/admin-core: include template header only once
-rw-r--r-- | libs/web/luasrc/dispatcher.lua | 16 | ||||
-rw-r--r-- | modules/admin-core/luasrc/view/header.htm | 8 |
2 files changed, 16 insertions, 8 deletions
diff --git a/libs/web/luasrc/dispatcher.lua b/libs/web/luasrc/dispatcher.lua index 5110209aa..538017dc7 100644 --- a/libs/web/luasrc/dispatcher.lua +++ b/libs/web/luasrc/dispatcher.lua @@ -74,12 +74,14 @@ end -- @param message Custom error message (optional)# -- @return false function error500(message) - luci.http.status(500, "Internal Server Error") - - require("luci.template") - if not luci.util.copcall(luci.template.render, "error500", {message=message}) then - luci.http.prepare_content("text/plain") - luci.http.write(message) + if not context.template_header_sent then + luci.http.status(500, "Internal Server Error") + else + require("luci.template") + if not luci.util.copcall(luci.template.render, "error500", {message=message}) then + luci.http.prepare_content("text/plain") + luci.http.write(message) + end end return false end @@ -589,7 +591,7 @@ end local function _call(self, ...) - if #self.argv > 0 then + if #self.argv > 0 then return getfenv()[self.name](unpack(self.argv), ...) else return getfenv()[self.name](...) diff --git a/modules/admin-core/luasrc/view/header.htm b/modules/admin-core/luasrc/view/header.htm index 6625e46b0..77018b117 100644 --- a/modules/admin-core/luasrc/view/header.htm +++ b/modules/admin-core/luasrc/view/header.htm @@ -12,4 +12,10 @@ You may obtain a copy of the License at $Id$ -%> -<% include("themes/" .. theme .. "/header") %>
\ No newline at end of file + +<% + if not luci.dispatcher.context.template_header_sent then + include("themes/" .. theme .. "/header") + luci.dispatcher.context.template_header_sent = true + end +%> |