summaryrefslogtreecommitdiffhomepage
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/luci-lib-ip/src/ip.c20
-rw-r--r--libs/luci-lib-jsonc/src/jsonc.c8
-rw-r--r--libs/luci-lib-rpcc/Makefile14
-rw-r--r--libs/luci-lib-rpcc/luasrc/rpcc.lua59
-rw-r--r--libs/luci-lib-rpcc/luasrc/rpcc.luadoc36
-rw-r--r--libs/luci-lib-rpcc/luasrc/rpcc/ruci.lua48
-rw-r--r--libs/luci-lib-rpcc/luasrc/rpcc/ruci.luadoc16
7 files changed, 15 insertions, 186 deletions
diff --git a/libs/luci-lib-ip/src/ip.c b/libs/luci-lib-ip/src/ip.c
index 9b157da265..a624f3f83f 100644
--- a/libs/luci-lib-ip/src/ip.c
+++ b/libs/luci-lib-ip/src/ip.c
@@ -406,28 +406,28 @@ static int _cidr_new(lua_State *L, int index, int family, bool mask)
if (lua_type(L, index) == LUA_TNUMBER)
{
- n = htonl(lua_tointeger(L, index));
+ n = lua_tointeger(L, index);
if (family == AF_INET6)
{
cidr.family = AF_INET6;
- cidr.addr.v6.s6_addr[12] = n;
- cidr.addr.v6.s6_addr[13] = (n >> 8);
- cidr.addr.v6.s6_addr[14] = (n >> 16);
- cidr.addr.v6.s6_addr[15] = (n >> 24);
+ cidr.addr.v6.s6_addr[12] = n / 0x1000000;
+ cidr.addr.v6.s6_addr[13] = n % 0x1000000 / 0x10000;
+ cidr.addr.v6.s6_addr[14] = n % 0x10000 / 0x100;
+ cidr.addr.v6.s6_addr[15] = n % 0x100;
}
else if (family == AF_INET)
{
cidr.family = AF_INET;
- cidr.addr.v4.s_addr = n;
+ cidr.addr.v4.s_addr = htonl(n);
}
else
{
cidr.family = AF_PACKET;
- cidr.addr.mac.ether_addr_octet[2] = n;
- cidr.addr.mac.ether_addr_octet[3] = (n >> 8);
- cidr.addr.mac.ether_addr_octet[4] = (n >> 16);
- cidr.addr.mac.ether_addr_octet[5] = (n >> 24);
+ cidr.addr.mac.ether_addr_octet[2] = n / 0x1000000;
+ cidr.addr.mac.ether_addr_octet[3] = n % 0x1000000 / 0x10000;
+ cidr.addr.mac.ether_addr_octet[4] = n % 0x10000 / 0x100;
+ cidr.addr.mac.ether_addr_octet[5] = n % 0x100;
}
cidr.bits = AF_BITS(cidr.family);
diff --git a/libs/luci-lib-jsonc/src/jsonc.c b/libs/luci-lib-jsonc/src/jsonc.c
index 74839dd4f5..5abb738f5f 100644
--- a/libs/luci-lib-jsonc/src/jsonc.c
+++ b/libs/luci-lib-jsonc/src/jsonc.c
@@ -294,7 +294,7 @@ static bool visited(struct seen **sp, const void *ptr) {
static struct json_object * _lua_to_json_rec(lua_State *L, int index,
struct seen **seen)
{
- lua_Number nd, ni;
+ lua_Number nd;
struct json_object *obj;
const char *key;
int i, max;
@@ -364,10 +364,12 @@ static struct json_object * _lua_to_json_rec(lua_State *L, int index,
return json_object_new_boolean(lua_toboolean(L, index));
case LUA_TNUMBER:
+ if (lua_isinteger(L, index))
+ return json_object_new_int64(lua_tointeger(L, index));
+
nd = lua_tonumber(L, index);
- ni = lua_tointeger(L, index);
- if (nd == ni)
+ if (isfinite(nd) && trunc(nd) == nd)
return json_object_new_int64(nd);
return json_object_new_double(nd);
diff --git a/libs/luci-lib-rpcc/Makefile b/libs/luci-lib-rpcc/Makefile
deleted file mode 100644
index e0fea28a5c..0000000000
--- a/libs/luci-lib-rpcc/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI Support for AHCPd
-LUCI_DEPENDS:=@BROKEN
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/libs/luci-lib-rpcc/luasrc/rpcc.lua b/libs/luci-lib-rpcc/luasrc/rpcc.lua
deleted file mode 100644
index 5558910bf1..0000000000
--- a/libs/luci-lib-rpcc/luasrc/rpcc.lua
+++ /dev/null
@@ -1,59 +0,0 @@
--- Copyright 2009 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local util = require "luci.util"
-local json = require "luci.json"
-local ltn12 = require "luci.ltn12"
-local nixio = require "nixio", require "nixio.util"
-
-local tostring, assert, setmetatable = tostring, assert, setmetatable
-local error = error
-
-module "luci.rpcc"
-
-RQLIMIT = 32 * nixio.const.buffersize
-
-Client = util.class()
-
-function Client.__init__(self, fd, v1)
- self.fd = fd
- self.uniqueid = tostring(self):match("0x([a-f0-9]+)")
- self.msgid = 1
- self.v1 = v1
-end
-
-function Client.request(self, method, params, notification)
- local oldchunk = self.decoder and self.decoder.chunk
- self.decoder = json.ActiveDecoder(self.fd:blocksource(nil, RQLIMIT))
- self.decoder.chunk = oldchunk
-
- local reqid = self.msgid .. self.uniqueid
- local reqdata = json.Encoder({
- id = (not notification) and (self.msgid .. self.uniqueid) or nil,
- jsonrpc = (not self.v1) and "2.0" or nil,
- method = method,
- params = params
- })
- ltn12.pump.all(reqdata:source(), self.fd:sink())
- if not notification then
- self.msgid = self.msgid + 1
- local response = self.decoder:get()
- assert(response.id == reqid, "Invalid response id")
- if response.error then
- error(response.error.message or response.error)
- end
- return response.result
- end
-end
-
-function Client.proxy(self, prefix)
- prefix = prefix or ""
- return setmetatable({}, {
- __call = function(proxy, ...)
- return self:request(prefix, {...})
- end,
- __index = function(proxy, name)
- return self:proxy(prefix .. name .. ".")
- end
- })
-end \ No newline at end of file
diff --git a/libs/luci-lib-rpcc/luasrc/rpcc.luadoc b/libs/luci-lib-rpcc/luasrc/rpcc.luadoc
deleted file mode 100644
index 5609bfd751..0000000000
--- a/libs/luci-lib-rpcc/luasrc/rpcc.luadoc
+++ /dev/null
@@ -1,36 +0,0 @@
----[[
-LuCI RPC Client.
-
-@cstyle instance
-]]
-module "luci.rpcc"
-
----[[
-Create a new JSON-RPC stream client.
-
-@class function
-@param fd File descriptor
-@param v1 Use protocol version 1.0
-@return RPC Client
-]]
-
----[[
-Request an RP call and get the response.
-
-@class function
-@name Client.request
-@param method Remote method
-@param params Parameters
-@param notification Notification only?
-@return response
-]]
-
----[[
-Create a transparent RPC proxy.
-
-@class function
-@name Client.proxy
-@param prefix Method prefix
-@return RPC Proxy object
-]]
-
diff --git a/libs/luci-lib-rpcc/luasrc/rpcc/ruci.lua b/libs/luci-lib-rpcc/luasrc/rpcc/ruci.lua
deleted file mode 100644
index 275c396992..0000000000
--- a/libs/luci-lib-rpcc/luasrc/rpcc/ruci.lua
+++ /dev/null
@@ -1,48 +0,0 @@
--- Copyright 2009 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local util = require "luci.util"
-local rawget, setmetatable = rawget, setmetatable
-local ipairs = ipairs
-
-module "luci.rpcc.ruci"
-
-
-local Proxy = util.class()
-
-function factory(rpccl)
- return {
- cursor = function(...)
- return Proxy(rpccl, rpccl:request("ruci.cursor", {...}))
- end,
- cursor_state = function(...)
- return Proxy(rpccl, rpccl:request("ruci.cursor_state", {...}))
- end
- }
-end
-
-function Proxy.__init__(self, rpccl, objid)
- self.__rpccl = rpccl
- self.__objid = objid
-
- setmetatable(self, {
- __index = function(self, key)
- return rawget(self, key) or Proxy[key] or function(self, ...)
- local argv = {self.__objid, ...}
- return self.__rpccl:request("ruci."..key, argv)
- end
- end
- })
-end
-
-function Proxy.foreach(self, config, section, callback)
- local sections = self.__rpccl:request("ruci.foreach", {self.__objid, config, section})
- if sections then
- for _, s in ipairs(sections) do
- callback(s)
- end
- return true
- else
- return false
- end
-end
diff --git a/libs/luci-lib-rpcc/luasrc/rpcc/ruci.luadoc b/libs/luci-lib-rpcc/luasrc/rpcc/ruci.luadoc
deleted file mode 100644
index 9c842c5650..0000000000
--- a/libs/luci-lib-rpcc/luasrc/rpcc/ruci.luadoc
+++ /dev/null
@@ -1,16 +0,0 @@
----[[
-Transparent UCI over RPC client.
-
-@cstyle instance
-]]
-module "luci.rpcc.ruci"
-
----[[
-Create a new UCI over RPC proxy.
-
-@class function
-@name factory
-@param rpccl RPC client
-@return Network transparent UCI module
-]]
-