From c335b0cd8edb800795cf1b4422043ef3c24a036b Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 16 May 2017 16:02:25 +0200 Subject: [PATCH] index.cgi: Show WiFi properties on front page Signed-off-by: Michael Tremer --- config/cfgroot/network-functions.pl | 59 +++++++++++++++++++++++++++++ doc/language_issues.es | 2 + doc/language_issues.fr | 2 + doc/language_issues.it | 2 + doc/language_issues.nl | 2 + doc/language_issues.pl | 2 + doc/language_issues.ru | 2 + doc/language_issues.tr | 2 + doc/language_missings | 8 ++++ html/cgi-bin/index.cgi | 43 ++++++++++++++++++++- langs/de/cgi-bin/de.pl | 2 + langs/en/cgi-bin/en.pl | 2 + 12 files changed, 127 insertions(+), 1 deletion(-) diff --git a/config/cfgroot/network-functions.pl b/config/cfgroot/network-functions.pl index 5f53704cd1..66f1ed554a 100644 --- a/config/cfgroot/network-functions.pl +++ b/config/cfgroot/network-functions.pl @@ -315,6 +315,65 @@ sub setup_upstream_proxy() { } } +my %wireless_status = (); + +sub _get_wireless_status($) { + my $intf = shift; + + if (!$wireless_status{$intf}) { + $wireless_status{$intf} = `iwconfig $intf`; + } + + return $wireless_status{$intf}; +} + +sub wifi_get_essid($) { + my $status = &_get_wireless_status(shift); + + my ($essid) = $status =~ /ESSID:\"(.*)\"/; + + return $essid; +} + +sub wifi_get_frequency($) { + my $status = &_get_wireless_status(shift); + + my ($frequency) = $status =~ /Frequency:(\d+\.\d+ GHz)/; + + return $frequency; +} + +sub wifi_get_access_point($) { + my $status = &_get_wireless_status(shift); + + my ($access_point) = $status =~ /Access Point: ([0-9A-F:]+)/; + + return $access_point; +} + +sub wifi_get_bit_rate($) { + my $status = &_get_wireless_status(shift); + + my ($bit_rate) = $status =~ /Bit Rate=(\d+ [GM]b\/s)/; + + return $bit_rate; +} + +sub wifi_get_link_quality($) { + my $status = &_get_wireless_status(shift); + + my ($cur, $max) = $status =~ /Link Quality=(\d+)\/(\d+)/; + + return $cur * 100 / $max; +} + +sub wifi_get_signal_level($) { + my $status = &_get_wireless_status(shift); + + my ($signal_level) = $status =~ /Signal level=(\-\d+ dBm)/; + + return $signal_level; +} 1; # Remove the next line to enable the testsuite diff --git a/doc/language_issues.es b/doc/language_issues.es index e2391cb41d..d34d63f59a 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -1144,6 +1144,7 @@ WARNING: untranslated string: unblock WARNING: untranslated string: unblock all WARNING: untranslated string: uncheck all WARNING: untranslated string: uplink +WARNING: untranslated string: uplink bit rate WARNING: untranslated string: upload dh key WARNING: untranslated string: uptime load average WARNING: untranslated string: urlfilter redirect template @@ -1161,6 +1162,7 @@ WARNING: untranslated string: vpn statistic n2n WARNING: untranslated string: vpn statistic rw WARNING: untranslated string: vpn statistics n2n WARNING: untranslated string: vpn weak +WARNING: untranslated string: wireless network WARNING: untranslated string: wlan client WARNING: untranslated string: wlan client advanced settings WARNING: untranslated string: wlan client and diff --git a/doc/language_issues.fr b/doc/language_issues.fr index dd8e3f8cd7..4a916761b5 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -1158,6 +1158,7 @@ WARNING: untranslated string: unblock WARNING: untranslated string: unblock all WARNING: untranslated string: uncheck all WARNING: untranslated string: uplink +WARNING: untranslated string: uplink bit rate WARNING: untranslated string: upload dh key WARNING: untranslated string: upload new ruleset WARNING: untranslated string: uptime load average @@ -1178,6 +1179,7 @@ WARNING: untranslated string: vpn statistic n2n WARNING: untranslated string: vpn statistic rw WARNING: untranslated string: vpn statistics n2n WARNING: untranslated string: vpn weak +WARNING: untranslated string: wireless network WARNING: untranslated string: wlan client WARNING: untranslated string: wlan client advanced settings WARNING: untranslated string: wlan client and diff --git a/doc/language_issues.it b/doc/language_issues.it index 119f72d979..0baf400861 100644 --- a/doc/language_issues.it +++ b/doc/language_issues.it @@ -825,6 +825,7 @@ WARNING: untranslated string: search WARNING: untranslated string: unblock WARNING: untranslated string: unblock all WARNING: untranslated string: uncheck all +WARNING: untranslated string: uplink bit rate WARNING: untranslated string: vpn broken WARNING: untranslated string: vpn connecting WARNING: untranslated string: vpn force mobike @@ -836,6 +837,7 @@ WARNING: untranslated string: vpn statistic n2n WARNING: untranslated string: vpn statistic rw WARNING: untranslated string: vpn statistics n2n WARNING: untranslated string: vpn weak +WARNING: untranslated string: wireless network WARNING: untranslated string: wlan client anonymous identity WARNING: untranslated string: wlan client auth auto WARNING: untranslated string: wlan client auth peap diff --git a/doc/language_issues.nl b/doc/language_issues.nl index f7cca4a1b8..4f64b5d68c 100644 --- a/doc/language_issues.nl +++ b/doc/language_issues.nl @@ -871,6 +871,7 @@ WARNING: untranslated string: ta key WARNING: untranslated string: unblock WARNING: untranslated string: unblock all WARNING: untranslated string: uncheck all +WARNING: untranslated string: uplink bit rate WARNING: untranslated string: upload dh key WARNING: untranslated string: vendor WARNING: untranslated string: vpn broken @@ -884,6 +885,7 @@ WARNING: untranslated string: vpn statistic n2n WARNING: untranslated string: vpn statistic rw WARNING: untranslated string: vpn statistics n2n WARNING: untranslated string: vpn weak +WARNING: untranslated string: wireless network WARNING: untranslated string: wlan client anonymous identity WARNING: untranslated string: wlan client auth auto WARNING: untranslated string: wlan client auth peap diff --git a/doc/language_issues.pl b/doc/language_issues.pl index e2391cb41d..d34d63f59a 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -1144,6 +1144,7 @@ WARNING: untranslated string: unblock WARNING: untranslated string: unblock all WARNING: untranslated string: uncheck all WARNING: untranslated string: uplink +WARNING: untranslated string: uplink bit rate WARNING: untranslated string: upload dh key WARNING: untranslated string: uptime load average WARNING: untranslated string: urlfilter redirect template @@ -1161,6 +1162,7 @@ WARNING: untranslated string: vpn statistic n2n WARNING: untranslated string: vpn statistic rw WARNING: untranslated string: vpn statistics n2n WARNING: untranslated string: vpn weak +WARNING: untranslated string: wireless network WARNING: untranslated string: wlan client WARNING: untranslated string: wlan client advanced settings WARNING: untranslated string: wlan client and diff --git a/doc/language_issues.ru b/doc/language_issues.ru index 77b6aae578..d07c421eb2 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -1139,6 +1139,7 @@ WARNING: untranslated string: unblock WARNING: untranslated string: unblock all WARNING: untranslated string: uncheck all WARNING: untranslated string: uplink +WARNING: untranslated string: uplink bit rate WARNING: untranslated string: upload dh key WARNING: untranslated string: uptime load average WARNING: untranslated string: urlfilter redirect template @@ -1156,6 +1157,7 @@ WARNING: untranslated string: vpn statistic n2n WARNING: untranslated string: vpn statistic rw WARNING: untranslated string: vpn statistics n2n WARNING: untranslated string: vpn weak +WARNING: untranslated string: wireless network WARNING: untranslated string: wlan client WARNING: untranslated string: wlan client advanced settings WARNING: untranslated string: wlan client and diff --git a/doc/language_issues.tr b/doc/language_issues.tr index 40b43f222b..034dd2a7bd 100644 --- a/doc/language_issues.tr +++ b/doc/language_issues.tr @@ -759,6 +759,7 @@ WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: uplink bit rate WARNING: untranslated string: vpn broken WARNING: untranslated string: vpn connecting WARNING: untranslated string: vpn on-demand @@ -767,6 +768,7 @@ WARNING: untranslated string: vpn start action route WARNING: untranslated string: vpn start action start WARNING: untranslated string: vpn statistics n2n WARNING: untranslated string: vpn weak +WARNING: untranslated string: wireless network WARNING: untranslated string: wlan client anonymous identity WARNING: untranslated string: wlan client auth auto WARNING: untranslated string: wlan client auth peap diff --git a/doc/language_missings b/doc/language_missings index 422266bed7..fd372c15fb 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -558,6 +558,7 @@ < updxlrtr sources < updxlrtr standard view < uplink +< uplink bit rate < upload dh key < upload new ruleset < uptime @@ -577,6 +578,7 @@ < vpn statistic n2n < vpn statistic rw < vpn weak +< wireless network < wlanap access point < wlanap channel < wlanap country @@ -1203,6 +1205,7 @@ < updxlrtr sources < updxlrtr standard view < uplink +< uplink bit rate < upload dh key < uptime < uptime load average @@ -1219,6 +1222,7 @@ < vpn statistic n2n < vpn statistic rw < vpn weak +< wireless network < wlanap country < wlan client < wlan client advanced settings @@ -1810,6 +1814,7 @@ < updxlrtr sources < updxlrtr standard view < uplink +< uplink bit rate < upload dh key < uptime < uptime load average @@ -1826,6 +1831,7 @@ < vpn statistic n2n < vpn statistic rw < vpn weak +< wireless network < wlanap country < wlan client < wlan client advanced settings @@ -2422,6 +2428,7 @@ < updxlrtr sources < updxlrtr standard view < uplink +< uplink bit rate < upload dh key < uptime < uptime load average @@ -2439,6 +2446,7 @@ < vpn statistic rw < vpn weak < week-graph +< wireless network < wlanap country < wlan client < wlan client advanced settings diff --git a/html/cgi-bin/index.cgi b/html/cgi-bin/index.cgi index 80a86afb21..6ba345dde8 100644 --- a/html/cgi-bin/index.cgi +++ b/html/cgi-bin/index.cgi @@ -217,7 +217,48 @@ END - +END + + if (&General::RedIsWireless()) { + my $iface = $netsettings{"RED_DEV"} || "red0"; + + my $essid = &Network::wifi_get_essid($iface); + my $frequency = &Network::wifi_get_frequency($iface); + my $access_point = &Network::wifi_get_access_point($iface); + my $bit_rate = &Network::wifi_get_bit_rate($iface); + my $link_quality = &Network::wifi_get_link_quality($iface); + my $signal_level = &Network::wifi_get_signal_level($iface); + + print < + + $Lang::tr{'wireless network'}: + + + $essid + + + $access_point @ $frequency + + + + + + $Lang::tr{'uplink bit rate'}: + + + + $bit_rate + + + $link_quality% @ $signal_level + + +END + } + + print < END #Dial profiles diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index a27220bc69..b0cb96df24 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -2356,6 +2356,7 @@ 'updxlrtr year' => 'einem Jahr', 'upgrade' => 'upgrade', 'uplink' => 'Uplink', +'uplink bit rate' => 'Ausgehende Datenrate', 'uplink speed' => 'Uplink-Geschwindigkeit (kbit/sek)', 'uplink std class' => 'Uploadstandardklasse', 'upload' => 'Hochladen', @@ -2656,6 +2657,7 @@ 'wireless config added' => 'Wireless-Konfiguration hinzugefügt', 'wireless config changed' => 'Wireless-Konfiguration geändert', 'wireless configuration' => 'Wireless-Konfiguration', +'wireless network' => 'WLAN-Netzwerk', 'wlan client' => 'WLAN-Client', 'wlan client advanced settings' => 'Erweiterte Einstellungen', 'wlan client and' => 'und', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index dc30f22540..b3aee5a2b7 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -2398,6 +2398,7 @@ 'updxlrtr year' => 'one year', 'upgrade' => 'upgrade', 'uplink' => 'Uplink', +'uplink bit rate' => 'Uplink Bit Rate', 'uplink speed' => 'Uplink speed (kbit/sec)', 'uplink std class' => 'uplink standard class', 'upload' => 'Upload', @@ -2701,6 +2702,7 @@ 'wireless config added' => 'Wireless config added', 'wireless config changed' => 'Wireless config changed', 'wireless configuration' => 'Wireless Configuration', +'wireless network' => 'WiFi Network', 'wlan client' => 'Wireless client', 'wlan client advanced settings' => 'Advanced settings', 'wlan client and' => 'and', -- 2.39.2