[RFC] Add hidden AP for dez. keyxchange

Submitted by Christian Dresel on Aug. 13, 2017, 6:50 a.m.

Details

Message ID 1502607046-2729-1-git-send-email-fff@chrisi01.de
State Superseded
Headers show

Commit Message

Christian Dresel Aug. 13, 2017, 6:50 a.m.
and fix a little variable bug in 60-fff-wireless

Signed-off-by: Christian Dresel <fff@chrisi01.de>
---
 .../files/etc/uci-defaults/60-fff-wireless         |  9 ++++--
 .../fff-wireless/files/lib/functions/fff/wireless  | 35 +++++++++++++++++++++-
 2 files changed, 41 insertions(+), 3 deletions(-)

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
index 59239b3..a3de470 100644
--- a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
+++ b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
@@ -30,12 +30,17 @@  for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
 	fi
 
 	if ! wifiAddAP "$radio" "$ESSID_AP"; then
-		echo "Can't add AP interface on $radio0."
+		echo "Can't add AP interface on $radio."
+		exit 1
+	fi
+
+	if ! wifiAddDezAP "$radio" "config.franken.freifunk.net"; then
+		echo "Can't add AP interface on $radio."
 		exit 1
 	fi
 
 	if ! wifiAddAdHocMesh "$radio" "$ESSID_MESH" "$BSSID_MESH"; then
-		echo "Can't add AP interface on $radio0."
+		echo "Can't add AP interface on $radio."
 		exit 1
 	fi
 done
diff --git a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
index 59c8ce2..d99507f 100644
--- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
+++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
@@ -114,4 +114,37 @@  wifiAddAP() {
 	echo "${iface}"
 }
 
