diff --git a/data/etc/NetworkManager/dispatcher.d/10-freedombox-batman b/data/etc/NetworkManager/dispatcher.d/10-freedombox-batman new file mode 100755 index 000000000..d528eba42 --- /dev/null +++ b/data/etc/NetworkManager/dispatcher.d/10-freedombox-batman @@ -0,0 +1,44 @@ +#!/bin/bash +# +# This file is part of Plinth. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +set -e # Exit with code on error + +IFACE="$1" +ACTION="$2" + +if [[ "$CONNECTION_ID" != *"BATMAN"* ]]; then + exit 0 +fi + +case ${ACTION} in + up) + logger "Setting up B.A.T.M.A.N. Advanced on interface $IFACE" + ip link set mtu 1560 dev ${IFACE} + modprobe batman-adv + echo "bat0" > /sys/class/net/${IFACE}/batman_adv/mesh_iface + ip link set up dev bat0 + ;; + down) + logger "Clearing B.A.T.M.A.N. Advanced on interface $IFACE" + ip link set down dev bat0 + echo "none" > /sys/class/net/${IFACE}/batman_adv/mesh_iface + ip link set mtu 1500 dev ${IFACE} + ;; + *) + ;; +esac diff --git a/setup.py b/setup.py index efcd9432d..c4d3afd66 100755 --- a/setup.py +++ b/setup.py @@ -205,6 +205,8 @@ setuptools.setup( glob.glob('data/etc/apache2/sites-available/*.conf')), ('/etc/ikiwiki', glob.glob('data/etc/ikiwiki/*.setup')), + ('/etc/NetworkManager/dispatcher.d/', + ['data/etc/NetworkManager/dispatcher.d/10-freedombox-batman']), ('/etc/sudoers.d', ['data/etc/sudoers.d/plinth']), ('/lib/systemd/system', ['data/lib/systemd/system/plinth.service']),