diff --git a/tools/hcidump.c b/tools/hcidump.c
index 7c05926..ac75dd9 100644
--- a/tools/hcidump.c
+++ b/tools/hcidump.c
" -R, --raw Dump raw data\n"
" -C, --cmtp=psm PSM for CMTP\n"
" -H, --hcrp=psm PSM for HCRP\n"
- " -O, --obex=channel Channel for OBEX\n"
+ " -O, --obex=port Channel/PSM for OBEX\n"
" -P, --ppp=channel Channel for PPP\n"
" -D, --pppdump=file Extract PPP traffic\n"
" -A, --audio=file Extract SCO audio data\n"
int defpsm = 0;
int defcompid = DEFAULT_COMPID;
int opt, pppdump_fd = -1, audio_fd = -1;
+ uint16_t obex_port;
while ((opt=getopt_long(argc, argv, "i:l:p:m:w:r:d:taxXRC:H:O:P:D:A:YZ46hv", main_options, NULL)) != -1) {
switch(opt) {
break;
case 'O':
- set_proto(0, 0, atoi(optarg), SDP_UUID_OBEX);
+ obex_port = atoi(optarg);
+ if (obex_port > 31)
+ set_proto(0, obex_port, 0, SDP_UUID_OBEX);
+ else
+ set_proto(0, 0, obex_port, SDP_UUID_OBEX);
break;
case 'P':