-# vim: set noexpandtab:tabstop=4
+wifiAddDezAP() {
+	if [ $# -ne "2" ]
+	then
+		echo "Usage: wifiAdddezAP <radio> <essid>"
+		return 1
+	fi
+
+	local radio=$1
+	local essid=$2
+
+	local channel=$(uci get "wireless.${radio}.channel")
+	local iface="w2dezap"
+	if [ "$channel" -gt "14" ]; then
+		iface="w5dezap"
+	fi
+	uci batch <<-__EOF__
+		set wireless.${iface}='wifi-iface'
+		set wireless.${iface}.device='${radio}'
+		set wireless.${iface}.network='dezkey'
+		set wireless.${iface}.ifname='${iface}'
+		set wireless.${iface}.mode='ap'
+		set wireless.${iface}.ssid='${essid}'
+		set wireless.${iface}.encryption='none'
+		set wireless.${iface}.hidden='1'
+		set network.dezkey=interface
+		set network.dezkey.proto='static'
+		set network.dezkey.ipaddr='192.168.214.1'
+		set network.dezkey.netmask='255.255.255.0'
+
+		commit wireless
+	__EOF__
+
+	echo "${iface}"
+}

Comments

Christian Dresel Aug. 13, 2017, 6:54 a.m.
hi

vergessen zu sagen, ich hab das Ding bisher weder durchgebaut noch hab
ich mich auf dem AP verbunden, ich hab es nur mal eben händisch in einen
schon laufenden Router laufen lassen und geguckt ob das Interface da ist
und die IP hat, daher RFC. Muss noch richtig getestet werden und der
uhttpd muss natürlich auch noch konfiguriert werden im nächsten Schritt.

mfg

Christian

On 13.08.2017 08:50, Christian Dresel wrote:
> and fix a little variable bug in 60-fff-wireless
> 
> Signed-off-by: Christian Dresel <fff@chrisi01.de>
> ---
>  .../files/etc/uci-defaults/60-fff-wireless         |  9 ++++--
>  .../fff-wireless/files/lib/functions/fff/wireless  | 35 +++++++++++++++++++++-
>  2 files changed, 41 insertions(+), 3 deletions(-)
> 
> diff --git a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
> index 59239b3..a3de470 100644
> --- a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
> +++ b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
> @@ -30,12 +30,17 @@ for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
>  	fi
>  
>  	if ! wifiAddAP "$radio" "$ESSID_AP"; then
> -		echo "Can't add AP interface on $radio0."
> +		echo "Can't add AP interface on $radio."
> +		exit 1
> +	fi
> +
> +	if ! wifiAddDezAP "$radio" "config.franken.freifunk.net"; then
> +		echo "Can't add AP interface on $radio."
>  		exit 1
>  	fi
>  
>  	if ! wifiAddAdHocMesh "$radio" "$ESSID_MESH" "$BSSID_MESH"; then
> -		echo "Can't add AP interface on $radio0."
> +		echo "Can't add AP interface on $radio."
>  		exit 1
>  	fi
>  done
> diff --git a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> index 59c8ce2..d99507f 100644
> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> @@ -114,4 +114,37 @@ wifiAddAP() {
>  	echo "${iface}"
>  }
>  
> -# vim: set noexpandtab:tabstop=4
> +wifiAddDezAP() {
> +	if [ $# -ne "2" ]
> +	then
> +		echo "Usage: wifiAdddezAP <radio> <essid>"
> +		return 1
> +	fi
> +
> +	local radio=$1
> +	local essid=$2
> +
> +	local channel=$(uci get "wireless.${radio}.channel")
> +	local iface="w2dezap"
> +	if [ "$channel" -gt "14" ]; then
> +		iface="w5dezap"
> +	fi
> +	uci batch <<-__EOF__
> +		set wireless.${iface}='wifi-iface'
> +		set wireless.${iface}.device='${radio}'
> +		set wireless.${iface}.network='dezkey'
> +		set wireless.${iface}.ifname='${iface}'
> +		set wireless.${iface}.mode='ap'
> +		set wireless.${iface}.ssid='${essid}'
> +		set wireless.${iface}.encryption='none'
> +		set wireless.${iface}.hidden='1'
> +		set network.dezkey=interface
> +		set network.dezkey.proto='static'
> +		set network.dezkey.ipaddr='192.168.214.1'
> +		set network.dezkey.netmask='255.255.255.0'
> +
> +		commit wireless
> +	__EOF__
> +
> +	echo "${iface}"
> +}
>
Christian Dresel Aug. 13, 2017, 2:33 p.m.
hi

hab mich mittlerweile mit einen Laptop verbunden und mir statisch eine
v4 gegeben und konnte per http-v4 auf den Router zugreifen. Mit den
weiteren gerade geschickten Patch, kommt man dann auch an die Hoodfiles ran.

Muss jetzt nur noch getestet werden ob es auch erfolgreich durchbaut,
sowie der Client der sich die Hoodfiles holt muss erstellt werden.

mfg

Christian

On 13.08.2017 08:54, Christian Dresel wrote:
> hi
> 
> vergessen zu sagen, ich hab das Ding bisher weder durchgebaut noch hab
> ich mich auf dem AP verbunden, ich hab es nur mal eben händisch in einen
> schon laufenden Router laufen lassen und geguckt ob das Interface da ist
> und die IP hat, daher RFC. Muss noch richtig getestet werden und der
> uhttpd muss natürlich auch noch konfiguriert werden im nächsten Schritt.
> 
> mfg
> 
> Christian
> 
> On 13.08.2017 08:50, Christian Dresel wrote:
>> and fix a little variable bug in 60-fff-wireless
>>
>> Signed-off-by: Christian Dresel <fff@chrisi01.de>
>> ---
>>  .../files/etc/uci-defaults/60-fff-wireless         |  9 ++++--
>>  .../fff-wireless/files/lib/functions/fff/wireless  | 35 +++++++++++++++++++++-
>>  2 files changed, 41 insertions(+), 3 deletions(-)
>>
>> diff --git a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
>> index 59239b3..a3de470 100644
>> --- a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
>> +++ b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
>> @@ -30,12 +30,17 @@ for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
>>  	fi
>>  
>>  	if ! wifiAddAP "$radio" "$ESSID_AP"; then
>> -		echo "Can't add AP interface on $radio0."
>> +		echo "Can't add AP interface on $radio."
>> +		exit 1
>> +	fi
>> +
>> +	if ! wifiAddDezAP "$radio" "config.franken.freifunk.net"; then
>> +		echo "Can't add AP interface on $radio."
>>  		exit 1
>>  	fi
>>  
>>  	if ! wifiAddAdHocMesh "$radio" "$ESSID_MESH" "$BSSID_MESH"; then
>> -		echo "Can't add AP interface on $radio0."
>> +		echo "Can't add AP interface on $radio."
>>  		exit 1
>>  	fi
>>  done
>> diff --git a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
>> index 59c8ce2..d99507f 100644
>> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
>> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
>> @@ -114,4 +114,37 @@ wifiAddAP() {
>>  	echo "${iface}"
>>  }
>>  
>> -# vim: set noexpandtab:tabstop=4
>> +wifiAddDezAP() {
>> +	if [ $# -ne "2" ]
>> +	then
>> +		echo "Usage: wifiAdddezAP <radio> <essid>"
>> +		return 1
>> +	fi
>> +
>> +	local radio=$1
>> +	local essid=$2
>> +
>> +	local channel=$(uci get "wireless.${radio}.channel")
>> +	local iface="w2dezap"
>> +	if [ "$channel" -gt "14" ]; then
>> +		iface="w5dezap"
>> +	fi
>> +	uci batch <<-__EOF__
>> +		set wireless.${iface}='wifi-iface'
>> +		set wireless.${iface}.device='${radio}'
>> +		set wireless.${iface}.network='dezkey'
>> +		set wireless.${iface}.ifname='${iface}'
>> +		set wireless.${iface}.mode='ap'
>> +		set wireless.${iface}.ssid='${essid}'
>> +		set wireless.${iface}.encryption='none'
>> +		set wireless.${iface}.hidden='1'
>> +		set network.dezkey=interface
>> +		set network.dezkey.proto='static'
>> +		set network.dezkey.ipaddr='192.168.214.1'
>> +		set network.dezkey.netmask='255.255.255.0'
>> +
>> +		commit wireless
>> +	__EOF__
>> +
>> +	echo "${iface}"
>> +}
>>
> 
> 
>
Adrian Schmutzler Aug. 16, 2017, 2:37 p.m.
Hallo,

kleine Anmerkungen:
Die Fehlermeldungen sollten spezifizieren, um welches Interface es sich
handelt, also:
echo "Can't add AP interface on $radio."
echo "Can't add Mesh interface on $radio."
echo "Can't add Config interface on $radio."
o.ä.

Außerdem:
Wenn es "$ESSID_AP" und "$ESSID_MESH" gibt, sollte man dann nicht an
gleicher Stelle auch z.B. "$ESSID_CONFIG" definieren, statt plötzlich die
SSID hardzucoden?

Beim anderen Patch-Vorschlag ist das ja zumindest für das Mesh so
implementiert.

Ich würde diesen Patch bevorzugen; ist zwar etwas mehr Code, aber deutlich
klarer. (Bin nicht im Detail durchgegangen)

Grüße

Adrian

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Christian Dresel
> Sent: Sonntag, 13. August 2017 08:51
> To: franken-dev@freifunk.net
> Subject: [RFC] Add hidden AP for dez. keyxchange
> 
> and fix a little variable bug in 60-fff-wireless
> 
> Signed-off-by: Christian Dresel <fff@chrisi01.de>
> ---
>  .../files/etc/uci-defaults/60-fff-wireless         |  9 ++++--
>  .../fff-wireless/files/lib/functions/fff/wireless  | 35
> +++++++++++++++++++++-
>  2 files changed, 41 insertions(+), 3 deletions(-)
> 
> diff --git
a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
> b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
> index 59239b3..a3de470 100644
> --- a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
> +++ b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
> @@ -30,12 +30,17 @@ for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
>  	fi
> 
>  	if ! wifiAddAP "$radio" "$ESSID_AP"; then
> -		echo "Can't add AP interface on $radio0."
> +		echo "Can't add AP interface on $radio."
> +		exit 1
> +	fi
> +
> +	if ! wifiAddDezAP "$radio" "config.franken.freifunk.net"; then
> +		echo "Can't add AP interface on $radio."
>  		exit 1
>  	fi
> 
>  	if ! wifiAddAdHocMesh "$radio" "$ESSID_MESH" "$BSSID_MESH";
> then
> -		echo "Can't add AP interface on $radio0."
> +		echo "Can't add AP interface on $radio."
>  		exit 1
>  	fi
>  done
> diff --git
a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> index 59c8ce2..d99507f 100644
> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> @@ -114,4 +114,37 @@ wifiAddAP() {
>  	echo "${iface}"
>  }
> 
> -# vim: set noexpandtab:tabstop=4
> +wifiAddDezAP() {
> +	if [ $# -ne "2" ]
> +	then
> +		echo "Usage: wifiAdddezAP <radio> <essid>"
> +		return 1
> +	fi
> +
> +	local radio=$1
> +	local essid=$2
> +
> +	local channel=$(uci get "wireless.${radio}.channel")
> +	local iface="w2dezap"
> +	if [ "$channel" -gt "14" ]; then
> +		iface="w5dezap"
> +	fi
> +	uci batch <<-__EOF__
> +		set wireless.${iface}='wifi-iface'
> +		set wireless.${iface}.device='${radio}'
> +		set wireless.${iface}.network='dezkey'
> +		set wireless.${iface}.ifname='${iface}'
> +		set wireless.${iface}.mode='ap'
> +		set wireless.${iface}.ssid='${essid}'
> +		set wireless.${iface}.encryption='none'
> +		set wireless.${iface}.hidden='1'
> +		set network.dezkey=interface
> +		set network.dezkey.proto='static'
> +		set network.dezkey.ipaddr='192.168.214.1'
> +		set network.dezkey.netmask='255.255.255.0'
> +
> +		commit wireless
> +	__EOF__
> +
> +	echo "${iface}"
> +}
> --
> 2.1.4
> 
> --
> franken-dev mailing list
> franken-dev@freifunk.net
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
Christian Dresel Aug. 16, 2017, 3:47 p.m.
hi

> Adrian Schmutzler <mail@adrianschmutzler.de> hat am 16. August 2017 um 16:37
> geschrieben:
> 
> Hallo,
> 
> kleine Anmerkungen:
> Die Fehlermeldungen sollten spezifizieren, um welches Interface es sich
> handelt, also:
> echo "Can't add AP interface on $radio."
> echo "Can't add Mesh interface on $radio."
> echo "Can't add Config interface on $radio."
> o.ä.

gebe ich dir recht, ist mir erst in der 2. Version aufgefallen das dies noch
etwas schief ist, kann man dann mit fixen ja (das Mesh gabs ja bereits und hab
nicht ich angelegt)

> 
> Außerdem:
> Wenn es "$ESSID_AP" und "$ESSID_MESH" gibt, sollte man dann nicht an
> gleicher Stelle auch z.B. "$ESSID_CONFIG" definieren, statt plötzlich die
> SSID hardzucoden?

Das wird eh noch bisschen problematisch, die /etc/community.cfg wird, sofern ich
mich recht erinnere, mit dem dez. KeyXchange abgeschafft. Von daher muss man
diesen Teil dann eh noch ein klein wenig überarbeiten (oder wurde das mit den
dez. keyxchange Patches schon gemacht, zefix hätte ich mal prüfen sollen...). Da
es sich aber um ein config Netz handelt, das immer immer immer (immer immer
immer.... immer) immer ... immer gleich sein muss seh ich da hardcoden weniger
als Problem an.

> 
> Beim anderen Patch-Vorschlag ist das ja zumindest für das Mesh so
> implementiert.

sie oben ist mir erst in der 2. Version aufgefallen.

> 
> Ich würde diesen Patch bevorzugen; ist zwar etwas mehr Code, aber deutlich
> klarer. (Bin nicht im Detail durchgegangen)

Mich stört daran halt, das eine eigentlich bereits vorhandene Funktion die
eigentlich genau dafür da ist soviele APs anzulegen wie man möchte und nur
richtig aufgerufen werden muss, ein zweites mal geschrieben wird, so machen
Funktionen dann irgendwie auch wieder keinen Sinn. Klarer finde ich es auch aber
von der Struktur eigentlich "falsch".

mfg

Christian

> 
> Grüße
> 
> Adrian
> 
> > -----Original Message-----
> > From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> > Of Christian Dresel
> > Sent: Sonntag, 13. August 2017 08:51
> > To: franken-dev@freifunk.net
> > Subject: [RFC] Add hidden AP for dez. keyxchange
> > 
> > and fix a little variable bug in 60-fff-wireless
> > 
> > Signed-off-by: Christian Dresel <fff@chrisi01.de>
> > ---
> > .../files/etc/uci-defaults/60-fff-wireless | 9 ++++--
> > .../fff-wireless/files/lib/functions/fff/wireless | 35
> > +++++++++++++++++++++-
> > 2 files changed, 41 insertions(+), 3 deletions(-)
> > 
> > diff --git
> a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
> > b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
> > index 59239b3..a3de470 100644
> > --- a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
> > +++ b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
> > @@ -30,12 +30,17 @@ for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
> > fi
> > 
> > if ! wifiAddAP "$radio" "$ESSID_AP"; then
> > - echo "Can't add AP interface on $radio0."
> > + echo "Can't add AP interface on $radio."
> > + exit 1
> > + fi
> > +
> > + if ! wifiAddDezAP "$radio" "config.franken.freifunk.net"; then
> > + echo "Can't add AP interface on $radio."
> > exit 1
> > fi
> > 
> > if ! wifiAddAdHocMesh "$radio" "$ESSID_MESH" "$BSSID_MESH";
> > then
> > - echo "Can't add AP interface on $radio0."
> > + echo "Can't add AP interface on $radio."
> > exit 1
> > fi
> > done
> > diff --git
> a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > index 59c8ce2..d99507f 100644
> > --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > @@ -114,4 +114,37 @@ wifiAddAP() {
> > echo "${iface}"
> > }
> > 
> > -# vim: set noexpandtab:tabstop=4
> > +wifiAddDezAP() {
> > + if [ $# -ne "2" ]
> > + then
> > + echo "Usage: wifiAdddezAP  "
> > + return 1
> > + fi
> > +
> > + local radio=$1
> > + local essid=$2
> > +
> > + local channel=$(uci get "wireless.${radio}.channel")
> > + local iface="w2dezap"
> > + if [ "$channel" -gt "14" ]; then
> > + iface="w5dezap"
> > + fi
> > + uci batch <<-__EOF__
> > + set wireless.${iface}='wifi-iface'
> > + set wireless.${iface}.device='${radio}'
> > + set wireless.${iface}.network='dezkey'
> > + set wireless.${iface}.ifname='${iface}'
> > + set wireless.${iface}.mode='ap'
> > + set wireless.${iface}.ssid='${essid}'
> > + set wireless.${iface}.encryption='none'
> > + set wireless.${iface}.hidden='1'
> > + set network.dezkey=interface
> > + set network.dezkey.proto='static'
> > + set network.dezkey.ipaddr='192.168.214.1'
> > + set network.dezkey.netmask='255.255.255.0'
> > +
> > + commit wireless
> > + __EOF__
> > +
> > + echo "${iface}"
> > +}
> > --
> > 2.1.4
> > 
> > --
> > franken-dev mailing list
> > franken-dev@freifunk.net
> > http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net

>