X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=modules%2Frpc%2Fluasrc%2Fcontroller%2Frpc.lua;h=2a99075d2bd57dd2b89d2a11e06b068795e8a609;hp=b3ec32ce41a7cb753410ca52b5437b9b2f7b7e7a;hb=13579a4e211de5220c653fb97c211d6ef43dfa27;hpb=a0650b4ca96a184887369e04bc4793579364aeef diff --git a/modules/rpc/luasrc/controller/rpc.lua b/modules/rpc/luasrc/controller/rpc.lua index b3ec32ce4..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 - if pcall(require, "luci.model.uci") then - uci = entry({"rpc", "uci"}, call("rpc_uci")) - uci.sysauth = "root" - uci.sysauth_authenticator = authenticator - end - - fs = entry({"rpc", "fs"}, call("rpc_fs")) - fs.sysauth = "root" - fs.sysauth_authenticator = authenticator - - sys = entry({"rpc", "sys"}, call("rpc_sys")) - sys.sysauth = "root" - sys.sysauth_authenticator = authenticator - - if pcall(require, "luci.model.ipkg") then - fs = entry({"rpc", "ipkg"}, call("rpc_ipkg")) - fs.sysauth = "root" - fs.sysauth_authenticator = authenticator - end + local rpc = node("rpc") + rpc.sysauth = "root" + rpc.sysauth_authenticator = authenticator + rpc.notemplate = true - uci = entry({"rpc", "auth"}, call("rpc_auth")) + 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 = {} @@ -85,6 +73,10 @@ function rpc_auth() end function rpc_uci() + if not pcall(require, "luci.model.uci") then + luci.http.status(404, "Not Found") + return nil + end local uci = require "luci.controller.rpc.uci" local jsonrpc = require "luci.jsonrpc" local http = require "luci.http" @@ -94,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" @@ -145,6 +151,10 @@ function rpc_sys() end function rpc_ipkg() + if not pcall(require, "luci.model.ipkg") then + luci.http.status(404, "Not Found") + return nil + end local ipkg = require "luci.model.ipkg" local jsonrpc = require "luci.jsonrpc" local http = require "luci.http"