diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2022-03-02 16:30:11 -0800 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2022-03-02 16:30:11 -0800 |
commit | 18af5f4faf2658e99f91853798bc4c12f32f31f6 (patch) | |
tree | de540a48517b169e755a00ca4a1b1e4272546529 /client/main.c | |
parent | b9f27b814d9acf5b3320e2af797f6484c1ceb781 (diff) | |
download | bluez-18af5f4faf2658e99f91853798bc4c12f32f31f6.tar.gz |
client: Add support for scan <le/bredr>
This adds support for entering the transport directly as an scan
argument rather than having to first set it scan.transport.
Diffstat (limited to 'client/main.c')
-rw-r--r-- | client/main.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/client/main.c b/client/main.c index 719cbefe0..6bb11b1ad 100644 --- a/client/main.c +++ b/client/main.c @@ -1294,6 +1294,7 @@ static struct set_discovery_filter_args { dbus_bool_t discoverable; bool set; bool active; + unsigned int timeout; } filter = { .rssi = DISTANCE_VAL_INVALID, .pathloss = DISTANCE_VAL_INVALID, @@ -1415,18 +1416,33 @@ static void set_discovery_filter(bool cleared) filter.set = true; } +static const char *scan_arguments[] = { + "on", + "off", + "bredr", + "le", + NULL +}; + static void cmd_scan(int argc, char *argv[]) { dbus_bool_t enable; const char *method; + const char *mode; - if (!parse_argument(argc, argv, NULL, NULL, &enable, NULL)) + if (!parse_argument(argc, argv, scan_arguments, "Mode", &enable, + &mode)) return bt_shell_noninteractive_quit(EXIT_FAILURE); if (check_default_ctrl() == FALSE) return bt_shell_noninteractive_quit(EXIT_FAILURE); if (enable == TRUE) { + if (strcmp(mode, "")) { + g_free(filter.transport); + filter.transport = g_strdup(mode); + } + set_discovery_filter(false); method = "StartDiscovery"; } else @@ -2514,6 +2530,11 @@ static char *capability_generator(const char *text, int state) return argument_generator(text, state, agent_arguments); } +static char *scan_generator(const char *text, int state) +{ + return argument_generator(text, state, scan_arguments); +} + static void cmd_advertise(int argc, char *argv[]) { dbus_bool_t enable; @@ -3117,7 +3138,8 @@ static const struct bt_shell_menu main_menu = { "Enable/disable advertising with given type", ad_generator}, { "set-alias", "<alias>", cmd_set_alias, "Set device alias" }, - { "scan", "<on/off>", cmd_scan, "Scan for devices", NULL }, + { "scan", "<on/off/bredr/le>", cmd_scan, + "Scan for devices", scan_generator }, { "info", "[dev]", cmd_info, "Device information", dev_generator }, { "pair", "[dev]", cmd_pair, "Pair with device", |