gluon-statuspage-api: make lib/gluon/status-page/www/cgi-bin/interfaces mesh-protocol agnostic
This commit is contained in:
		
							parent
							
								
									b3e609dca9
								
							
						
					
					
						commit
						8b63ac792a
					
				| @ -14,7 +14,7 @@ define Package/gluon-status-page-api | |||||||
|   SECTION:=gluon |   SECTION:=gluon | ||||||
|   CATEGORY:=Gluon |   CATEGORY:=Gluon | ||||||
|   TITLE:=API for gluon-status-page |   TITLE:=API for gluon-status-page | ||||||
|   DEPENDS:=+gluon-core +uhttpd +sse-multiplex +gluon-neighbour-info +gluon-respondd +libiwinfo +libjson-c +libnl-tiny |   DEPENDS:=+gluon-core +uhttpd +sse-multiplex +gluon-neighbour-info +gluon-respondd +libiwinfo +libjson-c +libnl-tiny +libubus-lua | ||||||
| endef | endef | ||||||
| 
 | 
 | ||||||
| define Build/Prepare | define Build/Prepare | ||||||
|  | |||||||
| @ -1,27 +1,24 @@ | |||||||
| #!/usr/bin/lua | #!/usr/bin/lua | ||||||
| 
 |  | ||||||
| util = require 'gluon.util' | util = require 'gluon.util' | ||||||
| 
 |  | ||||||
| fs = require 'nixio.fs' | fs = require 'nixio.fs' | ||||||
| json = require 'luci.jsonc' | json = require 'luci.jsonc' | ||||||
|  | ubus = require 'ubus' | ||||||
| 
 | 
 | ||||||
| io.write("Access-Control-Allow-Origin: *\n") | io.write("Access-Control-Allow-Origin: *\n") | ||||||
| io.write("Content-type: application/json\n\n") | io.write("Content-type: application/json\n\n") | ||||||
| 
 | 
 | ||||||
| f = io.popen('batctl if') | local uconn = ubus.connect() | ||||||
| 
 | if not uconn then | ||||||
|  | 	error("Failed to connect to ubusd") | ||||||
|  | end | ||||||
|  | list = util.get_mesh_devices(uconn) | ||||||
|  | ubus.close(uconn) | ||||||
| interfaces = {} | interfaces = {} | ||||||
| 
 | for _,ifname in ipairs(list) do | ||||||
| for line in f:lines() do |  | ||||||
|   ifname = line:match('^(.-):') |  | ||||||
|   if ifname ~= nil then |  | ||||||
|     pcall(function() |     pcall(function() | ||||||
|       local address = util.trim(fs.readfile('/sys/class/net/' .. ifname .. '/address')) |       local address = util.trim(fs.readfile('/sys/class/net/' .. ifname .. '/address')) | ||||||
|       interfaces[ifname] = { address = address } |       interfaces[ifname] = { address = address } | ||||||
|     end) |     end) | ||||||
|   end |  | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
| f:close() |  | ||||||
| 
 |  | ||||||
| io.write(json.stringify(interfaces)) | io.write(json.stringify(interfaces)) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user