[PATCH] consistently use same webserver port for hoodfile on wifi and lan

Fabian Bläse fabian at blaese.de
Do Okt 19 11:15:48 CEST 2017


Hallo Robert,

zwar besteht aktuell keine dringende Notwendigkeit, auf einen anderen Port auszuweichen, allerdings macht ein anderer Port die Konfiguration nicht kompliziert, erlaubt aber, für das Anbieten der hoodfile eine andere Software zu verwenden, als für normale Webseiten. Und da man dafür ggf. sogar andere Software verwenden MUSS und es sich bei der hoodfile um einen gänzlich anderen Dienst als Webseiten handelt, sollte meiner Ansicht nach auf jeden Fall ein anderer Port verwendet werden.
Die wirkliche Lösung für mehrere Hoods auf einem Gateway ist Software, die sich an ein Interface binden kann (wie von Christian erwähnt)

Fabian

> On 19. Oct 2017, at 11:05, Robert Langhammer <rlanghammer at web.de> wrote:
> 
> Hi,
> 
> ich bin immer noch dafür, den Port hier und auf br-mesh auf 80 zu lassen.
> 
> Der Druck vom Standard abzuweichen ist meines Erachtens nicht groß genug.
> 
> Ein echtes Problem taucht doch erst auf, wenn eine 2. Hood auf dem
> Gateway läuft. Und das hat man mit port 2345 auch, weil sämtliche httpd
> auf nen Unix Network socket lauschen, und da gibt's kein Interface. Man
> gewinnt also nicht wirklich was.
> 
> Dann lieber eine einfache Lösung am Gateway: Für jede Hood einen vhost
> auf [fe80::1]:XX und den Port pro batX umbiegen. Müsste man auch mit
> Port 2345 machen.
> 
> Robert
> 
> 
> Am 19.10.2017 um 10:19 schrieb Fabian Bläse:
>> Signed-off-by: Fabian Bläse <fabian at blaese.de>
>> ---
>> src/packages/fff/fff-hoods/files/lib/functions/fff/keyxchange |  4 ++--
>> src/packages/fff/fff-hoods/files/usr/sbin/configurehood       |  8 ++++----
>> src/packages/fff/fff-web/files/etc/uci-defaults/93-fff-uhttpd | 10 ++++++++++
>> src/packages/fff/fff-web/files/www/hood/.keep                 |  0
>> src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html      |  2 +-
>> 5 files changed, 17 insertions(+), 7 deletions(-)
>> create mode 100644 src/packages/fff/fff-web/files/www/hood/.keep
>> 
>> diff --git a/src/packages/fff/fff-hoods/files/lib/functions/fff/keyxchange b/src/packages/fff/fff-hoods/files/lib/functions/fff/keyxchange
>> index d7c2c13..a2fc651 100644
>> --- a/src/packages/fff/fff-hoods/files/lib/functions/fff/keyxchange
>> +++ b/src/packages/fff/fff-hoods/files/lib/functions/fff/keyxchange
>> @@ -6,8 +6,8 @@
>> 
>> getJsonPath() {
>> 	jsonfile=""
>> -	if [ -s /www/public/keyxchangev2data ] ; then
>> -		jsonfile="/www/public/keyxchangev2data"
>> +	if [ -s /www/hood/keyxchangev2data ] ; then
>> +		jsonfile="/www/hood/keyxchangev2data"
>> 	elif [ -s /tmp/keyxchangev2data ] ; then
>> 		jsonfile="/tmp/keyxchangev2data"
>> 	fi
>> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>> index 88f6f53..c47b251 100755
>> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>> @@ -70,7 +70,7 @@ else
>> 	if ! isGatewayAvailable ; then
>> 		#now we haven't a gateway in Range, we search for a hidden AP to get a keyxchangev2data file!
>> 		#first we delete all wifi settings
>> -		rm -f /www/public/keyxchangev2data # delete this, so interfaces are recreated if reconnect with unchanged hood file takes place
>> +		rm -f /www/hood/keyxchangev2data # delete this, so interfaces are recreated if reconnect with unchanged hood file takes place
>> 
>> 		if ! wifiDelAll; then
>> 			echo "Can't delete current wifi setup"
>> @@ -97,7 +97,7 @@ else
>> 		# wait a moment to start the interface
>> 		sleep 10;
>> 		# and here we can download the Hoodfile from the other node
>> -		wget -T15 -t5 "http://[fe80::1%w2sta]/keyxchangev2data" -O /tmp/keyxchangev2data
>> +		wget -T15 -t5 "http://[fe80::1%w2sta]:2342/keyxchangev2data" -O /tmp/keyxchangev2data
>> 	else
>> 		echo "We have a Gateway in Range, we load the keyxchangev2data from fe80::1"
>> 		wget -T15 -t5 "http://[fe80::1%br-mesh]:2342/keyxchangev2data" -O /tmp/keyxchangev2data
>> @@ -111,7 +111,7 @@ if [ -s /tmp/keyxchangev2data ]; then
>> 	# but without signature, every hood file we get is valid!
>> 
>> 	catnew="$(cat /tmp/keyxchangev2data | sed 's/"timestamp":[0-9]*/"timestamp":0/')"
>> -	catold="$(cat /www/public/keyxchangev2data 2>/dev/null | sed 's/"timestamp":[0-9]*/"timestamp":0/')"
>> +	catold="$(cat /www/hood/keyxchangev2data 2>/dev/null | sed 's/"timestamp":[0-9]*/"timestamp":0/')"
>> 	sumnew=$(echo "$catnew" | sha256sum | cut -f1 -d " ")
>> 	sumold=$(echo "$catold" | sha256sum | cut -f1 -d " ")
>> 
>> @@ -186,7 +186,7 @@ if [ -s /tmp/keyxchangev2data ]; then
>> 
>> 		# copy the file to webroot so that other Meshrouter can download it;
>> 		# copy only after all other steps so IF can be reentered if something goes wrong
>> -		cp /tmp/keyxchangev2data /www/public/
>> +		cp /tmp/keyxchangev2data /www/hood/
>> 
>> 	else
>> 		echo "We have no new file. We do nothing. We try it again in 5 minutes...";
>> diff --git a/src/packages/fff/fff-web/files/etc/uci-defaults/93-fff-uhttpd b/src/packages/fff/fff-web/files/etc/uci-defaults/93-fff-uhttpd
>> index 28ae2b5..42376ad 100644
>> --- a/src/packages/fff/fff-web/files/etc/uci-defaults/93-fff-uhttpd
>> +++ b/src/packages/fff/fff-web/files/etc/uci-defaults/93-fff-uhttpd
>> @@ -5,6 +5,7 @@ uci batch <<EOF
>>   delete uhttpd.public
>>   delete uhttpd.ssl
>>   delete uhttpd.px5g
>> +
>>   set uhttpd.public=uhttpd
>>   add_list uhttpd.public.listen_http='80'
>>   set uhttpd.public.home='/www/public'
>> @@ -14,6 +15,7 @@ uci batch <<EOF
>>   set uhttpd.public.network_timeout='30'
>>   set uhttpd.public.tcp_keepalive='1'
>>   set uhttpd.public.config='_'
>> +
>>   set uhttpd.ssl=uhttpd
>>   add_list uhttpd.ssl.listen_https='443'
>>   set uhttpd.ssl.home='/www/ssl'
>> @@ -29,6 +31,14 @@ uci batch <<EOF
>>   set uhttpd.px5g.days='1400'
>>   set uhttpd.px5g.bits='2048'
>>   set uhttpd.px5g.commonname='OpenWrt'
>> +
>> +  set uhttpd.hood=uhttpd
>> +  add_list uhttpd.hood.listen_http='2342'
>> +  set uhttpd.hood.home='/www/hood'
>> +  set uhttpd.hood.rfc1918_filter='1'
>> +  set uhttpd.hood.network_timeout='30'
>> +  set uhttpd.hood.tcp_keepalive='1'
>> +  set uhttpd.hood.config='_'
>> EOF
>> 
>> uci commit uhttpd
>> diff --git a/src/packages/fff/fff-web/files/www/hood/.keep b/src/packages/fff/fff-web/files/www/hood/.keep
>> new file mode 100644
>> index 0000000..e69de29
>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>> index cbce768..402670d 100755
>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>> @@ -5,7 +5,7 @@
>> if [ "$REQUEST_METHOD" == "POST" ] ; then
>> 	if [ "$POST_resethood" != "" ] ; then
>> 		# reset hood
>> -		rm /www/public/keyxchangev2data 2> /dev/null
>> +		rm /www/hood/keyxchangev2data 2> /dev/null
>> 		MSG='<span class="green">Hood-Daten werden innerhalb von 5 Minuten neu prozessiert.</span>'
>> 	fi
>> fi
> 
> --
> franken-dev mailing list
> franken-dev at freifunk.net <mailto:franken-dev at freifunk.net>
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net <http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20171019/67514689/attachment.html>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: Message signed with OpenPGP
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20171019/67514689/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev