Zitat von Johan Hedberg <johan.hedberg@...>:
> On Wed, Jun 15, 2011, Hendrik Sattler wrote:
>> Hi Johan,
>> Zitat von Johan Hedberg <johan.hedberg@...>:
>> >On Wed, Jun 15, 2011, Johan Hedberg wrote:
>> >>On Wed, Jun 15, 2011, Hendrik Sattler wrote:
>> >>> @Johan: Looking at , what are the reasons that osso-gwobex is
>> >>> using FdOBEX instead of BtOBEX?
>> >>libopenobex is intended to be LGPL, but linking it with libbluetooth
>> >>makes it effectively GPL. Because of this Maemo has never shipped a
>> >>libopenobex with the Bluetooth specific parts compiled in and neither
>> >>does MeeGo (AFAIK; I haven't actually verified this).
>> >>Additionally, handling Bluetooth sockets within the application and
>> >>passing them to FdOBEX is quite simple, and we even have GLib wrappers
>> >>like BtIO which make using FdOBEX much more consistent with the rest of
>> >>the BlueZ & obexd code bases than BtOBEX would ever do.
>> >One more very important reason: BtOBEX uses blocking sockets. This is a
>> >complete no-no for single-threaded processes with an asynchronous
>> >mainloop like bluetoothd or obexd.
>> It might surprise you but using non-blocking sockets with openobex
>> only helps when reading data, the code using a busy-loop for writing
>> full packets in this case! That might not be what you want.
>> This is caused by deficiencies in the openobex state machine. Needs
>> to be addressed at some time...
>> BTW: you can make the BtOBEX socket non-blocking at the right
>> moment, the openobex library (at least latest version) can handle
>> that just fine.
> I wasn't actually so much concerned with read/write as with the blocking
> connect() system call. I don't see any support for a non-blocking
> connect in openobex.
You are right, this one is always blocking. Should we change that? The
easiest would be to add an OBEX_FL_NONBLOCK, just as I did with
OBEX_FL_CLOEXEC. Or should we default to non-blocking? The write-path
would need a small patch to make it suck less, then.
At least, it should be on our TODO list. Thanks for mentioning this :-)