* Fixed Makefile
[project/luci.git] / core / src / ffluci / sgi / webuci.lua
1 --[[
2 FFLuCI - SGI-Module for Haserl
3
4 Description:
5 Server Gateway Interface for Haserl
6
7 FileId:
8 $Id$
9
10 License:
11 Copyright 2008 Steven Barth <steven@midlink.org>
12
13 Licensed under the Apache License, Version 2.0 (the "License");
14 you may not use this file except in compliance with the License.
15 You may obtain a copy of the License at 
16
17         http://www.apache.org/licenses/LICENSE-2.0 
18
19 Unless required by applicable law or agreed to in writing, software
20 distributed under the License is distributed on an "AS IS" BASIS,
21 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22 See the License for the specific language governing permissions and
23 limitations under the License.
24
25 ]]--
26 module("ffluci.sgi.webuci", package.seeall)
27
28 -- HTTP interface
29
30 -- Returns a table of all COOKIE, GET and POST Parameters
31 function ffluci.http.formvalues(prefix)
32         return webuci.vars
33 end
34
35 -- Gets form value from key
36 function ffluci.http.formvalue(key, default)
37         return ffluci.http.formvalues()[key] or default
38 end
39
40 -- Gets a table of values with a certain prefix
41 function ffluci.http.formvaluetable(prefix)
42         local vals = {}
43         prefix = prefix and prefix .. "." or "."
44         
45         for k, v in pairs(ffluci.http.formvalues()) do
46                 if k:find(prefix, 1, true) == 1 then
47                         vals[k:sub(#prefix + 1)] = v
48                 end
49         end
50         
51         return vals
52 end
53
54
55 -- Returns the User's IP
56 function ffluci.http.get_remote_addr()
57         return os.getenv("REMOTE_ADDR")
58 end
59
60 -- Returns the script name
61 function ffluci.http.get_script_name()
62         return os.getenv("SCRIPT_NAME")
63 end
64
65
66 -- Asks the browser to redirect to "url"
67 function ffluci.http.redirect(url, qs)
68         if qs then
69                 url = url .. "?" .. qs
70         end
71         
72         ffluci.http.set_status(302, "Found")
73         print("Location: " .. url .. "\n")
74 end
75
76
77 -- Set Content-Type
78 function ffluci.http.set_content_type(type)
79         print("Content-Type: "..type.."\n")
80 end
81
82 -- Sets HTTP-Status-Header
83 function ffluci.http.set_status(code, message)
84         print("Status: " .. tostring(code) .. " " .. message)
85 end