<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>