5 # Copyright 2015 Lars Kruse <devel@sumpfralle.de>
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
11 # http://www.apache.org/licenses/LICENSE-2.0
15 .
"${IPKG_INSTROOT:-}/usr/lib/opennet/on-helper.sh"
20 echo
"$ifname" | sed
's/[^0-9a-zA-Z]/_/g'
24 setup_mesh_interface() {
27 netname=$(get_netname
"$ifname")
28 uci set
"network.${netname}=interface"
29 uci set
"network.${netname}.proto=none"
30 # wir duerfen das Interface nicht via uci hinzufuegen - andernfalls verliert das Interface durch netifd seine Konfiguration
32 #uci set
"network.${netname}.ifname=$ifname"
33 ubus call network reload
35 apply_changes network firewall
36 # indirekte Interface/Network-Zuordnung (siehe obigen Mailinglisten-Beitrag)
37 # Auf diesem Weg bleibt die IP-Konfiguration des Device erhalten.
38 local ubus_dev=
"network.interface.${netname}"
39 ubus call
"$ubus_dev" add_device
'{ "name": "'$ifname
'" }'
40 # die obige ubus-Aktion wird nebenlaeufig abgearbeitet - wir muessen das Ergebnis abwarten
41 ubus -t 10 wait_for
"$ubus_dev"
42 # expliziter olsrd-Neustart: eventuell sind noch Fragmente alter tap-Devices in
43 # der olsrd-Konfiguration eingetragen. Diese verhindern einen olsrd-Neustart,
44 # da es scheinbar keine Änderung gab.
45 /etc/init.d/olsrd restart
46 # ohne dieses explizite reload reagiert die firewall seltsamerweise nicht auf die neuen Interfaces
47 /etc/init.d/firewall reload
48 # iu Kuerze moege die olsr-Interface-Liste neu erstellt werden (inkl. des neuen Interface)
49 echo
"on-function update_olsr_interfaces" | schedule_task
53 cleanup_mesh_interface() {
56 netname=$(get_netname
"$ifname")
59 apply_changes network firewall
66 case "$script_type" in
68 setup_mesh_interface
"$dev"
71 cleanup_mesh_interface
"$dev"
73 esac 2>&1 | logger -t mesh-updown
uci_delete(uci_path)
Lösche ein UCI-Element.
add_interface_to_zone()
Fuege ein logisches Netzwerk-Interface zu einer Firewall-Zone hinzu.
log_openvpn_events_and_disconnect_if_requested()
Allgemeines Ereignisbehandlung fuer openvpn-Verbindungen: Logging und eventuell Dienst-Bereinigung (n...
del_interface_from_zone()
Entferne ein logisches Interface aus einer Firewall-Zone.