lkml.org 
[lkml]   [2019]   [Oct]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH net 1/2] vsock: add half-closed socket details in the implementation notes
    On Fri, Oct 11, 2019 at 03:07:57PM +0200, Stefano Garzarella wrote:
    > vmci_transport never allowed half-closed socket on the host side.
    > Since we want to have the same behaviour across all transports, we
    > add a section in the "Implementation notes".
    >
    > Cc: Jorgen Hansen <jhansen@vmware.com>
    > Cc: Adit Ranadive <aditr@vmware.com>
    > Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
    > ---
    > net/vmw_vsock/af_vsock.c | 4 ++++
    > 1 file changed, 4 insertions(+)
    >
    > diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
    > index 2ab43b2bba31..27df57c2024b 100644
    > --- a/net/vmw_vsock/af_vsock.c
    > +++ b/net/vmw_vsock/af_vsock.c
    > @@ -83,6 +83,10 @@
    > * TCP_ESTABLISHED - connected
    > * TCP_CLOSING - disconnecting
    > * TCP_LISTEN - listening
    > + *
    > + * - Half-closed socket is supported only on the guest side. recv() on the host
    > + * side should return EOF when the guest closes a connection, also if some
    > + * data is still in the receive queue.
    > */
    >
    > #include <linux/types.h>

    That's a great way to lose data in a way that's hard to debug.

    VMCI sockets connect to a hypervisor so there's tight control
    of what the hypervisor can do.

    But vhost vsocks connect to a fully fledged Linux, so
    you can't assume this is safe. And application authors do not read
    kernel source.

    > --
    > 2.21.0

    \
     
     \ /
      Last update: 2019-10-11 16:23    [W:6.546 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site