From aa4a8789d53211fd5168ca36afc18fd22efc720d Mon Sep 17 00:00:00 2001 From: Robert Lubos Date: Thu, 3 Jul 2025 10:26:20 +0200 Subject: [PATCH] net: sockets: socket_dispatcher: Fix close function type Socket dispatcher (and offloaded implementations in tests) register fd as ZVFS_MODE_IFSOCK therefore they should register a close2( function instead of close(). Signed-off-by: Robert Lubos --- subsys/net/lib/sockets/socket_dispatcher.c | 6 ++++-- tests/net/socket/offload_dispatcher/src/main.c | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/subsys/net/lib/sockets/socket_dispatcher.c b/subsys/net/lib/sockets/socket_dispatcher.c index f71339e41c9..c37e929ffa9 100644 --- a/subsys/net/lib/sockets/socket_dispatcher.c +++ b/subsys/net/lib/sockets/socket_dispatcher.c @@ -393,8 +393,10 @@ static int sock_dispatch_setsockopt_vmeth(void *obj, int level, int optname, return zsock_setsockopt(fd, level, optname, optval, optlen); } -static int sock_dispatch_close_vmeth(void *obj) +static int sock_dispatch_close_vmeth(void *obj, int fd) { + ARG_UNUSED(fd); + dispatcher_ctx_free(obj); return 0; @@ -428,7 +430,7 @@ static const struct socket_op_vtable sock_dispatch_fd_op_vtable = { .fd_vtable = { .read = sock_dispatch_read_vmeth, .write = sock_dispatch_write_vmeth, - .close = sock_dispatch_close_vmeth, + .close2 = sock_dispatch_close_vmeth, .ioctl = sock_dispatch_ioctl_vmeth, }, .shutdown = sock_dispatch_shutdown_vmeth, diff --git a/tests/net/socket/offload_dispatcher/src/main.c b/tests/net/socket/offload_dispatcher/src/main.c index 2437ee1e118..47fc4d7b220 100644 --- a/tests/net/socket/offload_dispatcher/src/main.c +++ b/tests/net/socket/offload_dispatcher/src/main.c @@ -61,10 +61,12 @@ static ssize_t offload_write(void *obj, const void *buffer, size_t count) return 0; } -static int offload_close(void *obj) +static int offload_close(void *obj, int fd) { struct test_socket_calls *ctx = obj; + ARG_UNUSED(fd); + ctx->close_called = true; return 0; @@ -252,7 +254,7 @@ static const struct socket_op_vtable offload_1_socket_fd_op_vtable = { .fd_vtable = { .read = offload_read, .write = offload_write, - .close = offload_close, + .close2 = offload_close, .ioctl = offload_ioctl, }, .shutdown = offload_shutdown, @@ -314,7 +316,7 @@ static const struct socket_op_vtable offload_2_socket_fd_op_vtable = { .fd_vtable = { .read = offload_read, .write = offload_write, - .close = offload_close, + .close2 = offload_close, .ioctl = offload_ioctl, }, .shutdown = offload_shutdown,