summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2008-09-05 15:38:53 +0000
committerSteven Barth <steven@midlink.org>2008-09-05 15:38:53 +0000
commit1358f954a78774ac989c06f973a17a40a781bad6 (patch)
treea9464057bb218a0a57e1b62a5ad6a3ba61b4af4a
parent94996dd63986a153b71e1aec2fd712c1d292781e (diff)
Fixed JSON-RPC API, added uvl API-Bindings
-rw-r--r--modules/rpc/luasrc/controller/rpc.lua46
-rw-r--r--modules/rpc/luasrc/controller/rpc/uvl.lua41
2 files changed, 65 insertions, 22 deletions
diff --git a/modules/rpc/luasrc/controller/rpc.lua b/modules/rpc/luasrc/controller/rpc.lua
index 1aeea69b4..2a99075d2 100644
--- a/modules/rpc/luasrc/controller/rpc.lua
+++ b/modules/rpc/luasrc/controller/rpc.lua
@@ -33,27 +33,17 @@ function index()
luci.http.status(403, "Forbidden")
end
- uci = entry({"rpc", "uci"}, call("rpc_uci"))
- uci.sysauth = "root"
- uci.sysauth_authenticator = authenticator
- uci.notemplate = true
+ local rpc = node("rpc")
+ rpc.sysauth = "root"
+ rpc.sysauth_authenticator = authenticator
+ rpc.notemplate = true
- fs = entry({"rpc", "fs"}, call("rpc_fs"))
- fs.sysauth = "root"
- fs.sysauth_authenticator = authenticator
- fs.notemplate = true
-
- sys = entry({"rpc", "sys"}, call("rpc_sys"))
- sys.sysauth = "root"
- sys.sysauth_authenticator = authenticator
- sys.notemplate = true
-
- ipkg = entry({"rpc", "ipkg"}, call("rpc_ipkg"))
- ipkg.sysauth = "root"
- ipkg.sysauth_authenticator = authenticator
- ipkg.notemplate = true
-
- entry({"rpc", "auth"}, call("rpc_auth")).notemplate = true
+ entry({"rpc", "uci"}, call("rpc_uci"))
+ entry({"rpc", "uvl"}, call("rpc_uvl"))
+ entry({"rpc", "fs"}, call("rpc_fs"))
+ entry({"rpc", "sys"}, call("rpc_sys"))
+ entry({"rpc", "ipkg"}, call("rpc_ipkg"))
+ entry({"rpc", "auth"}, call("rpc_auth")).sysauth = false
end
function rpc_auth()
@@ -63,8 +53,6 @@ function rpc_auth()
local sys = require "luci.sys"
local ltn12 = require "luci.ltn12"
- http.setfilehandler()
-
local loginstat
local server = {}
@@ -98,6 +86,20 @@ function rpc_uci()
ltn12.pump.all(jsonrpc.handle(uci, http.source()), http.write)
end
+function rpc_uvl()
+ if not pcall(require, "luci.uvl") then
+ luci.http.status(404, "Not Found")
+ return nil
+ end
+ local uvl = require "luci.controller.rpc.uvl"
+ local jsonrpc = require "luci.jsonrpc"
+ local http = require "luci.http"
+ local ltn12 = require "luci.ltn12"
+
+ http.prepare_content("application/json")
+ ltn12.pump.all(jsonrpc.handle(uvl, http.source()), http.write)
+end
+
function rpc_fs()
local util = require "luci.util"
local io = require "io"
diff --git a/modules/rpc/luasrc/controller/rpc/uvl.lua b/modules/rpc/luasrc/controller/rpc/uvl.lua
new file mode 100644
index 000000000..1099ce205
--- /dev/null
+++ b/modules/rpc/luasrc/controller/rpc/uvl.lua
@@ -0,0 +1,41 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+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
+
+$Id$
+]]--
+
+local uvl = require "luci.model.uvl".UVL()
+local table = require "table"
+
+module "luci.controller.rpc.uvl"
+_M, _PACKAGE, _NAME = nil, nil, nil
+
+
+function get_scheme(...)
+ return uvl:get_scheme(...)
+end
+
+function validate(...)
+ return uvl:validate(...)
+end
+
+function validate_config(...)
+ return uvl:validate_config(...)
+end
+
+function validate_section(...)
+ return uvl:validate_section(...)
+end
+
+function validate_option(...)
+ return uvl:validate_option(...)
+end \ No newline at end of file