• Nils Carlson's avatar
    qemu-char: Fix missed data on unix socket · 4bf1cb03
    Nils Carlson authored
    Commit 812c1057
    
     introduced HUP detection on unix and tcp sockets prior
    to a read in tcp_chr_read. This unfortunately broke CloudStack 4.2
    which relied on the old behaviour where data on a socket was readable
    even if a HUP was present.
    
    A working solution is to properly check the return values from recv,
    handling a closed socket once there is no more data to read.
    
    Also enable polling for G_IO_NVAL to ensure the callback is called
    for all possible events as these should now be possible to handle
    with the improved error detection.
    
    Signed-off-by: default avatarNils Carlson <pyssling@ludd.ltu.se>
    Message-Id: <1437338396-22336-1-git-send-email-pyssling@ludd.ltu.se>
    [Do not handle EINTR; use socket_error(). - Paolo]
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    4bf1cb03