* [Qemu-devel] [PATCH v2] Delete AF_UNIX socket after close
@ 2018-05-21 16:17 Pavel Balaev
2018-06-20 13:52 ` Daniel P. Berrangé
0 siblings, 1 reply; 2+ messages in thread
From: Pavel Balaev @ 2018-05-21 16:17 UTC (permalink / raw)
To: berrange; +Cc: qemu-devel
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 <mail@void.so>
---
io/channel-socket.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/io/channel-socket.c b/io/channel-socket.c
index 57cfb4d3a6..b50e63a053 100644
--- a/io/channel-socket.c
+++ b/io/channel-socket.c
@@ -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
--
2.16.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH v2] Delete AF_UNIX socket after close
2018-05-21 16:17 [Qemu-devel] [PATCH v2] Delete AF_UNIX socket after close Pavel Balaev
@ 2018-06-20 13:52 ` Daniel P. Berrangé
0 siblings, 0 replies; 2+ messages in thread
From: Daniel P. Berrangé @ 2018-06-20 13:52 UTC (permalink / raw)
To: Pavel Balaev; +Cc: qemu-devel
On Mon, May 21, 2018 at 07:17:35PM +0300, Pavel Balaev wrote:
> 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 <mail@void.so>
> ---
> io/channel-socket.c | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/io/channel-socket.c b/io/channel-socket.c
> index 57cfb4d3a6..b50e63a053 100644
> --- a/io/channel-socket.c
> +++ b/io/channel-socket.c
> @@ -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
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
I've queued this now, thanks.
Regards,
Daniel
--
|: 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 :|
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-06-20 13:53 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-21 16:17 [Qemu-devel] [PATCH v2] Delete AF_UNIX socket after close Pavel Balaev
2018-06-20 13:52 ` Daniel P. Berrangé
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).