diff --git a/tools/obexctl.c b/tools/obexctl.c
index 6ca1b74..a398b09 100644
--- a/tools/obexctl.c
+++ b/tools/obexctl.c
struct connect_args {
char *dev;
char *target;
- uint8_t channel;
+ uint16_t channel;
};
static void connect_args_free(void *data)
g_dbus_dict_append_entry(&dict, "Target",
DBUS_TYPE_STRING, &args->target);
- if (args->channel)
- g_dbus_dict_append_entry(&dict, "Channel",
+ if (args->channel) {
+ if (args->channel > 31)
+ g_dbus_dict_append_entry(&dict, "PSM",
+ DBUS_TYPE_UINT16, &args->channel);
+ else
+ g_dbus_dict_append_entry(&dict, "Channel",
DBUS_TYPE_BYTE, &args->channel);
+ }
dbus_message_iter_close_container(iter, &dict);
}
char *endptr = NULL;
channel = strtol(argv[3], &endptr, 0);
- if (!endptr || *endptr != '\0' || channel > UINT8_MAX) {
- bt_shell_printf("Invalid channel\n");
+ if (!endptr || *endptr != '\0' || channel > UINT16_MAX) {
+ bt_shell_printf("Invalid channel or PSM\n");
return bt_shell_noninteractive_quit(EXIT_FAILURE);
}
}
static const struct bt_shell_menu main_menu = {
.name = "main",
.entries = {
- { "connect", "<dev> [uuid] [channel]", cmd_connect,
+ { "connect", "<dev> [uuid] [channel|PSM]", cmd_connect,
"Connect session" },
{ "disconnect", "[session]", cmd_disconnect, "Disconnect session",
session_generator },