234ac4e Fix error reporting when poll returns POLLHUP/POLLERR

Authored and Committed by berrange 7 years ago
    Fix error reporting when poll returns POLLHUP/POLLERR
    
    In the RPC client event loop code, if poll() returns only a POLLHUP
    or POLLERR status, then we end up reporting a bogus error message:
    
      error: failed to connect to the hypervisor
      error: An error occurred, but the cause is unknown
    
    We do actually report an error, but we virNetClientMarkClose method
    has already captured the error status before we report it, so the
    real error gets thrown away. The key fix is to report the error
    before calling virNetClientMarkClose(). In changing this, we also
    split out reporting of POLLHUP vs POLLERR to make any future bugs
    easier to diagnose.
    
    Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
    
        
file modified
+8 -2