From: Bastien N. <ha...@ha...> - 2010-03-08 12:31:00
|
On Sat, 2010-03-06 at 16:49 +0100, Hendrik Sattler wrote: > Am Samstag 06 März 2010 16:44:00 schrieb Hendrik Sattler: > > Am Freitag 05 März 2010 19:33:08 schrieb Bastien Nocera: > > > It should work, but it doesn't. > > > > Looking at the source of libusb, this is a bit messed up, there. > > In os/linux_usb.c, the only add the FD for POLLOUT (forgetting POLLIN) and > > in os/darwin_usb.c, the only add it for POLLIN (forgetting POLLOUT). > > Someone should go upstream and fix that! > > Current suggestion: the wanted fd is always the last fd in the pollfd list, > > ignoring the events field. This will then also work with MacOS X. > > And that's also why your POLLOUT fd worked (the other one are all POLLIN) > > on Linux. > > Try the patch below. It can only work with one connection per process (already > working on it). Nope, I'm afraid it doesn't work. Even falling back to the old USB input handling code I get: $ ./obex_test -u 0 Using USB transport OBEX Interactive test client/server. > c Made some progress... Server request finished! server_done() Command (00) has now finished <long wait> Link broken! Error while doing OBEX_HandleInput() Any ideas? PS: Your patch doesn't compile, as it's missing a ";" in there. |