diff options
-rw-r--r-- | tools/sdptool.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/tools/sdptool.c b/tools/sdptool.c index 980778ea..d3da429d 100644 --- a/tools/sdptool.c +++ b/tools/sdptool.c @@ -2094,15 +2094,16 @@ static int do_search(bdaddr_t *bdaddr, struct search_context *context) } static struct option browse_options[] = { - { "help", 0,0, 'h' }, - { "tree", 0,0, 't' }, - { "l2cap", 0,0, 'l' }, + { "help", 0, 0, 'h' }, + { "tree", 0, 0, 't' }, + { "uuid", 1, 0, 'u' }, + { "l2cap", 0, 0, 'l' }, { 0, 0, 0, 0 } }; static char *browse_help = "Usage:\n" - "\tbrowse [--tree] [--l2cap] [bdaddr]\n"; + "\tbrowse [--tree] [--uuid uuid] [--l2cap] [bdaddr]\n"; /* * Browse the full SDP database (i.e. list all services starting from the @@ -2111,7 +2112,7 @@ static char *browse_help = static int cmd_browse(int argc, char **argv) { struct search_context context; - int opt; + int opt, num; /* Initialise context */ memset(&context, '\0', sizeof(struct search_context)); @@ -2123,6 +2124,13 @@ static int cmd_browse(int argc, char **argv) case 't': context.tree = 1; break; + case 'u': + if (sscanf(optarg, "%i", &num) != 1 || num < 0 || num > 0xffff) { + printf("Invalid uuid %s\n", optarg); + return -1; + } + sdp_uuid16_create(&context.group, num); + break; case 'l': sdp_uuid16_create(&context.group, L2CAP_UUID); break; |