fff-web-ui: Make public page usable for layer 3 variante #250
|
@ -57,6 +57,7 @@ contact="$(uci -q get "fff.system.contact")"
|
|||
</table>
|
||||
</fieldset>
|
||||
</td><td>
|
||||
<% if [ -f "$(command -v batctl)" ] ; then %>
|
||||
ChristianD marked this conversation as resolved
Outdated
|
||||
<fieldset style="min-height: 15em;">
|
||||
<legend>Status</legend>
|
||||
<table>
|
||||
|
@ -66,6 +67,48 @@ 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)
|
||||
fbl
commented
Das mesh_interface sollte aus dem UCI kommen: Kann 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
rohammer
commented
War da nicht was mit dem babeld dump? Bekommt man da nicht von aussen die Kisten ganz leicht kaputt. 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
ChristianD
commented
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
|
||||
fbl
commented
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 ( 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>
|
||||
</div>
|
||||
|
|
Hi Christian,
grossartig, dass du dich dem web-ui annimmst!
So absolute Pfade koennen ganz schnell zu Stolperfallen werden. Dieses Skript verwendet batctl ohne Pfad. Dann sollte man auch mit which entlang von $PATH suchen.
Habs mal mit dem command -v von lemmi gemacht. Sorry für den doppelten Push, ich habs mal wieder vermasselt auf Anhieb (ich werde mich nie mit git anfreunden...)