diff options
Diffstat (limited to 'src/adapter.c')
-rw-r--r-- | src/adapter.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/adapter.c b/src/adapter.c index 6cf2b99b..52b58c4e 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -121,6 +121,8 @@ struct btd_adapter { gboolean initialized; gboolean already_up; /* adapter was already up on init */ + + gboolean off_requested; /* DEVDOWN ioctl was called */ }; static void adapter_set_pairable_timeout(struct btd_adapter *adapter, @@ -432,6 +434,8 @@ static int set_mode(struct btd_adapter *adapter, uint8_t new_mode) return err; } + adapter->off_requested = TRUE; + goto done; } @@ -1990,6 +1994,7 @@ static int adapter_up(struct btd_adapter *adapter, int dd) ba2str(&adapter->bdaddr, srcaddr); + adapter->off_requested = FALSE; adapter->up = 1; adapter->discov_timeout = get_discoverable_timeout(srcaddr); adapter->pairable_timeout = get_pairable_timeout(srcaddr); @@ -2928,3 +2933,8 @@ gboolean adapter_is_pairable(struct btd_adapter *adapter) { return adapter->pairable; } + +gboolean adapter_powering_down(struct btd_adapter *adapter) +{ + return adapter->off_requested; +} |