[PATCH] nodewatcher: Change mechanism for client device detection

Tim Niemeyer tim at tn-x.org
Mi Jul 25 13:51:03 CEST 2018


Am Dienstag, den 24.07.2018, 08:40 +0200 schrieb Fabian Bläse:
> Hallo Adrian,
> 
> Es gibt eine Variable “MESH_INTERFACE”, die sollte da verwendet
> werden..
Ja, das wäre gut.

> Außerdem: Das Verhalten wird nicht wirklich geändert, denn die
> Clientzahl weiterer (nicht-Client) Interfaces wird durch das “br
> $MESH_INTERFACE” im bridge fdb gar nicht gezählt.
> 
> Ansonsten gefällt mir die Lösung sehr gut, aber ich sehe nicht, warum
> man den Output von stderr im ls nach /dev/null haben möchte.
Wäre auch eher dafür den Fehler zu sehen. Immerhin ist der Nodewatcher
so gedacht, das auszulesen, wenn das Interface nicht da ist, soll es
eine Meldung geben. Sonst sucht sich am Ende der User dumm und dämlich
weil die Anzahl der Clients nicht gemeldet wird. Aber im Grunde ist mir
das nicht so wichtig.

Tim

> Gruß
> Fabian
> 
> > On 23. Jul 2018, at 15:39, Adrian Schmutzler <freifunk at adrianschmut
> > zler.de> wrote:
> > 
> > This is simpler than the previous approach and does not rely
> > on parsing.
> > 
> > This fixes:
> > - Interfaces being accounted for multiple times for certain
> >  devices
> > - Errors when output of bridge function changes (as with the
> >  current OpenWrt master)
> > 
> > Behavior change: Only br-mesh is evaluated, in contrast to all
> > bridge devices as before.
> > 
> > Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> > 
> > Tested-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> > ---
> > src/packages/fff/fff-nodewatcher/Makefile                   | 2 +-
> > src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher | 4 ++-
> > -
> > 2 files changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/src/packages/fff/fff-nodewatcher/Makefile
> > b/src/packages/fff/fff-nodewatcher/Makefile
> > index 633ec71..12ccb0f 100644
> > --- a/src/packages/fff/fff-nodewatcher/Makefile
> > +++ b/src/packages/fff/fff-nodewatcher/Makefile
> > @@ -1,7 +1,7 @@
> > include $(TOPDIR)/rules.mk
> > 
> > PKG_NAME:=fff-nodewatcher
> > -PKG_VERSION:=47
> > +PKG_VERSION:=48
> > PKG_RELEASE:=1
> > 
> > PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
> > diff --git a/src/packages/fff/fff-
> > nodewatcher/files/usr/sbin/nodewatcher b/src/packages/fff/fff-
> > nodewatcher/files/usr/sbin/nodewatcher
> > index 3b60500..f655e5e 100755
> > --- a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> > +++ b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> > @@ -2,7 +2,7 @@
> > # Netmon Nodewatcher (C) 2010-2012 Freifunk Oldenburg
> > # License; GPL v3
> > 
> > -SCRIPT_VERSION="47"
> > +SCRIPT_VERSION="48"
> > 
> > test -f /tmp/started || exit
> > 
> > @@ -260,7 +260,7 @@ crawl() {
> >     #CLIENTS
> >     client_count=0
> >     dataclient=""
> > -    CLIENT_INTERFACES=$(bridge link | awk '$2 !~/^bat/{ printf $2"
> > " }')
> > +    CLIENT_INTERFACES=$(ls /sys/class/net/br-mesh/brif 2>/dev/null
> > | grep -v '^bat')
> >     for clientif in ${CLIENT_INTERFACES}; do
> >         local cc=$(bridge fdb show br "$MESH_INTERFACE" brport
> > "$clientif" | grep -v self | grep -v permanent -c)
> >         client_count=$((client_count + cc))
> > --
> > 2.11.0
> > 
> 
> 
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 488 bytes
Beschreibung: This is a digitally signed message part
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20180725/68c7d15d/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev