• D
    net: fix sending of data with -net socket, listen backend · e79cd406
    Daniel P. Berrange 提交于
    The use of -net socket,listen was broken in the following
    commit
    
      commit 16a3df40
      Author: Zhang Chen <zhangchen.fnst@cn.fujitsu.com>
      Date:   Fri May 13 15:35:19 2016 +0800
    
        net/net: Add SocketReadState for reuse codes
    
        This function is from net/socket.c, move it to net.c and net.h.
        Add SocketReadState to make others reuse net_fill_rstate().
        suggestion from jason.
    
    This refactored the state out of NetSocketState into a
    separate SocketReadState. This refactoring requires
    that a callback is provided to be triggered upon
    completion of a packet receive from the guest.
    
    The patch only registered this callback in the codepaths
    hit by -net socket,connect, not -net socket,listen. So
    as a result packets sent by the guest in the latter case
    get dropped on the floor.
    
    This bug is hidden because net_fill_rstate() silently
    does nothing if the callback is not set.
    
    This patch adds in the middle callback registration
    and also adds an assert so that QEMU aborts if there
    are any other codepaths hit which are missing the
    callback.
    Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
    Reviewed-by: NZhang Chen <zhangchen.fnst@cn.fujitsu.com>
    Signed-off-by: NJason Wang <jasowang@redhat.com>
    e79cd406
net.c 43.0 KB