<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.hoenzb
{mso-style-name:hoenzb;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=DE link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'>Ja und nein.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'>Ich habe gerade festgestellt, das $hostname nie ausgewertet wird ….<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'>Aber man kann sowas ja in den nodewatcher reinschreiben (werde ich mal prüfen), dann hätte das den gewünschten Effekt!<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'>Grüße<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'>Adrian<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><b><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri",sans-serif'> franken-dev [mailto:franken-dev-bounces@freifunk.net] <b>On Behalf Of </b>Mister Crumble<br><b>Sent:</b> Montag, 2. Oktober 2017 16:34<br><b>To:</b> Tim Niemeyer <tim@tn-x.org>; franken-dev <franken-dev@freifunk.net><br><b>Subject:</b> Re: [PATCH v10 4/4] Add fff-hoods<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>hallo, sehe ich das richtig und ihr habt gerade dafür gesorgt, das neue router nicht immer nur stumpd openwrt/lede heissen?<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>wenn ja, DANKE! dann brauche ich mir nicht mehr überlegen wie das geht ;-)<o:p></o:p></p></div></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>2017-10-02 16:19 GMT+02:00 Tim Niemeyer <<a href="mailto:tim@tn-x.org" target="_blank">tim@tn-x.org</a>>:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><p class=MsoNormal>Hi<o:p></o:p></p><div><div><p class=MsoNormal style='margin-bottom:12.0pt'><br><br>Am Sonntag, den 01.10.2017, 19:57 +0200 schrieb Christian Dresel:<br>> hi<br>><br>> hab grad recht wenig Zeit aber hier wird grad $Kram diskutiert daher bin<br>> ich die Mail mal eben überflogen und paar Kommentare Inline.<br>><br>> On 01.10.2017 16:05, <a href="mailto:mail@adrianschmutzler.de">mail@adrianschmutzler.de</a> wrote:<br>> > Hallo,<br>> ><br>> > eine Fragen und Anmerkungen inline, die mir beim Ändern/Lesen aufgefallen<br>> > sind.<br>> ><br>> >> -----Original Message-----<br>> >> From: franken-dev [mailto:<a href="mailto:franken-dev-bounces@freifunk.net">franken-dev-bounces@freifunk.net</a>] On Behalf<br>> >> Of Adrian Schmutzler<br>> >> Sent: Sonntag, 1. Oktober 2017 15:49<br>> >> To: <a href="mailto:franken-dev@freifunk.net">franken-dev@freifunk.net</a><br>> >> Cc: Jan Kraus <<a href="mailto:mayosemmel@gmail.com">mayosemmel@gmail.com</a>><br>> >> Subject: [PATCH v10 4/4] Add fff-hoods<br>> >><br>> >> From: Christian Dresel <<a href="mailto:fff@chrisi01.de">fff@chrisi01.de</a>><br>> >><br>> >> this packages connect to keyxchangev2<br>> >> after review we must change the serveradress! This is only a example<br>> >><br>> >> Signed-off-by: Christian Dresel <<a href="mailto:fff@chrisi01.de">fff@chrisi01.de</a>><br>> >> Signed-off-by: Jan Kraus <<a href="mailto:mayosemmel@gmail.com">mayosemmel@gmail.com</a>><br>> >> Signed-off-by: Adrian Schmutzler <<a href="mailto:freifunk@adrianschmutzler.de">freifunk@adrianschmutzler.de</a>><br>> >><br>> >> Update in v2:<br>> >> - clean tabstops<br>> >> - move the json vpn out of the if because we need this after reboot<br>> >><br>> >> Update in v5:<br>> >> !!UNTESTED!!<br>> >> - change hidden AP ip to locallink<br>> >> - Open hidden AP after more checks<br>> >> - Load json File from Gateway if Gateway in Batman in Range<br>> >><br>> >> Update in v6:<br>> >> !!UNTESTED!!<br>> >> - fix hidden station v6<br>> >> - fix -n to -f if<br>> >> - Add function to check for a gateway and use this<br>> >> - remove /etc/community.cfg and variables<br>> >> - send fewer infos to keyxchangev2<br>> >> - add a check if /tmp/keyxchangev2 not downloadable and edit a bit on<br>> > the<br>> >> wgets<br>> >> - change the position from json_load and do this only 1 times<br>> >><br>> >> Update in v7:<br>> >> !!UNTESTED!!<br>> >> - delete keyxchangev2data at start of the script<br>> >> - do only things with keyxchangev2data if available<br>> >> - change keyxchangev2 url<br>> >><br>> >> Update in v8/v9:<br>> >> - rebase onto 20170918-beta<br>> >><br>> >> Update in v10:<br>> >> - Minor code fixes<br>> >> - Added fff-hoods to fff-base Makefile<br>> >> - Removed trailing whitespaces and harmonized tabs<br>> >> - Fixed some comments spelling<br>> >> - Added mac for hostname rewrite<br>> >> - Removed redundant check for /tmp/keyxchangev2data<br>> >> ---<br>> >> src/packages/fff/fff-hoods/Makefile | 39 ++++<br>> >> .../files/etc/hotplug.d/iface/50-fff-hoods | 5 +<br>> >> .../fff/fff-hoods/files/usr/lib/micron.d/fff-hoods | 1 +<br>> >> .../fff/fff-hoods/files/usr/sbin/configurehood | 206<br>> >> +++++++++++++++++++++<br>> >> src/packages/fff/fff/Makefile | 3 +-<br>> >> 5 files changed, 253 insertions(+), 1 deletion(-) create mode 100644<br>> >> src/packages/fff/fff-hoods/Makefile<br>> >> create mode 100644 src/packages/fff/fff-<br>> >> hoods/files/etc/hotplug.d/iface/50-fff-hoods<br>> >> create mode 100644 src/packages/fff/fff-hoods/files/usr/lib/micron.d/fff-<br>> >> hoods<br>> >> create mode 100755 src/packages/fff/fff-<br>> >> hoods/files/usr/sbin/configurehood<br>> >><br>> >> diff --git a/src/packages/fff/fff-hoods/Makefile b/src/packages/fff/fff-<br>> >> hoods/Makefile<br>> >> new file mode 100644<br>> >> index 0000000..f85178d<br>> >> --- /dev/null<br>> >> +++ b/src/packages/fff/fff-hoods/Makefile<br>> >> @@ -0,0 +1,39 @@<br>> >> +include $(TOPDIR)/<a href="http://rules.mk" target="_blank">rules.mk</a><br>> >> +<br>> >> +PKG_NAME:=fff-hoods<br>> >> +PKG_VERSION:=0.0.1<br>> >> +PKG_RELEASE:=1<br>> >> +<br>> >> +PKG_BUILD_DIR:=$(BUILD_DIR)/fff-hoods<br>> >> +<br>> >> +include $(INCLUDE_DIR)/<a href="http://package.mk" target="_blank">package.mk</a><br>> >> +<br>> >> +define Package/fff-hoods<br>> >> + SECTION:=base<br>> >> + CATEGORY:=Freifunk<br>> >> + TITLE:= Freifunk-Franken hoods<br>> >> + URL:=<a href="http://www.freifunk-franken.de" target="_blank">http://www.freifunk-franken.de</a><br>> >> + DEPENDS:=+fff-network<br>> >> +endef<br>> >> +<br>> >> +define Package/fff-hoods/description<br>> >> + This package load and configures the current hood endef<br>> >> +<br>> >> +define Build/Prepare<br>> >> + echo "all: " > $(PKG_BUILD_DIR)/Makefile endef<br>> >> +<br>> >> +define Build/Configure<br>> >> + # nothing<br>> >> +endef<br>> >> +<br>> >> +define Build/Compile<br>> >> + # nothing<br>> >> +endef<br>> >> +<br>> >> +define Package/fff-hoods/install<br>> >> + $(CP) ./files/* $(1)/<br>> >> +endef<br>> >> +<br>> >> +$(eval $(call BuildPackage,fff-hoods))<br>> >> diff --git<br>> > a/src/packages/fff/fff-hoods/files/etc/hotplug.d/iface/50-fff-hoods<br>> >> b/src/packages/fff/fff-hoods/files/etc/hotplug.d/iface/50-fff-hoods<br>> >> new file mode 100644<br>> >> index 0000000..49f53e3<br>> >> --- /dev/null<br>> >> +++ b/src/packages/fff/fff-hoods/files/etc/hotplug.d/iface/50-fff-hoods<br>> >> @@ -0,0 +1,5 @@<br>> >> +#!/bin/sh<br>> >> +[ "$ACTION" = "ifup" -a "$INTERFACE" = "wan" ] && {<br>> >> + sleep 3<br>> >> + /usr/sbin/configurehood<br>> >> +}<br>> >> diff --git a/src/packages/fff/fff-hoods/files/usr/lib/micron.d/fff-hoods<br>> >> b/src/packages/fff/fff-hoods/files/usr/lib/micron.d/fff-hoods<br>> >> new file mode 100644<br>> >> index 0000000..ca8d798<br>> >> --- /dev/null<br>> >> +++ b/src/packages/fff/fff-hoods/files/usr/lib/micron.d/fff-hoods<br>> >> @@ -0,0 +1 @@<br>> >> +*/5 * * * * /usr/sbin/configurehood<br>> >> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood<br>> >> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood<br>> >> new file mode 100755<br>> >> index 0000000..ad316f8<br>> >> --- /dev/null<br>> >> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood<br>> >> @@ -0,0 +1,206 @@<br>> >> +#!/bin/sh<br>> >> +<br>> >> +. /usr/share/libubox/jshn.sh<br>> >> +. /lib/functions/fff/wireless<br>> >> +<br>> >> +rm /tmp/keyxchangev2data<br>> >> +<br>> >> +# Gatewaycheck function<br>> >> +isGatewayAvailable() {<br>> >> + if [ "$(batctl gwl | wc -l)" -gt 2 ]; then<br>> >> + return true;<br>> >> + else<br>> >> + return false;<br>> >> + fi<br>> >> +}<br>> >> +<br>> >> +<br>> >> +# Hidden AP check<br>> >> +<br>> >> +if [ -f /tmp/hiddenapflag ]; then<br>> >> + if [ isGatewayAvailable ]; then<br>> >> + if ! wifiAddAP "$radio" "<a href="http://config.franken.freifunk.net" target="_blank">config.franken.freifunk.net</a>"<br>> >> "configap" "configap" "1"; then<br>> >> + echo "Can't add AP interface on $radio."<br>> >> + exit 1<br>> >> + else<br>> >> + # We must set a fixed ip address here<br>> >> + uci set network.configap=interface<br>> >> + uci set network.configap.proto='static'<br>> >> + uci set network.configap.ip6addr='fe80::1/64'<br>> >> + uci commit network<br>> >> + fi<br>> >> + else<br>> >> + rm /tmp/hiddenapflag<br>> >> + fi<br>> >> +fi<br>> > Warum steht dieser ganze Block am Anfang und nicht am Schluss des Skripts?<br>> > Hat das einen Grund, dass der immer einen Zyklus warten soll?<br>> genau, Batman hat ein Timeout das wollen wir damit abfangen damit erst<br>> im 2. Zyklus wirklich der hidden AP geöffnet wird. Es muss also 5min<br>> eine Verbindung zum GW bestehen.<br>> ><br>> ><br>> ><br>> >> +<br>> >> +<br>> >> +lat=$(uci get <a href="mailto:system.@system[0].latitude">system.@system[0].latitude</a>) long=$(uci get<br>> >> <a href="mailto:+system.@system[0].longitude">+system.@system[0].longitude</a>) hostname=$(cat<br>> >> /proc/sys/kernel/hostname)<br>> >> +mac=$(awk '{ mac=toupper($1); gsub(":", "", mac); print mac }'<br>> > Hier hab ich die Mac ergänzt.<br>> das war einfach nur C&P<br>> ><br>> >> +/sys/class/net/br-mesh/address 2>/dev/null) [ "$hostname" = "OpenWrt" ]<br>> >> && hostname=""<br>> >> +[ "$hostname" = "" ] && hostname="$mac"<br>> > Wozu ist das gut? Sollte man das auf LEDE ändern?<br>> hab ich einfach nur C&P aus den fff-vpn. Bin mir grad recht unsicher<br>> wofür es nötig ist.<o:p></o:p></p></div></div><p class=MsoNormal>Das ist damit nicht alle Knoten am KeyXchange "OpenWRT" heißen.<br><br>Ja, das sollte man ändern. :) Good Catch!<o:p></o:p></p><div><div><p class=MsoNormal style='margin-bottom:12.0pt'><br>> ><br>> >> +<br>> >> +test_ipv4_host1="<a href="http://keyserver.freifunk-franken.de" target="_blank">keyserver.freifunk-franken.de</a>" # Freifunk-Franken<br>> >> keyserver<br>> >> +test_ipv4_host2="8.8.8.8" # Google DNS<br>> >> +test_ipv6_host1="<a href="http://heise.de" target="_blank">heise.de</a>" # heise Zeitschriftenverlag<br>> >> +<br>> >> +# if we have Internet, we download the Hoodfile from the keyxchangev2<br>> >> +if ping -w5 -c3 "$test_ipv4_host1" &>/dev/null ||<br>> >> + ping -w5 -c3 "$test_ipv4_host2" &>/dev/null ||<br>> >> + ping6 -w5 -c3 "$test_ipv6_host1" &>/dev/null; then<br>> >> + wget -T15 -t5 "<a href="http://keyserver.freifunk-" target="_blank">http://keyserver.freifunk-</a><br>> >> <a href="http://franken.de/v2/?lat=$lat&long=$long" target="_blank">franken.de/v2/?lat=$lat&long=$long</a>" -O /tmp/keyxchangev2data<br>> >> + #if no Internet, we connect to the hidden AP and download the file<br>> >> +from another Node in range else<br>> >> + # connect to wireless hidden ap here and download the json File<br>> >> from the nearest router<br>> >> + # Only do that, when we have no gateway in range. If the<br>> >> Uplinkrouter changed the hood, we lost the GW and do this automatically<br>> >> again, I think! Nice idea?<br>> >> + if [ ! isGatewayAvailable ]; then<br>> >> + #now we haven't a gateway in Range, we search for a hidden<br>> >> AP to get a keyxchangev2data file!<br>> >> + #first we delete all wifi settings<br>> >> + if ! wifiDelAll; then<br>> >> + echo "Can't delete current wifi setup"<br>> >> + exit 1<br>> >> + fi<br>> >> + #now we look for phy and add this<br>> >> + for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do<br>> >> + if iw phy "$phy" info | grep -q -m1 "2... MHz"; then<br>> >> + echo "$phy is 2.4 GHz"<br>> >> + radio=$(wifiAddPhy "$phy"<br>> >> "$BATMAN_CHANNEL")<br>> >> + if [ -z "$radio" ]; then<br>> >> + echo "Can't create radio for $phy"<br>> >> + exit 1<br>> >> + fi<br>> >> + fi<br>> >> + if iw phy "$phy" info | grep -q -m1 "5... MHz"; then<br>> >> + echo "$phy is 5 GHz"<br>> >> + radio=$(wifiAddPhy "$phy"<br>> >> "$BATMAN_CHANNEL_5GHZ")<br>> >> + if [ -z "$radio" ]; then<br>> >> + echo "Can't create radio for $phy"<br>> >> + exit 1<br>> >> + fi<br>> >> + fi<br>> > Hier werden Variablen aus der community.cfg verwendet ($BATMAN...), unten<br>> > ist hardgecodet. Das hier auch hardcoden?<br>> macht vermutlich Sinn, weil wir die /etc/community.cfg eh abschaffen wollen.<o:p></o:p></p></div></div><p class=MsoNormal>Richtig. Die Daten kommen ja (später mal) aus dem json hood file. Bis<br>dahin sind sie halt hart kodiert. Um einen Übergang leichter zu machen<br>könnte man überlegen, on man die Werte vielleicht einer Konstangen<br>zuweist und diesen dann entsprechend verwendet. Das hätte den Vorteil,<br>dass die Umstellung dann später einfacher wird.<o:p></o:p></p><div><div><p class=MsoNormal style='margin-bottom:12.0pt'><br>> ><br>> ><br>> >> + #and here we add the station<br>> >> + if ! wifiAddSta "$radio"<br>> > "<a href="http://config.franken.freifunk.net" target="_blank">config.franken.freifunk.net</a>"<br>> >> "configSta"; then<br>> >> + echo "Can't add Sta interface on $radio."<br>> >> + exit 1<br>> >> + fi<br>> >> +<br>> >> + done<br>> >> +<br>> >> + wifi<br>> >> + # wait a moment to start the interface<br>> >> + sleep 10;<br>> >> + # and here we can download the Hoodfile from the other<br>> >> node<br>> >> + wget -T15 -t5 "<a href="http://[fe80::1%25w2sta]/keyxchangev2data">http://[fe80::1%w2sta]/keyxchangev2data</a>" -O<br>> >> /tmp/keyxchangev2data<br>> >> + else<br>> >> + echo "We have a Gateway in Range, we load the<br>> >> keyxchangev2data from fe80::1"<br>> >> + wget -T15 -t5 "<a href="http://[fe80::1%25br-mesh]/keyxchangev2data">http://[fe80::1%br-mesh]/keyxchangev2data</a>"<br>> >> -O /tmp/keyxchangev2data<br>> >> + fi<br>> >> +<br>> >> +fi<br>> >> +<br>> >> +if [ -s /tmp/keyxchangev2data ]; then<br>> >> +<br>> >> + # we get a json file in this format:<br>> >> + # <a href="https://pw.freifunk-franken.de/patch/205/" target="_blank">https://pw.freifunk-franken.de/patch/205/</a><br>> >> + # but without signature, every hood file we get is valid!<br>> >> +<br>> >> + json_load "$(cat /tmp/keyxchangev2data)"<br>> >> + sumnew=$(sha256sum /tmp/keyxchangev2data | cut -f1 -d " ")<br>> >> + sumold=$(sha256sum /www/public/keyxchangev2data &>/dev/null<br>> >> | cut -f1 -d " ")<br>> >> + if [ "$sumnew" != "$sumold" ]; then<br>> > Die zweite Abfrage mit [ ! -f /tmp/keyxchangev2data] macht irgendwie keinen<br>> > Sinn, da wir ja oben [ -s /tmp/keyxchangev2data ] schon geprüft haben?!<br>> das muss ich mir in Ruhe angucken, grad nicht viel Zeit stell ich mal<br>> zurück.<br>> ><br>> ><br>> >> + echo "New file detect, we reconfigure the Node";<br>> >> +<br>> >> + # copy the file to webroot so that other Meshrouter can<br>> >> download it<br>> >> + cp /tmp/keyxchangev2data /www/public/<br>> >> +<br>> >> + json_select hood<br>> >> +<br>> >> + json_get_var hood name<br>> >> + json_get_var mesh_bssid mesh_bssid<br>> >> + json_get_var mesh_essid mesh_essid<br>> >> + json_get_var essid essid<br>> >> + # i think the next things we don't active this in the first<br>> >> version! we can do it later<br>> >> + #json_get_var channel2 channel2<br>> >> + #json_get_var mode2 mode2<br>> >> + #json_get_var type2 type2<br>> >> + #json_get_var channel5 channel5<br>> >> + #json_get_var mode5 mode5<br>> >> + #json_get_var type5 type5<br>> >> + #json_get_var protocol protocol<br>> >> +<br>> >> + echo "Setting hood name: $hood"<br>> >> + uci set "<a href="mailto:system.@system[0].hood=$hood">system.@system[0].hood=$hood</a>"<br>> >> +<br>> >> + if ! wifiDelAll; then<br>> >> + echo "Can't delete current wifi setup"<br>> >> + exit 1<br>> >> + fi<br>> >> +<br>> >> + for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do<br>> >> + if iw phy "$phy" info | grep -q -m1 "2... MHz"; then<br>> >> + echo "$phy is 2.4 GHz"<br>> >> + radio=$(wifiAddPhy "$phy" "1")<br>> > Hier ist jetzt hardgecodet ... "1"<br>> interessant, vermutlich hab ich es oben einfach vergessen und wollt es<br>> wirklich überall hard coden weil eben /etc/community.cfg weg fällt.<br>> ><br>> ><br>> >> + if [ -z "$radio" ]; then<br>> >> + echo "Can't create radio for $phy"<br>> >> + exit 1<br>> >> + fi<br>> >> + fi<br>> >> + if iw phy "$phy" info | grep -q -m1 "5... MHz"; then<br>> >> + echo "$phy is 5 GHz"<br>> >> + radio=$(wifiAddPhy "$phy" "13")<br>> >> + if [ -z "$radio" ]; then<br>> >> + echo "Can't create radio for $phy"<br>> >> + exit 1<br>> >> + fi<br>> >> + fi<br>> >> +<br>> >> + if ! wifiAddAP "$radio" "$essid" "mesh" "ap" "0";<br>> > then<br>> >> + echo "Can't add AP interface on $radio."<br>> >> + exit 1<br>> >> + fi<br>> >> +<br>> >> + # here we set a bit for add hidden AP<br>> >> + touch /tmp/hiddenapflag<br>> >> +<br>> >> + if ! wifiAddAdHocMesh "$radio" "$mesh_essid"<br>> >> "$mesh_bssid"; then<br>> >> + echo "Can't add AP interface on $radio."<br>> >> + exit 1<br>> >> + fi<br>> >> + done<br>> >> +<br>> >> + echo "Loading wifi"<br>> >> + wifi<br>> >> +<br>> >> + else<br>> >> + echo "We have no new file or we haven't got a file. We do<br>> >> nothing. We try it again in 5 minutes...";<br>> > Meines Erachtens ist hier nur "We have no new file" erfüllt. Der andere Fall<br>> > wäre eine if weiter außen. Siehe [ ! -f /tmp/keyxchangev2data] ...<br>> muss ich mir auch mal in Ruhe angucken...<br>> ><br>> ><br>> >> + fi<br>> >> +<br>> >> + # and now we read the VPN Data and give this data to fff-vpn<br>> >> + json_load "$(cat /tmp/keyxchangev2data)"<br>> >> +<br>> >> + json_select vpn<br>> >> + Index="1"<br>> >> + rm /tmp/fastd_fff_output<br>> >> + touch /tmp/fastd_fff_output<br>> >> + while json_select $Index > /dev/null<br>> > Wieso while wenn nur ein Element "1"?<br>> es kann auch 2 oder 3 Gateways geben, deshalb muss man alle mit einer<br>> Schleife durchgehen oder?<br>> ><br>> ><br>> >> + do<br>> >> + json_get_var protocol protocol<br>> >> + if [ "$protocol" == "fastd" ]; then<br>> >> + json_get_var servername name<br>> >> + echo "####${servername}.conf" >><br>> >> /tmp/fastd_fff_output<br>> >> + echo "#name \"${servername}\";" >><br>> >> /tmp/fastd_fff_output<br>> >> + json_get_var key key<br>> >> + echo "key \"${key}\";" >> /tmp/fastd_fff_output<br>> >> + json_get_var address address<br>> >> + json_get_var port port<br>> >> + echo "remote ipv4 \"${address}\" port $port float;"<br>> >>>> /tmp/fastd_fff_output<br>> >> + fi<br>> >> + echo "" >> /tmp/fastd_fff_output<br>> >> + echo "###" >> /tmp/fastd_fff_output<br>> > Die beiden kommen ja nur einmal am Schluss, also müssen sie aus dem while<br>> > raus, oder?<br>> oh das muss ich mir auch nochmal in Ruhe angucken, mit 2 GWs hab ich das<br>> ganze noch nicht getestet, RedDog wollte das aber eh relativ zügig<br>> umbauen weil das Format einfach sh*t ist, besser ist wenn fff-vpn die<br>> json direkt ausliest.<o:p></o:p></p></div></div><p class=MsoNormal>Genau, ich würde ja auch lieber die Entscheidung, ob fastd oder<br>tunneldigger genommen wird auch nicht an einer per http download'baren<br>Datei festmachen, sondern hier nach dem json file entsprechend machen.<br><span style='color:#888888'><br><span class=hoenzb>Tim</span></span><o:p></o:p></p><div><div><p class=MsoNormal style='margin-bottom:12.0pt'><br><br>> mfg<br>><br>> Christian<br>> ><br>> > Grüße<br>> ><br>> > Adrian<br>> ><br>> ><br>> >> + done<br>> >> + #this we do every 5 minutes, because it can change the VPN Protocol<br>> >> + #and now we get to vpn-select Script and load VPNs<br>> >> + sh /usr/sbin/vpn-select<br>> >> +fi<br>> >> diff --git a/src/packages/fff/fff/Makefile b/src/packages/fff/fff/Makefile<br>> >> index 166d423..305ab8d 100644<br>> >> --- a/src/packages/fff/fff/Makefile<br>> >> +++ b/src/packages/fff/fff/Makefile<br>> >> @@ -29,7 +29,8 @@ define Package/fff-base<br>> >> +fff-wireless \<br>> >> +fff-timeserver \<br>> >> +fff-vpn-select \<br>> >> - +simple-tc<br>> >> + +simple-tc \<br>> >> + +fff-hoods<br>> >> endef<br>> >><br>> >> define Package/fff-base/description<br>> >> --<br>> >> 2.7.4<br>> >><br>> >> --<br>> >> franken-dev mailing list<br>> >> <a href="mailto:franken-dev@freifunk.net">franken-dev@freifunk.net</a><br>> >> <a href="http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net" target="_blank">http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net</a><br>><br>><br>> --<br>> franken-dev mailing list<br>> <a href="mailto:franken-dev@freifunk.net">franken-dev@freifunk.net</a><br>> <a href="http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net" target="_blank">http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net</a><o:p></o:p></p></div></div><p class=MsoNormal style='margin-bottom:12.0pt'><br>--<br>franken-dev mailing list<br><a href="mailto:franken-dev@freifunk.net">franken-dev@freifunk.net</a><br><a href="http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net" target="_blank">http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net</a><o:p></o:p></p></blockquote></div><p class=MsoNormal><o:p> </o:p></p></div></div></body></html>