diff options
author | Steven Barth <steven@midlink.org> | 2008-05-05 20:15:51 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-05-05 20:15:51 +0000 |
commit | 6c7f800a5625785207990d0670ec33fe44c7e4fa (patch) | |
tree | 681e61bcea0858114e33c505732129508020dfad /core | |
parent | 1b65106ac8bab5bb840b3d282d416e160882dea4 (diff) |
* Added initial SGI for webuci
Diffstat (limited to 'core')
-rw-r--r-- | core/src/ffluci/http.lua | 2 | ||||
-rw-r--r-- | core/src/ffluci/sgi/haserl.lua | 1 | ||||
-rw-r--r-- | core/src/ffluci/sgi/webuci.lua | 85 |
3 files changed, 87 insertions, 1 deletions
diff --git a/core/src/ffluci/http.lua b/core/src/ffluci/http.lua index a2c524ed6..f4ba57094 100644 --- a/core/src/ffluci/http.lua +++ b/core/src/ffluci/http.lua @@ -31,4 +31,6 @@ module("ffluci.http", package.seeall) if ENV and ENV.HASERLVER then require("ffluci.sgi.haserl") +elseif webuci then + require("ffluci.sgi.webuci") end
\ No newline at end of file diff --git a/core/src/ffluci/sgi/haserl.lua b/core/src/ffluci/sgi/haserl.lua index 75b9bf108..041cffc70 100644 --- a/core/src/ffluci/sgi/haserl.lua +++ b/core/src/ffluci/sgi/haserl.lua @@ -27,7 +27,6 @@ module("ffluci.sgi.haserl", package.seeall) ENV = ENV or {} FORM = FORM or {} -require("ffluci.util") -- HTTP interface diff --git a/core/src/ffluci/sgi/webuci.lua b/core/src/ffluci/sgi/webuci.lua new file mode 100644 index 000000000..f97b24452 --- /dev/null +++ b/core/src/ffluci/sgi/webuci.lua @@ -0,0 +1,85 @@ +--[[ +FFLuCI - SGI-Module for Haserl + +Description: +Server Gateway Interface for Haserl + +FileId: +$Id: haserl.lua 2004 2008-05-05 19:56:14Z Cyrus $ + +License: +Copyright 2008 Steven Barth <steven@midlink.org> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +]]-- +module("ffluci.sgi.webuci", package.seeall) + +-- HTTP interface + +-- Returns a table of all COOKIE, GET and POST Parameters +function ffluci.http.formvalues(prefix) + return webuci.vars +end + +-- Gets form value from key +function ffluci.http.formvalue(key, default) + return ffluci.http.formvalues()[key] or default +end + +-- Gets a table of values with a certain prefix +function ffluci.http.formvaluetable(prefix) + local vals = {} + prefix = prefix and prefix .. "." or "." + + for k, v in pairs(ffluci.http.formvalues()) do + if k:find(prefix, 1, true) == 1 then + vals[k:sub(#prefix + 1)] = v + end + end + + return vals +end + + +-- Returns the User's IP +function ffluci.http.get_remote_addr() + return os.getenv("REMOTE_ADDR") +end + +-- Returns the script name +function ffluci.http.get_script_name() + return os.getenv("SCRIPT_NAME") +end + + +-- Asks the browser to redirect to "url" +function ffluci.http.redirect(url, qs) + if qs then + url = url .. "?" .. qs + end + + ffluci.http.set_status(302, "Found") + print("Location: " .. url .. "\n") +end + + +-- Set Content-Type +function ffluci.http.set_content_type(type) + print("Content-Type: "..type.."\n") +end + +-- Sets HTTP-Status-Header +function ffluci.http.set_status(code, message) + print("Status: " .. tostring(code) .. " " .. message) +end |