From: Felix Fietkau Date: Thu, 27 Feb 2014 15:48:53 +0000 (+0100) Subject: libubus: close file descriptor after passing it in the status msg X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fubus.git;a=commitdiff_plain;h=8f3c5a7b50eb4642108f104d33c043da6d0f14a4 libubus: close file descriptor after passing it in the status msg Simplifies handling of non-deferred requests Signed-off-by: Felix Fietkau --- diff --git a/examples/server.c b/examples/server.c index bfad363..95eba5e 100644 --- a/examples/server.c +++ b/examples/server.c @@ -68,7 +68,6 @@ static void test_hello_reply(struct uloop_timeout *t) pipe(fds); ubus_request_set_fd(ctx, &req->req, fds[0]); ubus_complete_deferred_request(ctx, &req->req, 0); - close(fds[0]); req->fd = fds[1]; req->timeout.cb = test_hello_fd_reply; diff --git a/libubus-io.c b/libubus-io.c index bc054b8..030d382 100644 --- a/libubus-io.c +++ b/libubus-io.c @@ -142,6 +142,9 @@ int __hidden ubus_send_msg(struct ubus_context *ctx, uint32_t seq, if (ret < 0) ctx->sock.eof = true; + if (fd >= 0) + close(fd); + return ret; }