Skip to content
Snippets Groups Projects
Select Git revision
  • 4606fe89cb4151cb0f6bccd06d39dd4cac4a9ac4
  • experimental default protected
  • v2023.2.5-ffs
  • nrb/ex400-remove-wps
  • nrb/airmax-test
  • v2023.2.4-ffs
  • nrb/ar9344-reset-sequence
  • autinerd/experimental-openwrt-24.10
  • v2023.2.3-ffs
  • v2023.2.2-ffs
  • v2023.2-ffs
  • v2023.1-ffs
  • v2022.1.4-ffs
  • feature/addMikrotikwAP
  • v2022.1.3-ffs
  • v2021.1.2-ffs
  • v2022.1.1-ffs
  • master protected
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • experimental-2025-07-04
  • experimental-2025-07-04-base
  • experimental-2025-07-01
  • experimental-2025-07-01-base
  • experimental-2025-06-25
  • experimental-2025-06-25-base
  • experimental-2025-06-24
  • experimental-2025-06-24-base
  • experimental-2025-06-22
  • experimental-2025-06-22-base
  • v2023.2.5-ffs0.1
  • experimental-2025-06-08
  • experimental-2025-06-08-base
  • experimental-2025-06-06
  • experimental-2025-06-06-base
  • experimental-2025-05-27
  • experimental-2025-05-27-base
  • experimental-2025-05-18
  • experimental-2025-05-18-base
  • experimental-2025-05-15
41 results

container.sh

Blame
  • ffs-set-segment 1.30 KiB
    #!/bin/sh
    ME=$(basename $0)
    if [ $(ps | grep -c "{$(basename $0)}") -gt 4 ]; then
      logger -s -t $ME "started twice"
      exit 1
    fi
    if [ $(ps | grep -c "fastd") -lt 2 ]; then
      logger -t $ME "fastd not running"
      exit 0
    fi
    if [ "$(uci get fastd.mesh_vpn_backbone.auto_segment)" = "0" ]; then
      logger -t $ME "auto_segment disabled"
      exit 0
    fi
    
    NODEID=$(uci get network.bat0.macaddr | sed 's/://g')
    PUBKEY=$(/etc/init.d/fastd show_key mesh_vpn | cut -c1-12)
    SEGINFO=$(nslookup ffs-$NODEID-$PUBKEY.segassign.freifunk-stuttgart.de  [::1]:54 | grep "2001:2:0:711::")
    if [ -z "$SEGINFO" ]; then
      logger -t $ME "Node not known"
      exit 1
    fi
    SEGINFO=${SEGINFO/Address 1: 2001:2:0:711::/}
    SEGMENT=$(echo $SEGINFO | cut -d':' -f2)
    let PORT=SEGMENT+10040
    if [ -z "$PORT" ]; then
      logger -t $ME "No port"
      exit 1
    fi
    
    SEGNUM=$(printf "%02d" $SEGMENT)
    CHANGED=0
    for i in `seq 1 10`;
    do
      GW=$(printf "gw%02d" $i)
      OLDPEER=$(uci get fastd.mesh_vpn_backbone_peer_$GW.remote)
      NEWPEER="\"${GW}s$SEGNUM.gw.freifunk-stuttgart.de\" port $PORT"
    
      if [ "$NEWPEER" != "$OLDPEER" ]; then
        uci set fastd.mesh_vpn_backbone_peer_$GW.remote="$NEWPEER"
        CHANGED=1
      fi
    done
    
    if [ "$CHANGED" = "1" ]; then
      /sbin/ifdown client
      /etc/init.d/fastd restart
      /sbin/ifup client
      logger -t $ME "Set Segment: $SEGNUM"
    else
      logger -t $ME "No changes"
    fi