summaryrefslogtreecommitdiff
path: root/client/main.c
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2022-03-02 16:30:11 -0800
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2022-03-02 16:30:11 -0800
commit18af5f4faf2658e99f91853798bc4c12f32f31f6 (patch)
treede540a48517b169e755a00ca4a1b1e4272546529 /client/main.c
parentb9f27b814d9acf5b3320e2af797f6484c1ceb781 (diff)
downloadbluez-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.c26
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",