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

Robert Langhammer rlanghammer at web.de
Do Okt 19 11:05:08 CEST 2017


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



Mehr Informationen über die Mailingliste franken-dev