PKG_NAME:=bluez-utils
PKG_VERSION:=2.24
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://bluez.sourceforge.net/download
/etc/bluetooth/givepin
/etc/bluetooth/hcid.conf
/etc/bluetooth/rfcomm.conf
+/etc/config/bluetooth
endef
define Build/Configure
$(CP) $(PKG_INSTALL_DIR)/../hcid/hcid.conf $(1)/etc/bluetooth/
$(CP) $(PKG_INSTALL_DIR)/../rfcomm/rfcomm.conf $(1)/etc/bluetooth/
install -m0700 ./files/givepin $(1)/etc/bluetooth/
+ $(INSTALL_DIR) $(1)/etc/config
+ $(INSTALL_DATA) ./files/bluetooth.conf $(1)/etc/config/bluetooth
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/bluez-utils.init $(1)/etc/init.d/bluez-utils
endef
$(eval $(call BuildPackage,bluez-utils))
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2007 OpenWrt.org
+
+START=60
+
+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
+}
+
+sdpd_config() {
+ local cfg="$1"
+ args=""
+ append_bool "$cfg" nodaemon "-n"
+ append_bool "$cfg" something "-m"
+ config_get_bool enabled "$cfg" "enabled" '1'
+ [ "$enabled" -gt 0 ] && /usr/sbin/sdpd $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"
+ 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 sdpd_config sdpd
+ 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 sdpd
+ killall hcid
+}