Delete AF_UNIX socket after close
PATCH v2 1/1 Delete AF_UNIX socket after close
This is a second attempt at sending this patch:
http://lists.nongnu.org/archive/html/qemu-devel/2018-05/msg04697.html
Signed-off-by Pavel Balaev <[email protected]>
--- io/channel-socket.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)
io/channel-socket.c +17 -1
@@ -685,8 +685,10 @@ qio_channel_socket_close(QIOChannel *ioc, Error **errp) {QIOChannelSocket *sioc =QIO_CHANNEL_SOCKET (ioc); +int rc =0 ;if (sioc->fd !=-1 ) { +SocketAddress *addr =socket_local_address (sioc->fd, errp);#ifdef WIN32 WSAEventSelect (sioc->fd,NULL ,0 );#endif
@@ -697,8 +699,22 @@ qio_channel_socket_close(QIOChannel *ioc,return -1 ; } sioc->fd =-1 ; + +if (addr && addr->type ==SOCKET_ADDRESS_TYPE_UNIX + && addr->u.q_unix.path) { +if (unlink (addr->u.q_unix.path) <0 && errno !=ENOENT ) { +error_setg_errno (errp, errno, +"Failed to unlink socket %s" , + addr->u.q_unix.path); + rc =-1 ; + } + } + +if (addr) { +qapi_free_SocketAddress (addr); + } } -return 0 ; +return rc; } static int
Signature · 1 line
2.16.1
Daniel P. Berrangé
AppliedQuoted 38 lines · Pavel Balaev
This is a second attempt at sending this patch:
http://lists.nongnu.org/archive/html/qemu-devel/2018-05/msg04697.html
Signed-off-by Pavel Balaev <[email protected]>--- io/channel-socket.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)io/channel-socket.c +12
-0@@ -685,8 +685,10 @@ qio_channel_socket_close(QIOChannel *ioc, Error **errp) {QIOChannelSocket *sioc =QIO_CHANNEL_SOCKET (ioc); +int rc =0 ;if (sioc->fd !=-1 ) { +SocketAddress *addr =socket_local_address (sioc->fd, errp);#ifdef WIN32 WSAEventSelect (sioc->fd,NULL ,0 );#endif @@ -697,8 +699,22 @@ qio_channel_socket_close(QIOChannel *ioc,return -1 ; } sioc->fd =-1 ; + +if (addr && addr->type ==SOCKET_ADDRESS_TYPE_UNIX + && addr->u.q_unix.path) { +if (unlink (addr->u.q_unix.path) <0 && errno !=ENOENT ) { +error_setg_errno (errp, errno, +"Failed to unlink socket %s" , + addr->u.q_unix.path); + rc =-1 ; + } + }
io/channel-socket.c qio_channel_socket_close(QIOChannel *ioc, · line 720
Quoted 10 lines
io/channel-socket.c +5
-1+ +if (addr) { +qapi_free_SocketAddress (addr); + } } -return 0 ; +return rc; } static int
Signed-off-by Daniel P. Berrangé <[email protected]>
I've queued this now, thanks.
Regards,
Daniel
Signature · 3 lines
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|