[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: passfd on more platforms
From: |
Bastien ROUCARIES |
Subject: |
Re: passfd on more platforms |
Date: |
Mon, 14 Mar 2011 15:02:26 +0100 |
On Mon, Mar 14, 2011 at 2:45 PM, Paolo Bonzini <address@hidden> wrote:
> On 03/14/2011 02:36 PM, Bastien ROUCARIES wrote:
>>
>> Or you could ask throught the socket, the process id of the receiving
>> process than send the handle.
>>
>> Remember:
>> It is assumed that the two sides have coordinated and agreed to
>> transfer a file descriptor already, so that the sendfd is met with a
>> recvfd instead of an ordinary read.
>
> No, you cannot unfortunately. Say that process 1 will do this:
>
> send "getfd\n"
> sendfd
>
> then the following will work on Unix in process 2:
>
> recv(socket, buf, 512) => return 6, buf = "getfd\n"
> parse getfd
> recvfd
>
> If the recvfd info is sent on the normal channel (i.e. not out-of-band),
> process 2 is going to fail like this:
>
> recv(socket, buf, 512) => return 17, buf = "getfd\n0x12345678\0"
> parse getfd
> recvfd fails, or even worse it blocks (possibly forever)
> even if recvfd doesn't block, parsing 0x12345678\0 fails
Why ? It is like sending and receiving data throught a protocol. i
will emulate AF_UNIX by tcp socket over localhost with TCP_NODELAY
And we already send data using unix fd passing
Bastien
>
> Paolo
>
- passfd on more platforms, (continued)
- passfd on more platforms, Bruno Haible, 2011/03/13
- Re: passfd on more platforms, Eric Blake, 2011/03/14
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14
- Re: passfd on more platforms, Bastien ROUCARIES, 2011/03/14
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14
- Re: passfd on more platforms,
Bastien ROUCARIES <=
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14
- Re: passfd on more platforms, Eric Blake, 2011/03/14
- Re: passfd on more platforms, Bastien ROUCARIES, 2011/03/14
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14
- Re: passfd on more platforms, Bastien ROUCARIES, 2011/03/14
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14
- Re: passfd on more platforms, Bastien ROUCARIES, 2011/03/14
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14
- Re: passfd on more platforms, Bastien ROUCARIES, 2011/03/14
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14