On 03/26/2013 10:07 AM, Stefan Hajnoczi wrote:
> When we receive a file descriptor over a UNIX domain socket the
> O_NONBLOCK flag is preserved.  Clear the O_NONBLOCK flag and rely on
> QEMU file descriptor users like migration, SPICE, VNC, block layer, and
> others to set non-blocking only when necessary.
> 
> This change ensures we don't accidentally expose O_NONBLOCK in the QMP
> API.  QMP clients should not need to get the non-blocking state
> "correct".
> 
> A recent real-world example was when libvirt passed a non-blocking TCP
> socket for migration where we expected a blocking socket.  The source
> QEMU produced a corrupted migration stream since its code did not cope
> with non-blocking sockets.
> 
> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
> ---
>  qemu-char.c | 3 +++
>  1 file changed, 3 insertions(+)

Reviewed-by: Eric Blake <ebl...@redhat.com>

Covers both 'getfd' and 'add-fd' paths.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to