[PATCH v2 2/2] Use PSM value to select LE or BR/EDR transport on gatttool

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Removes "le" parameter of gatt_connect() as well the global variables
used to store the le option. LE is now the default transport, if a PSM
value different than zero is given BR/EDR will be selected
---
 attrib/gatttool.c    |    9 +++------
 attrib/gatttool.h    |    2 +-
 attrib/interactive.c |   15 +++++++--------
 attrib/utils.c       |   13 +++++++------
 4 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/attrib/gatttool.c b/attrib/gatttool.c
index 96dca5b..7478043 100644
--- a/attrib/gatttool.c
+++ b/attrib/gatttool.c
@@ -53,13 +53,12 @@ static int opt_start = 0x0001;
 static int opt_end = 0xffff;
 static int opt_handle = -1;
 static int opt_mtu = 0;
-static int opt_psm = 0x1f;
+static int opt_psm = 0;
 static gboolean opt_primary = FALSE;
 static gboolean opt_characteristics = FALSE;
 static gboolean opt_char_read = FALSE;
 static gboolean opt_listen = FALSE;
 static gboolean opt_char_desc = FALSE;
-static gboolean opt_le = FALSE;
 static gboolean opt_char_write = FALSE;
 static gboolean opt_char_write_req = FALSE;
 static gboolean opt_interactive = FALSE;
@@ -527,8 +526,6 @@ static GOptionEntry gatt_options[] = {
 		"Characteristics Descriptor Discovery", NULL },
 	{ "listen", 0, 0, G_OPTION_ARG_NONE, &opt_listen,
 		"Listen for notifications and indications", NULL },
-	{ "le", 0, 0, G_OPTION_ARG_NONE, &opt_le,
-		"Use Bluetooth Low Energy transport", NULL },
 	{ "interactive", 'I', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE,
 		&opt_interactive, "Use interactive mode", NULL },
 	{ NULL },
@@ -591,7 +588,7 @@ int main(int argc, char *argv[])
 	}
 
 	if (opt_interactive) {
-		interactive(opt_dst, opt_le);
+		interactive(opt_dst, opt_psm);
 		goto done;
 	}
 
@@ -616,7 +613,7 @@ int main(int argc, char *argv[])
 	}
 
 	chan = gatt_connect(opt_src, opt_dst, opt_sec_level,
-					opt_psm, opt_mtu, opt_le, connect_cb);
+					opt_psm, opt_mtu, connect_cb);
 	if (chan == NULL) {
 		got_error = TRUE;
 		goto done;
diff --git a/attrib/gatttool.h b/attrib/gatttool.h
index 1fc6a59..7eae18d 100644
--- a/attrib/gatttool.h
+++ b/attrib/gatttool.h
@@ -23,5 +23,5 @@
 
 int interactive(gchar *dst, gboolean le);
 GIOChannel *gatt_connect(const gchar *src, const gchar *dst,
-			const gchar *sec_level, int psm, int mtu, gboolean le,
+			const gchar *sec_level, int psm, int mtu,
 			BtIOConnect connect_cb);
diff --git a/attrib/interactive.c b/attrib/interactive.c
index 71e84bc..b851a40 100644
--- a/attrib/interactive.c
+++ b/attrib/interactive.c
@@ -45,9 +45,8 @@ static GString *prompt;
 static gchar *opt_src = NULL;
 static gchar *opt_dst = NULL;
 static gchar *opt_sec_level = NULL;
-static int opt_psm = 0x1f;
+static int opt_psm = 0;
 static int opt_mtu = 0;
-static gboolean opt_le = FALSE;
 
 static void cmd_help(int argcp, char **argvp);
 
@@ -74,10 +73,10 @@ static char *get_prompt(void)
 	else
 		g_string_append_printf(prompt, "[%17s]", "");
 
-	if (opt_le)
-		g_string_append(prompt, "[LE]");
-	else
+	if (opt_psm)
 		g_string_append(prompt, "[BR]");
+	else
+		g_string_append(prompt, "[LE]");
 
 	g_string_append(prompt, "> ");
 
@@ -146,7 +145,7 @@ static void cmd_connect(int argcp, char **argvp)
 
 	set_state(STATE_CONNECTING);
 	iochannel = gatt_connect(opt_src, opt_dst, opt_sec_level, opt_psm,
-						opt_mtu, opt_le, connect_cb);
+						opt_mtu, connect_cb);
 	if (iochannel == NULL)
 		set_state(STATE_DISCONNECTED);
 
@@ -247,7 +246,7 @@ static gboolean prompt_read(GIOChannel *chan, GIOCondition cond,
 	return TRUE;
 }
 
-int interactive(gchar *dst, gboolean le)
+int interactive(gchar *dst, int psm)
 {
 	GIOChannel *pchan;
 	gint events;
@@ -255,7 +254,7 @@ int interactive(gchar *dst, gboolean le)
 	opt_sec_level = strdup("low");
 
 	opt_dst = strdup(dst);
-	opt_le = le;
+	opt_psm = psm;
 
 	prompt = g_string_new(NULL);
 
diff --git a/attrib/utils.c b/attrib/utils.c
index 326c1e8..d648376 100644
--- a/attrib/utils.c
+++ b/attrib/utils.c
@@ -39,19 +39,20 @@
 #define ATT_MIN_MTU_L2CAP	48
 
 GIOChannel *gatt_connect(const gchar *src, const gchar *dst,
-			const gchar *sec_level, int psm, int mtu, gboolean le,
-			BtIOConnect connect_cb)
+				const gchar *sec_level, int psm, int mtu,
+				BtIOConnect connect_cb)
 {
 	GIOChannel *chan;
 	bdaddr_t sba, dba;
 	GError *err = NULL;
 	BtIOSecLevel sec;
+	int minimum_mtu;
 
 	/* This check is required because currently setsockopt() returns no
 	 * errors for MTU values smaller than the allowed minimum. */
-	if (mtu != 0 && mtu < (le ? ATT_MIN_MTU_LE : ATT_MIN_MTU_L2CAP)) {
-		g_printerr("MTU cannot be smaller than %d\n",
-				(le ? ATT_MIN_MTU_LE : ATT_MIN_MTU_L2CAP));
+	minimum_mtu = (psm ? ATT_MIN_MTU_L2CAP : ATT_MIN_MTU_LE);
+	if (mtu != 0 && mtu < minimum_mtu) {
+		g_printerr("MTU cannot be smaller than %d\n", minimum_mtu);
 		return NULL;
 	}
 
@@ -78,7 +79,7 @@ GIOChannel *gatt_connect(const gchar *src, const gchar *dst,
 	else
 		sec = BT_IO_SEC_LOW;
 
-	if (le)
+	if (psm == 0)
 		chan = bt_io_connect(BT_IO_L2CAP, connect_cb, NULL, NULL, &err,
 				BT_IO_OPT_SOURCE_BDADDR, &sba,
 				BT_IO_OPT_DEST_BDADDR, &dba,
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux