Message ID | 1508451907-49231-1-git-send-email-freifunk@adrianschmutzler.de |
---|---|
State | Superseded |
Headers | show |
diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/wifiscan.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/wifiscan.html index a235159..254c24b 100755 --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/wifiscan.html +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/wifiscan.html @@ -18,8 +18,8 @@ <% iwinfo w2mesh scan |\ awk -v RS='' \ - '{r = gensub(/.*Address: ([0-9A-F:]*)?.*ESSID: "?(unknown|[^"]*)"?.*Mode: ([^ ]*).*Channel: ([0-9]*).*Signal: (-[0-9]*) dBm.*Encryption: ([^"]*).*/, \ - "<!-- \\5 --><tr><td>\\2</td><td>\\4</td><td>\\5 dBm</td><td>\\3</td><td>\\1</td><td>\\6</td></tr>", "g"); print r;}' | sort -n + '{r = gensub(/.*Address: ([0-9A-F:]*)?.*ESSID: "?(unknown|[^"]*)"?[ ]*\n.*Mode: ([^ ]*).*Channel: ([0-9]*).*Signal: (-[0-9]*) dBm.*Encryption: ([^"]*).*/, \ + "<!-- \\5 --><tr><td>\\2</td><td>\\4</td><td>\\5 dBm</td><td>\\3</td><td>\\1</td><td>\\6</td></tr>", "g"); print r;}' | sort -n | sed 's#&#\&#' # The HTML comment contains the signal quality to allow sorting %> </table>
Hi Am Freitag, den 20.10.2017, 00:25 +0200 schrieb Adrian Schmutzler: > Bug 1: If devices with hidden SSID are present, the matched > SSID in the awk contains the newline (="unknown\n\t"). This > destroys the table after the sort. > > Bug 2: If SSIDs contain ampersands (yes, people do that), > they are now converted to &. > > Changes in v2: none > > > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > > > Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > --- > src/packages/fff/fff-web/files/www/ssl/cgi-bin/wifiscan.html | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/wifiscan.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/wifiscan.html > index a235159..254c24b 100755 > --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/wifiscan.html > +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/wifiscan.html > @@ -18,8 +18,8 @@ > <% > iwinfo w2mesh scan |\ > > awk -v RS='' \ > > - '{r = gensub(/.*Address: ([0-9A-F:]*)?.*ESSID: "?(unknown|[^"]*)"?.*Mode: ([^ ]*).*Channel: ([0-9]*).*Signal: (-[0-9]*) dBm.*Encryption: ([^"]*).*/, \ > > - "<!-- \\5 --><tr><td>\\2</td><td>\\4</td><td>\\5 dBm</td><td>\\3</td><td>\\1</td><td>\\6</td></tr>", "g"); print r;}' | sort -n > + '{r = gensub(/.*Address: ([0-9A-F:]*)?.*ESSID: "?(unknown|[^"]*)"?[ ]*\n.*Mode: ([^ ]*).*Channel: ([0-9]*).*Signal: (-[0-9]*) dBm.*Encryption: ([^"]*).*/, \ Schwer zu verdauen.. Wir suchen aus einem Text die ESSID: 'ESSID: "unknown\n\t"' 'ESSID: "freifunk"' Mit diesem Ausdruck: '.*ESSID: "?(unknown|[^"]*)"?.*Mode:' Der alte Ausdruck hat das gemacht, in dem er nach '...ESSID: ' und dann nach einem optionalen(?) '"' gesucht hat. Dann hat er entweder 'unknown' oder jedes Zeichen, was kein '"' ist gemerkt. Dann hat er wieder nach einem optionalen(?) '"' gesucht. Dann nach jedem beliebigen Zeichen und dann nach 'Mode: ...'. Ich verstehe gerade nicht, wieso das .* vor dem Mode nötig ist. Außerdem scheint das mit den Anführuungszeichen komisch zu sein. Der neue Ausdruck wäre dann: '.*ESSID: "?(unknown|[^"]*)"?[ ]*\n.*Mode:' Die neue Lösung erwartet jetzt immer, dass nach dem optionalem Anführungszeichen beliebig viele Leerstellen (also auch keins) und dann ein Zeilenumbruch gefolgt von beliebigen Zeichen kommt. Das funktioniert zwar, ist aber für mich nicht so ganz nachvollziehbar. Ich stell mal ein Gegenvorschlag in den Raum: '.*ESSID: "?([^"\n]*)"?.*Mode:' > + "<!-- \\5 --><tr><td>\\2</td><td>\\4</td><td>\\5 dBm</td><td>\\3</td><td>\\1</td><td>\\6</td></tr>", "g"); print r;}' | sort -n | sed 's#&#\&#' Jo, ok. Können wir machen. Wirft aber die Frage auf.. Könnte jemand Schadcode in seine ESSID einbauen? Tim > # The HTML comment contains the signal quality to allow sorting > %> > > </table> > -- > 2.7.4 >