diff options
Diffstat (limited to 'src/adapter.c')
-rw-r--r-- | src/adapter.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/adapter.c b/src/adapter.c index 0f237973e..efe7db32e 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -2405,22 +2405,19 @@ void btd_adapter_get_mode(struct btd_adapter *adapter, uint8_t *mode, if (mode) { if (main_opts.remember_powered == FALSE) *mode = main_opts.mode; - else if (read_device_mode(address, str, sizeof(str)) < 0) - *mode = main_opts.mode; - else + else if (read_device_mode(address, str, sizeof(str)) == 0) *mode = get_mode(&adapter->bdaddr, str); + else + *mode = main_opts.mode; } if (on_mode) { - if (main_opts.remember_powered == FALSE) { - if (adapter->initialized) - *on_mode = get_mode(&adapter->bdaddr, "on"); - else - *on_mode = main_opts.mode; - } else if (read_on_mode(address, str, sizeof(str)) < 0) - *on_mode = main_opts.mode; - else + if (main_opts.remember_powered == FALSE) + *on_mode = get_mode(&adapter->bdaddr, "on"); + else if (read_on_mode(address, str, sizeof(str)) == 0) *on_mode = get_mode(&adapter->bdaddr, str); + else + *on_mode = main_opts.mode; } if (pairable) |