diff options
author | Sheldon Demario <sheldon.demario@openbossa.org> | 2011-02-17 11:18:41 -0300 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@nokia.com> | 2011-02-17 15:50:15 -0300 |
commit | 0cc24599637ed6666469c68d55f4e42ff722e447 (patch) | |
tree | e74ca9516916f63d61612360802afee544babc5f /attrib | |
parent | eb4e1d6d4b8405a324bb68e9dc28d108746837ef (diff) | |
download | bluez-0cc24599637ed6666469c68d55f4e42ff722e447.tar.gz |
Use PSM value to select LE or BR/EDR transport on gatttool
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
Diffstat (limited to 'attrib')
-rw-r--r-- | attrib/gatttool.c | 9 | ||||
-rw-r--r-- | attrib/gatttool.h | 2 | ||||
-rw-r--r-- | attrib/interactive.c | 15 | ||||
-rw-r--r-- | attrib/utils.c | 13 |
4 files changed, 18 insertions, 21 deletions
diff --git a/attrib/gatttool.c b/attrib/gatttool.c index 96dca5b2..7478043c 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 1fc6a596..7eae18da 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 db83a322..1df2b695 100644 --- a/attrib/interactive.c +++ b/attrib/interactive.c @@ -40,9 +40,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); @@ -69,10 +68,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, "> "); @@ -122,7 +121,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); @@ -212,7 +211,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; @@ -220,7 +219,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 4710d2d5..4d0000da 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, |