From 2a0a32cfa3f59e8ed15dc01a0f47a8781616e064 Mon Sep 17 00:00:00 2001 From: Matheus Date: Sat, 13 Apr 2024 20:59:44 -0300 Subject: [PATCH] udp: fix poll --- kernel-src/io/net/udp.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel-src/io/net/udp.c b/kernel-src/io/net/udp.c index 27fcd18c..092f8120 100644 --- a/kernel-src/io/net/udp.c +++ b/kernel-src/io/net/udp.c @@ -221,8 +221,11 @@ static int udp_recv(socket_t *socket, sockaddr_t *addr, void *buffer, size_t cou int revents = internalpoll(socket, &desc.data[0], POLLIN); - if (revents) + if (revents) { + poll_leave(&desc); + poll_destroydesc(&desc); break; + } if (flags & V_FFLAGS_NONBLOCKING) { e = EAGAIN; @@ -312,10 +315,7 @@ socket_t *udp_createsocket() { return NULL; } SPINLOCK_INIT(socket->ringbufferlock); - socket->socket.ops = &socketops; - socket->socket.state = SOCKET_STATE_UNBOUND; - MUTEX_INIT(&socket->socket.mutex); - socket->socket.type = SOCKET_TYPE_UDP; + return (socket_t *)socket; }