public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
From: Marcel Holtmann <marcel@holtmann.org>
To: pypaulus@alterwave.com,
	BlueZ development <bluez-devel@lists.sourceforge.net>
Subject: Re: [Bluez-devel] Nothing to read on /dev/rfcomm0
Date: Tue, 11 Jul 2006 13:23:58 +0200	[thread overview]
Message-ID: <1152617038.15028.15.camel@localhost> (raw)
In-Reply-To: <1152107225.15040.48.camel@localhost>

Hi Pierre-Yves,

> I'm trying to to perform an OBEX push. Using the D-Bus API, I can get
> connected to the device. /dev/rfcomm0 gets created, and I can write to
> it. But I can't read anything out of it, I always get EOF.
> 
> Here is what I do:
> 
> -Get the RFCOMM object from D-Bus
> -Call ConnectByChannel(address, channel);
> -At this point my phone prompts me and ask me if I want to accept the
> transfer or not. Of course, I accept it.
> -/dev/rfcomm0 gets created.
> -I start a stupid c program which tries to read /dev/rfcomm and shows
> what it reads on the terminal as hex (char *input[1]; fscanf(stream, "%
> c", input); printf("%x ", input[0]);
> -I write new byte[] { (byte)0x80, 0x00, 0x07, 0x10, 0x00, 0x20, 0x00};
> to /dev/rfcomm0 (that's an OBEX connect sequence as you know, this part
> is from some java code). From hcidump -X I can see it being sent to the
> device:
> 
> < ACL data: handle 42 flags 0x02 dlen 15
>     L2CAP(d): cid 0x008f len 11 [psm 3]
>       RFCOMM(d): UIH: cr 1 dlci 18 pf 0 ilen 7 fcs 0xce
>       0000: 80 00 07 10 00 20 00                              ..... .
> 
> -The device does answer:
> 
> > HCI Event: Number of Completed Packets (0x13) plen 5
>   0000: 01 2a 00 01 00                                    .*...
> > ACL data: handle 42 flags 0x02 dlen 9
>     L2CAP(d): cid 0x0040 len 5 [psm 3]
>       RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 0 fcs 0x8 credits 4
> > ACL data: handle 42 flags 0x02 dlen 16
>     L2CAP(d): cid 0x0040 len 12 [psm 3]
>       RFCOMM(d): UIH: cr 0 dlci 18 pf 1 ilen 7 fcs 0x8 credits 1
>       0000: a0 00 07 10 00 07 fc 
> 
> And the last line above (which is the OBEX connection acceptance
> sequence) never shows up on /dev/rfcomm0. What is wrong here?

can you reproduce it with using the rfcomm command line utility?

> Just afterwards, /dev/rfcomm0 get disconnected and the whole hcid does
> crash because of some memory error I didn't have looked at so far. Some
> info if it may help anybody:
> 
> hcid[19317]: Bluetooth HCI daemon
> hcid[19317]: Register path:/org/bluez fallback:1
> hcid[19317]: Device hci0 has been added
> hcid[19317]: Starting security manager 0
> hcid[19317]: Device hci0 has been activated
> hcid[19317]: Register path:/org/bluez/hci0 fallback:0
> hcid[19317]: Connect in progress
> hcid[19317]: rfcomm_connect_cb: connected
> hcid[19317]: Chmod return: 0
> hcid[19317]: RFCOMM node /dev/rfcomm0 was disconnected
> *** glibc detected *** corrupted double-linked list: 0x0806e8c8 ***
> Aborted
> 
> (gdb) bt
> #0  0xffffe410 in __kernel_vsyscall ()
> #1  0xb7e00101 in raise () from /lib/tls/libc.so.6
> #2  0xb7e017fd in abort () from /lib/tls/libc.so.6
> #3  0xb7e32ef7 in __fsetlocking () from /lib/tls/libc.so.6
> #4  0xb7e38c16 in malloc_usable_size () from /lib/tls/libc.so.6
> #5  0xb7e38da1 in malloc_usable_size () from /lib/tls/libc.so.6
> #6  0xb7e392df in malloc_usable_size () from /lib/tls/libc.so.6
> #7  0xb7e395d9 in free () from /lib/tls/libc.so.6
> #8  0xb7ef3f5e in hci_for_each_dev () from /usr/lib/libbluetooth.so.2
> #9  0xb7ef42d4 in hci_devid () from /usr/lib/libbluetooth.so.2
> #10 0x08053f46 in hcid_dbus_disconn_complete (local=0x0, status=0 '\0',
> handle=42, reason=22 '\026')
>     at dbus.c:1236
> #11 0x0804d1a0 in io_security_event (chan=0x806c788, cond=G_IO_IN,
> data=0x806c728) at security.c:607
> #12 0x0805feba in g_main_loop_run (loop=0x8066b08) at glib-ectomy.c:305
> #13 0x0804c7db in main (argc=0, argv=0x0) at main.c:729
> 
> (For some reason, line numbers do not show up for libluetooth.so.2 in
> the bt, even if I did add "-g" to the CFLAGS in the Makefile. Do I have
> to do something else/more to get the full information?)

Looks like a bug. That's the reason why it is still marked as
experimental.

Regards

Marcel




-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

      reply	other threads:[~2006-07-11 11:23 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-05 13:47 [Bluez-devel] Nothing to read on /dev/rfcomm0 Pierre-Yves Paulus
2006-07-11 11:23 ` Marcel Holtmann [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1152617038.15028.15.camel@localhost \
    --to=marcel@holtmann.org \
    --cc=bluez-devel@lists.sourceforge.net \
    --cc=pypaulus@alterwave.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox