summaryrefslogtreecommitdiffhomepage
path: root/module
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2008-04-27 16:12:24 +0000
committerSteven Barth <steven@midlink.org>2008-04-27 16:12:24 +0000
commitbba585f063ccc1e483346c9b5625d4dcf84d6586 (patch)
treeab369d260f321d1529a15c0a36b60e7e465fe8ae /module
parent1b159023db95ec0d429f1fc71536ef96edc37333 (diff)
* Added initial version of RPC info API
* Fixed client splash
Diffstat (limited to 'module')
-rw-r--r--module/admin-core/src/controller/admin/uci.lua2
-rw-r--r--module/admin-core/src/controller/splash/splash.lua10
-rw-r--r--module/admin-core/src/model/cbi/admin_index/contact.lua2
-rw-r--r--module/admin-core/src/model/cbi/admin_index/freifunk.lua13
-rw-r--r--module/admin-core/src/model/menu/00admin.lua1
-rw-r--r--module/admin-core/src/view/splash/splash.htm28
-rw-r--r--module/admin-core/src/view/splash_splash/splash.htm5
-rw-r--r--module/public-core/src/view/public_status/index.htm11
-rw-r--r--module/public-core/src/view/public_status/routes.htm13
-rw-r--r--module/rpc-core/Makefile35
-rw-r--r--module/rpc-core/src/controller/rpc/luciinfo.lua35
11 files changed, 118 insertions, 37 deletions
diff --git a/module/admin-core/src/controller/admin/uci.lua b/module/admin-core/src/controller/admin/uci.lua
index 2d19db1b29..1a3ae1279f 100644
--- a/module/admin-core/src/controller/admin/uci.lua
+++ b/module/admin-core/src/controller/admin/uci.lua
@@ -13,7 +13,7 @@ function action_apply()
-- Collect files to be applied
for i, line in ipairs(ffluci.util.split(changes)) do
local r = line:match("^-?([^.]+)")
- if r then
+ if r and not ffluci.util.contains(apply, ffluci.config.uci_oncommit[r]) then
table.insert(apply, ffluci.config.uci_oncommit[r])
end
end
diff --git a/module/admin-core/src/controller/splash/splash.lua b/module/admin-core/src/controller/splash/splash.lua
index 7aec62d33c..4e8a79a22f 100644
--- a/module/admin-core/src/controller/splash/splash.lua
+++ b/module/admin-core/src/controller/splash/splash.lua
@@ -1,9 +1,13 @@
-module("ffluci.controller.public.splash", package.seeall)
+module("ffluci.controller.splash.splash", package.seeall)
function action_activate()
local mac = ffluci.sys.net.ip4mac(ffluci.http.remote_addr())
- os.execute("luci-splash add "..mac)
- ffluci.http.request_redirect()
+ if mac and ffluci.http.formvalue("accept") then
+ os.execute("luci-splash add "..mac.." >/dev/null 2>&1")
+ ffluci.http.redirect(ffluci.model.uci.get("freifunk", "community", "homepage"))
+ else
+ ffluci.http.request_redirect()
+ end
end
function action_accepted()
diff --git a/module/admin-core/src/model/cbi/admin_index/contact.lua b/module/admin-core/src/model/cbi/admin_index/contact.lua
index ecb4bedd78..66a1ec4bde 100644
--- a/module/admin-core/src/model/cbi/admin_index/contact.lua
+++ b/module/admin-core/src/model/cbi/admin_index/contact.lua
@@ -5,7 +5,7 @@ Diese Informationen sollten nach der Picopeering Vereinbarung mindestens deine E
Damit dein Knoten durch Topographieprogramme erfasst werden kann, gib bitte deine Geokoordinaten oder
zumindest deine Straße und Hausnummer unter Standort an.]]))
-c = m:section(NamedSection, "contact")
+c = m:section(NamedSection, "contact", "public")
c:option(Value, "nickname", translate("nickname", "Pseudonym"))
c:option(Value, "name", translate("name", "Name"))
diff --git a/module/admin-core/src/model/cbi/admin_index/freifunk.lua b/module/admin-core/src/model/cbi/admin_index/freifunk.lua
new file mode 100644
index 0000000000..64e916f32b
--- /dev/null
+++ b/module/admin-core/src/model/cbi/admin_index/freifunk.lua
@@ -0,0 +1,13 @@
+-- Todo: Translate
+m = Map("freifunk", "Freifunk", [[Informationen über die lokale Freifunkgemeinschaft.]])
+
+c = m:section(NamedSection, "community", "public")
+
+c:option(Value, "name", "Gemeinschaft")
+c:option(Value, "homepage", "Webseite")
+c:option(Value, "essid", "ESSID")
+c:option(Value, "bssid", "BSSID")
+c:option(Value, "realm", "Realm")
+c:option(Value, "pool", "Adressbereich")
+
+return m \ No newline at end of file
diff --git a/module/admin-core/src/model/menu/00admin.lua b/module/admin-core/src/model/menu/00admin.lua
index 3754a5bc8b..7d56b8b545 100644
--- a/module/admin-core/src/model/menu/00admin.lua
+++ b/module/admin-core/src/model/menu/00admin.lua
@@ -1,6 +1,7 @@
add("admin", "index", "Übersicht", 10)
act("contact", "Kontakt")
act("luci", "Oberfläche")
+act("freifunk", "Freifunk")
add("admin", "system", "System", 30)
act("packages", "Paketverwaltung")
diff --git a/module/admin-core/src/view/splash/splash.htm b/module/admin-core/src/view/splash/splash.htm
index 2cae0cdf97..db4bd0f780 100644
--- a/module/admin-core/src/view/splash/splash.htm
+++ b/module/admin-core/src/view/splash/splash.htm
@@ -1,23 +1,31 @@
+<h1><%:welcome Willkommen%>!</h1>
+<p>
Du bist jetzt mit dem freien Funknetz
-<a href="<%~freifunk.community.homepage%>"><%~freifunk.community.name%></a>
-verbunden. Wir sind ein experimentelles Gemeinschaftsnetzwerk, aber kein Internetanbieter.
-
-<br />
+<a href="<%~freifunk.community.homepage%>"><%~freifunk.community.name%></a> verbunden.<br />
+Wir sind ein experimentelles Gemeinschaftsnetzwerk, aber kein Internetanbieter.
+</p>
+<p>
Ein Zugang <strong>ins Internet</strong> ist trotzdem möglich,
da einige Freifunker ihre privaten Internetzugänge zur Verfügung stellen.
Diese Zugänge müssen sich hier alle teilen.
Bitte sei Dir dessen bewusst und verhalte Dich dementsprechend:
<ul>
-<li>bitte keine Filesharing-Programme betreiben!</li>
-<li>bitte keine unnötigen Downloads bzw. Streams starten</li>
-<li>bitte keine illegalen Sachen machen</li>
+<li>bitte <strong>keine Filesharing-Programme</strong> betreiben!</li>
+<li>bitte <strong>keine unnötigen Downloads oder Streams</strong> starten!</li>
+<li>bitte <strong>keine illegalen Aktivitäten</strong>!</li>
</ul>
+</p>
<p>
-Wenn Du unsere Idee gut findest, kannst Du mitmachen bzw. uns unterstützen:
+Wenn Du unsere Idee gut findest, kannst Du uns unterstützen:
<ul>
-<li>Werde selbst Freifunker oder teile deinen Internetzugang!</li>
-<li>Betreibe deine anderen WLAN-Geräte <em>NICHT</em> auf den Kanälen 1-5, diese stören oft das Freifunk-Netz.</li>
+<li><a href="<%~freifunk.community.homepage%>">Werde selbst Freifunker oder teile deinen Internetzugang!</a></li>
+<li>Betreibe deine anderen WLAN-Geräte <em>NICHT</em> auf den Kanälen 1-5, diese stören oft unser Netz.</li>
</ul>
+</p>
+
+<p>
+Mit einem Klick auf <em><%:accept Annehmen%></em> kannst du für <%~luci_splash.general.leasetime%> Stunden
+über unser Netz das Internet verwenden. Dann wirst du erneut aufgefordet, diese Bedingungen zu akzeptieren.
</p> \ No newline at end of file
diff --git a/module/admin-core/src/view/splash_splash/splash.htm b/module/admin-core/src/view/splash_splash/splash.htm
index fee61e0278..9c165802fb 100644
--- a/module/admin-core/src/view/splash_splash/splash.htm
+++ b/module/admin-core/src/view/splash_splash/splash.htm
@@ -1,6 +1,7 @@
<%+header%>
<%+splash/splash%>
-<form method="post" action="<%=controller%>/splash/splash/activate">
- <input type="submit" value="<%:accept Annehmen%>" />
+<form method="get" action="<%=controller%>/splash/splash/activate">
+ <input type="submit" value="<%:decline Ablehnen%>" />
+ <input type="submit" name="accept" value="<%:accept Annehmen%>" />
</form>
<%+footer%> \ No newline at end of file
diff --git a/module/public-core/src/view/public_status/index.htm b/module/public-core/src/view/public_status/index.htm
index 44c4ea7a76..be0b96888b 100644
--- a/module/public-core/src/view/public_status/index.htm
+++ b/module/public-core/src/view/public_status/index.htm
@@ -47,19 +47,10 @@
<th><%:iface Schnittstelle%></th>
</tr>
<%
-
--- UGLY hack is UGLY
-if routes[1] and routes[1].Gateway:sub(-2) == "00" then
- local be = true
-else
- local be = false
-end
-
-
for i, rt in pairs(routes) do
%>
<tr>
-<td><%=ffluci.sys.net.hexip4(rt.Gateway, be)%></th>
+<td><%=ffluci.sys.net.hexip4(rt.Gateway)%></th>
<td><%=rt.Metric%></th>
<td><%=rt.Iface%></th>
</tr>
diff --git a/module/public-core/src/view/public_status/routes.htm b/module/public-core/src/view/public_status/routes.htm
index cd694d3246..85b02212d7 100644
--- a/module/public-core/src/view/public_status/routes.htm
+++ b/module/public-core/src/view/public_status/routes.htm
@@ -13,19 +13,12 @@
<%
local routes = ffluci.sys.net.routes()
--- UGLY hack is UGLY
-if routes[1] and routes[1].Gateway:sub(-2) == "00" then
- local be = true
-else
- local be = false
-end
-
for i, r in pairs(routes) do
%>
<tr>
-<td><%=ffluci.sys.net.hexip4(r.Destination, be)%></td>
-<td><%=ffluci.sys.net.hexip4(r.Mask, be)%></td>
-<td><%=ffluci.sys.net.hexip4(r.Gateway, be)%></td>
+<td><%=ffluci.sys.net.hexip4(r.Destination)%></td>
+<td><%=ffluci.sys.net.hexip4(r.Mask)%></td>
+<td><%=ffluci.sys.net.hexip4(r.Gateway)%></td>
<td><%=r.Metric%></td>
<td><%=r.Iface%></td>
</tr>
diff --git a/module/rpc-core/Makefile b/module/rpc-core/Makefile
new file mode 100644
index 0000000000..113799af6c
--- /dev/null
+++ b/module/rpc-core/Makefile
@@ -0,0 +1,35 @@
+LUAC = luac
+LUAC_OPTIONS = -s
+
+FILES = i18n/* view/*/*.htm
+
+CFILES = controller/*/*.lua model/cbi/*/*.lua model/menu/*.lua
+
+DIRECTORIES = model/cbi model/menu controller i18n view
+
+
+INFILES = $(CFILES:%=src/%)
+OUTDIRS = $(DIRECTORIES:%=dist/%)
+CPFILES = $(FILES:%=src/%)
+
+.PHONY: all compile source clean depends
+
+all: compile
+
+
+depends:
+ mkdir -p $(OUTDIRS)
+ for i in $(CPFILES); do if [ -f "$$i" ]; then i=$$(echo $$i | cut -d/ -f2-); \
+ mkdir -p dist/$$(dirname $$i); cp src/$$i dist/$$i; fi; done
+
+compile: depends
+ for i in $(INFILES); do if [ -f "$$i" ]; then i=$$(echo $$i | cut -d/ -f2-); \
+ mkdir -p dist/$$(dirname $$i); $(LUAC) $(LUAC_OPTIONS) -o dist/$$i src/$$i; fi; done
+
+source: depends
+ for i in $(INFILES); do if [ -f "$$i" ]; then i=$$(echo $$i | cut -d/ -f2-); \
+ mkdir -p dist/$$(dirname $$i); cp src/$$i dist/$$i; fi; done
+
+
+clean:
+ rm dist -rf
diff --git a/module/rpc-core/src/controller/rpc/luciinfo.lua b/module/rpc-core/src/controller/rpc/luciinfo.lua
new file mode 100644
index 0000000000..8d10fa8850
--- /dev/null
+++ b/module/rpc-core/src/controller/rpc/luciinfo.lua
@@ -0,0 +1,35 @@
+module("ffluci.controller.rpc.luciinfo", package.seeall)
+
+function action_index()
+ local uci = ffluci.model.uci.StateSession()
+
+ ffluci.http.textheader()
+
+ -- General
+ print("luciinfo.api=1")
+ print("luciinfo.version=" .. tostring(ffluci.__version__))
+
+ -- Sysinfo
+ local s, m, r = ffluci.sys.sysinfo()
+ local dr = ffluci.sys.net.defaultroute()
+ dr = dr and ffluci.sys.net.hexip4(dr.Gateway) or ""
+ local l1, l5, l15 = ffluci.sys.loadavg()
+
+ print("sysinfo.system=" .. sanitize(s))
+ print("sysinfo.cpu=" .. sanitize(m))
+ print("sysinfo.ram=" .. sanitize(r))
+ print("sysinfo.hostname=" .. sanitize(ffluci.sys.hostname()))
+ print("sysinfo.load1=" .. tostring(l1))
+ print("sysinfo.load5=" .. tostring(l5))
+ print("sysinfo.load15=" .. tostring(l15))
+ print("sysinfo.defaultgw=" .. dr)
+
+
+ -- Freifunk
+ local ff = uci:show("freifunk", true) or ""
+ print(ff)
+end
+
+function sanitize(val)
+ return val:gsub("\n", "\t")
+end \ No newline at end of file