summaryrefslogtreecommitdiffstats
path: root/hcid/main.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2006-02-11 11:11:21 +0000
committerMarcel Holtmann <marcel@holtmann.org>2006-02-11 11:11:21 +0000
commitdfc20857eb381b464b8fd6efdaac59e4a15f5d6d (patch)
tree573b3ef091cc61d5b81cd17605669641a49d4709 /hcid/main.c
parent518bb944173c2036486b25a764966bd738bb5ecf (diff)
Add basic device functions
Diffstat (limited to 'hcid/main.c')
-rw-r--r--hcid/main.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/hcid/main.c b/hcid/main.c
index a41afe7b..2c307176 100644
--- a/hcid/main.c
+++ b/hcid/main.c
@@ -394,12 +394,16 @@ static void init_all_devices(int ctl)
if (hcid.auto_init)
init_device(dr->dev_id);
+ add_device(dr->dev_id);
+
if (hcid.auto_init && hci_test_bit(HCI_UP, &dr->dev_opt))
configure_device(dr->dev_id);
if (hcid.security && hci_test_bit(HCI_UP, &dr->dev_opt))
start_security_manager(dr->dev_id);
+ start_device(dr->dev_id);
+
#ifdef ENABLE_DBUS
hcid_dbus_register_device(dr->dev_id);
#endif
@@ -454,6 +458,7 @@ static inline void device_event(GIOChannel *chan, evt_stack_internal *si)
syslog(LOG_INFO, "HCI dev %d registered", sd->dev_id);
if (hcid.auto_init)
init_device(sd->dev_id);
+ add_device(sd->dev_id);
#ifdef ENABLE_DBUS
hcid_dbus_register_device(sd->dev_id);
#endif
@@ -464,6 +469,7 @@ static inline void device_event(GIOChannel *chan, evt_stack_internal *si)
#ifdef ENABLE_DBUS
hcid_dbus_unregister_device(sd->dev_id);
#endif
+ remove_device(sd->dev_id);
break;
case HCI_DEV_UP:
@@ -472,12 +478,14 @@ static inline void device_event(GIOChannel *chan, evt_stack_internal *si)
configure_device(sd->dev_id);
if (hcid.security)
start_security_manager(sd->dev_id);
+ start_device(sd->dev_id);
break;
case HCI_DEV_DOWN:
syslog(LOG_INFO, "HCI dev %d down", sd->dev_id);
if (hcid.security)
stop_security_manager(sd->dev_id);
+ stop_device(sd->dev_id);
break;
}
}
@@ -633,6 +641,8 @@ int main(int argc, char *argv[], char *env[])
if (read_config(hcid.config_file) < 0)
syslog(LOG_ERR, "Config load failed");
+ init_devices();
+
#ifdef ENABLE_DBUS
if (hcid_dbus_init() == FALSE && hcid.dbus_pin_helper) {
syslog(LOG_ERR, "Unable to get on D-BUS");