#!/bin/sh /etc/rc.common # Copyright (C) 2007 OpenWrt.org #start after dbus (60) START=62 append_bool() { local section="$1" local option="$2" local value="$3" local _val config_get_bool _val "$section" "$option" '0' [ "$_val" -gt 0 ] && append args "$3" } append_string() { local section="$1" local option="$2" local value="$3" local _val config_get _val "$section" "$option" [ -n "$_val" ] && append args "$3 $_val" } hcid_config() { local cfg="$1" args="" append_bool "$cfg" nodaemon "-n" append_string "$cfg" config "-f" config_get_bool enabled "$cfg" "enabled" '1' [ "$enabled" -gt 0 ] && /usr/sbin/hcid $args } rfcomm_config() { local cfg="$1" args="" append_string "$cfg" config "-f" config_get_bool enabled "$cfg" "enabled" '1' [ "$enabled" -gt 0 ] && /usr/bin/rfcomm $args bind all } dund_config() { local cfg="$1" args="" append_bool "$cfg" listen "--listen" append_string "$cfg" connect "--connect" append_string "$cfg" mrouter "--mrouter" append_bool "$cfg" search "--search" append_string "$cfg" channel "--channel" append_string "$cfg" device "--device" append_bool "$cfg" nosdp "--nosdp" append_bool "$cfg" auth "--auth" append_bool "$cfg" encrypt "--encrypt" append_bool "$cfg" secure "--secure" append_bool "$cfg" master "--master" append_bool "$cfg" nodetach "--nodetach" append_bool "$cfg" persist "--persist" append_string "$cfg" pppd "--pppd" append_bool "$cfg" msdun "--msdun" append_bool "$cfg" activesync "--activesync" append_bool "$cfg" cache "--cache" append_string "$cfg" pppdopts "" config_get ifn "$cfg" interface if [ -n "$ifn" ]; then config_get unit "$ifn" unit [ -z "$unit" ] || append args "unit $unit ipparam $ifn linkname $ifn" fi config_get_bool enabled "$cfg" "enabled" '1' [ "$enabled" -gt 0 ] && /usr/bin/dund $args } pand_config() { local cfg="$1" args="" append_bool "$cfg" listen "--listen" append_string "$cfg" connect "--connect" append_bool "$cfg" autozap "--autozap" append_bool "$cfg" search "--search" append_string "$cfg" role "--role" append_string "$cfg" service "--service" append_string "$cfg" ethernet "--ethernet" append_string "$cfg" device "--device" append_bool "$cfg" nosdp "-D" append_bool "$cfg" auth "-A" append_bool "$cfg" encrypt "-E" append_bool "$cfg" secure "-S" append_bool "$cfg" master "-M" append_bool "$cfg" nodetach "-n" append_bool "$cfg" persist "--persist" append_bool "$cfg" cache "--cache" append_string "$cfg" pidfile "--pidfile" config_get_bool enabled "$cfg" "enabled" '1' [ "$enabled" -gt 0 ] && /usr/bin/pand $args } start() { include /lib/network scan_interfaces config_load bluetooth config_foreach hcid_config hcid config_foreach rfcomm_config rfcomm config_foreach dund_config dund config_foreach pand_config pand } stop() { killall dund killall pand /usr/bin/rfcomm release all killall hcid }