Hi Luiz, On 11:27 Thu 16 Jun, Luiz Augusto von Dentz wrote: > Hi, > > On Wed, Jun 15, 2011 at 5:59 PM, Slawomir Bochenski <lkslawek@xxxxxxxxx> wrote: > > > > The loop is only used before we start streaming. That is because if > > there was no streaming started, request will be finished after > > returning from OpenOBEX callback. To still allow plugins to use the > > original approach, the loop guarantees that there will be another > > read() if the service plugin did not explicitly returned -EAGAIN, so > > read() still decides explicitly when it wants the suspending to > > happen, therefore it is perfectly aware of when to call > > obex_object_set_io_flags(). > > > > This is just how OpenOBEX works - unless we are streaming body > > headers, we should add headers when getting event and suspend if we > > want to postpone finishing the request. I would not call this loop > > "dangerous". > > I would say this is not a limitation of OpenOBEX, just the way we > implement async io in obexd. > > > Well, we have also another possible header types and generally in some > > near future a profile may need to use more than just application > > parameters header and/or body headers (e.g. user defined headers). > > This might also allow sending Length header asynchronously (which by > > quick looking at code is not possible now). > > > > With approach I presented the cost of changes is very low and > > additionally makes it extremely easy to return all possible headers. > > Also everything just works, together with support for asynchronous > > I/O. > > > > Adding additional callback will unnecessarily complicate the code. > > Sorry I have to disagree here, adding another callback probably > simplify the code a bit since we can have something like this: > > if (!streaming && driver->get_apparams) > driver->get_apparams... > > So just drivers that support get_apparams will be called and that > should be enough to guarantee the apparams are added in the beginning > packet. > > Custom headers are a different matter, right now we don't have any > plugin/driver who need them. But we will have soon, BIP needs them. So we better start considering how should we export it to the plugins. > > -- > Luiz Augusto von Dentz > -- > To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html Cheers, -- Vinicius -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html