fff-web-ui: Make public page usable for layer 3 variante #250

Open
ChristianD wants to merge 2 commits from ChristianD/firmware:webuineu into master
1 changed files with 41 additions and 0 deletions
Showing only changes of commit 230c258ca6 - Show all commits

View File

@ -67,6 +67,47 @@ contact="$(uci -q get "fff.system.contact")"
<tr><th>Lokale Clients:</th><td><% echo -n $(batctl tl -H 2> /dev/null | grep -c 'W') %></td></tr>
</table>
</fieldset>
<% fi
if birdc show status >/dev/null 2>&1 || pgrep babeld >/dev/null; then %>
<fieldset style="min-height: 15em;">
<legend>Status</legend>
<table>
<% #Count Clients
client_count=$(bridge fdb show br br_client brport $(ls "/sys/class/net/br-client/brif" | grep -v '^bat') | grep -v self | grep -v permanent -c)
Review

Das mesh_interface sollte aus dem UCI kommen: uci get nodewatcher.@network[0].mesh_interface (siehe 50-clients.sh im Paket fff-network).

Kann bridge fdb mit mehreren Argumenten hinter brport umgehen? Ich fürchte das geht so nicht wenn mehr als ein Interface gelistet ist.

Das mesh_interface sollte aus dem UCI kommen: `uci get nodewatcher.@network[0].mesh_interface` (siehe `50-clients.sh` im Paket `fff-network`). Kann `bridge fdb` mit mehreren Argumenten hinter `brport` umgehen? Ich fürchte das geht so nicht wenn mehr als ein Interface gelistet ist.
%>
<tr><th>Lokale Clients:</th><td><% echo $client_count %></td></tr>
</table>
</fieldset>
<fieldset style="min-height: 15em;">
<legend>Babel Status</legend>
<table>
<tr><th>IP</th><th>Interface</th><th>Kosten</th></tr>
<% if birdc show status >/dev/null 2>&1; then
neighbours="$(birdc -r show babel neighbors | tail -n +5 | awk '{ printf "<tr><td>%s</td><td>%s</td><td>%s</td></tr>", $1, $2, $3 }')"
fi
if
pgrep babeld >/dev/null; then
lockfile="/tmp/fff-web-ui.babel.lock"
ChristianD marked this conversation as resolved Outdated

War da nicht was mit dem babeld dump? Bekommt man da nicht von aussen die Kisten ganz leicht kaputt.
509846fa0b

War da nicht was mit dem babeld dump? Bekommt man da nicht von aussen die Kisten ganz leicht kaputt. https://git.freifunk-franken.de/freifunk-franken/simple-babelweb/commit/509846fa0b9e27f7adec0895dcf351795814d7f4

da war was... Ich hab mal bisschen was aus simple babelweb geklaut und noch etwas verbessert ;)

da war was... Ich hab mal bisschen was aus simple babelweb geklaut und noch etwas verbessert ;)
if [ -e $lockfile ] && [ 30 -gt $(( $(date +%s) - $(date -r $lockfile +%s) )) ] ; then
Review

Wäre das nicht sinnvoll das für bird ebenfalls zu machen?

An sich benötigen wir hier kein extra Lockfile. Es genügt das Änderungsdatum der Inhaltsdatei (fff-web-ui.babel) zu prüfen.

Vom Codefluss her wird es möglicherweise schöner, wenn man einfach immer den Inhalt der Datei anzeigt, und kurz darüber per lockfile-check den Dateiinhalt aktualisiert, wenn er schon älter als eine gewisse Zeit ist.

Wäre das nicht sinnvoll das für bird ebenfalls zu machen? An sich benötigen wir hier kein extra Lockfile. Es genügt das Änderungsdatum der Inhaltsdatei (`fff-web-ui.babel`) zu prüfen. Vom Codefluss her wird es möglicherweise schöner, wenn man einfach immer den Inhalt der Datei anzeigt, und kurz darüber per lockfile-check den Dateiinhalt aktualisiert, wenn er schon älter als eine gewisse Zeit ist.
neighbours=$(cat /tmp/fff-web-ui.babel)
else
neighbours="$(echo dump | nc ::1 33123 | grep '^add neighbour' |
awk '{
for (i=2; i < NF; i += 2) {
vars[$i] = $(i+1)
}
}
{
printf "<tr><td>%s</td><td>%s</td><td>%s</td></tr>", vars["address"], vars["if"], vars["cost"]
}')"
echo "$neighbours" > /tmp/fff-web-ui.babel
touch $lockfile
fi
fi
echo -n "$neighbours"
%>
</table>
</fieldset>
<% fi %>
</td></tr>
</table>