Make it easier to get from the sioc listening to a single address on behalf of a NetListener back to its owning object, which will be beneficial in an upcoming patch that teaches NetListener how to interact with AioContext.
Signed-off-by: Eric Blake <[email protected]> --- include/io/channel-socket.h | 1 + io/channel-socket.c | 1 + io/net-listener.c | 1 + 3 files changed, 3 insertions(+) diff --git a/include/io/channel-socket.h b/include/io/channel-socket.h index a88cf8b3a9f..eee686f3b4d 100644 --- a/include/io/channel-socket.h +++ b/include/io/channel-socket.h @@ -49,6 +49,7 @@ struct QIOChannelSocket { socklen_t remoteAddrLen; ssize_t zero_copy_queued; ssize_t zero_copy_sent; + struct QIONetListener *listener; }; diff --git a/io/channel-socket.c b/io/channel-socket.c index 712b793eaf2..59e929f97c3 100644 --- a/io/channel-socket.c +++ b/io/channel-socket.c @@ -65,6 +65,7 @@ qio_channel_socket_new(void) sioc->fd = -1; sioc->zero_copy_queued = 0; sioc->zero_copy_sent = 0; + sioc->listener = NULL; ioc = QIO_CHANNEL(sioc); qio_channel_set_feature(ioc, QIO_CHANNEL_FEATURE_SHUTDOWN); diff --git a/io/net-listener.c b/io/net-listener.c index e1378b9a612..afdacdd5ff4 100644 --- a/io/net-listener.c +++ b/io/net-listener.c @@ -152,6 +152,7 @@ void qio_net_listener_add(QIONetListener *listener, if (listener->name) { qio_channel_set_name(QIO_CHANNEL(sioc), listener->name); } + sioc->listener = listener; listener->sioc = g_renew(QIOChannelSocket *, listener->sioc, listener->nsioc + 1); -- 2.51.1
