diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-02-27 16:48:53 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-02-27 16:48:55 +0100 |
commit | 8f3c5a7b50eb4642108f104d33c043da6d0f14a4 (patch) | |
tree | aa6559637db91e42a0cbef8b29701fd5274f49e5 | |
parent | 334c38918063b5ece164624e20490021b2bff38a (diff) | |
download | ubus-8f3c5a7b50eb4642108f104d33c043da6d0f14a4.tar.gz |
libubus: close file descriptor after passing it in the status msg
Simplifies handling of non-deferred requests
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
-rw-r--r-- | examples/server.c | 1 | ||||
-rw-r--r-- | libubus-io.c | 3 |
2 files changed, 3 insertions, 1 deletions
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; } |