#!/bin/sh /etc/rc.common
START=90
+USE_PROCD=1
-start () {
- interface=$(uci get batmand.general.interface)
+batmand_start() {
+ local config="$1"
+ local batman_args
+ local interface
+ local hnas
+ local gateway_class
+ local originator_interval
+ local preferred_gateway
+ local routing_class
+ local visualisation_srv
+ local local policy_routing_script
+ local disable_client_nat
+ local disable_aggregation
+
+ [ "$config" = "general" ] || return 1
+
+ config_get interface "$config" interface
if [ "$interface" = "" ]; then
echo $1 Error, you must specify at least a network interface
- exit
- fi
- hnas=$(uci get batmand.general.hna)
- gateway_class=$(uci get batmand.general.gateway_class)
- originator_interval=$(uci get batmand.general.originator_interval)
- preferred_gateway=$(uci get batmand.general.preferred_gateway)
- routing_class=$(uci get batmand.general.routing_class)
- visualisation_srv=$(uci get batmand.general.visualisation_srv)
- policy_routing_script=$(uci get batmand.general.policy_routing_script)
- disable_client_nat=$(uci get batmand.general.disable_client_nat)
- disable_aggregation=$(uci get batmand.general.disable_aggregation)
+ return 1
+ fi
+
+ config_get hnas "$config" hna
+ config_get gateway_class "$config" gateway_class
+ config_get originator_interval "$config" originator_interval
+ config_get preferred_gateway "$config" preferred_gateway
+ config_get routing_class "$config" routing_class
+ config_get visualisation_srv "$config" visualisation_srv
+ config_get policy_routing_script "$config" policy_routing_script
+ config_get disable_client_nat "$config" disable_client_nat
+ config_get disable_aggregation "$config" disable_aggregation
+
batman_args=""
for hna in $hnas; do
batman_args=${batman_args}'--disable-aggregation '
fi
- batman_args=${batman_args}$interface
- batmand $batman_args >/dev/null 2>&1
+ procd_open_instance "${config}"
+ procd_set_param command /usr/sbin/batmand
+ procd_append_param command --no-detach
+ procd_append_param command ${batman_args}
+ procd_append_param command ${interface}
+ procd_set_param netdev ${interface}
+ procd_close_instance
+}
+
+start_service() {
+ config_load "batmand"
+ config_foreach batmand_start batmand
}
-stop () {
- killall batmand
+service_triggers() {
+ procd_add_reload_trigger "batmand"
}