Messages in this thread | | | Date | Tue, 28 Feb 2012 16:24:47 +0100 | From | Javier Martinez Canillas <> | Subject | Re: [PATCH 0/10] af_unix: add multicast and filtering features to AF_UNIX |
| |
On 02/28/2012 03:28 PM, David Lamparter wrote: > On Tue, Feb 28, 2012 at 11:47:39AM +0100, Rodrigo Moya wrote: >> > - slow readers: dropping packets vs blocking the sender. Although >> > datagrams are not reliable on IP, datagrams on Unix sockets are >> never >> > lost. So if one receiver has its buffer full the sender is blocked >> > instead of dropping packets. That way we guarantee a reliable >> > communication channel. > > This sounds like a terribly nice way to f*ck the entire D-Bus system by > having one broken (or malicious) desktop application. What's the > intended way of coping with users that block the socket by not reading? > > > -David L.
The problem is that D-bus expects a reliable transport method (TCP or SOCK_STREAM Unix socks) but this is not the case with multicast Unix sockets. Since our implementation is for SOCK_SEQPACKET and SOCK_DGRAM socket types.
So, you have to either add another layer to the D-bus protocol to make it reliable (acks, retransmissions, flow control, etc) or avoid losing D-bus messages (by blocking the sender if one of the receivers has its buffer full).
Regards, Javier
| |