diff --git a/subsys/net/lib/dns/dispatcher.c b/subsys/net/lib/dns/dispatcher.c index 6b81dbc37b0..c0803f093bd 100644 --- a/subsys/net/lib/dns/dispatcher.c +++ b/subsys/net/lib/dns/dispatcher.c @@ -334,6 +334,11 @@ int dns_dispatcher_unregister(struct dns_socket_dispatcher *ctx) (void)sys_slist_find_and_remove(&sockets, &ctx->node); + (void)net_socket_service_unregister(ctx->svc); + + /* Mark the context as unregistered */ + ctx->sock = -1; + for (int i = 0; i < ctx->fds_len; i++) { CHECKIF((int)ctx->fds[i].fd >= (int)ARRAY_SIZE(dispatch_table)) { ret = -ERANGE;