Merge Ubus with the 2016.02.26 version.

This commit is contained in:
2016-02-26 23:57:13 +01:00
parent 7eac5c920a
commit 5ed9eb9715
23 changed files with 1282 additions and 97 deletions

View File

@@ -11,7 +11,7 @@
* GNU General Public License for more details.
*/
// AWOX #define _GNU_SOURCE
#define _GNU_SOURCE
#include <sys/types.h>
#include <sys/uio.h>
#include <sys/socket.h>
@@ -54,7 +54,7 @@ static void wait_data(int fd, bool write)
struct pollfd pfd = { .fd = fd };
pfd.events = write ? POLLOUT : POLLIN;
poll(&pfd, 1, 0);
poll(&pfd, 1, -1);
}
static int writev_retry(int fd, struct iovec *iov, int iov_len, int sock_fd)
@@ -293,7 +293,8 @@ static bool get_next_msg(struct ubus_context *ctx, int *recv_fd)
iov.iov_base = (char *)ctx->msgbuf.data + sizeof(hdrbuf.data);
iov.iov_len = blob_len(ctx->msgbuf.data);
if (iov.iov_len > 0 && !recv_retry(ctx->sock.fd, &iov, true, NULL))
if (iov.iov_len > 0 &&
recv_retry(ctx->sock.fd, &iov, true, NULL) <= 0)
return false;
return true;
@@ -321,7 +322,7 @@ void __hidden ubus_poll_data(struct ubus_context *ctx, int timeout)
.events = POLLIN | POLLERR,
};
poll(&pfd, 1, timeout);
poll(&pfd, 1, timeout ? timeout : -1);
ubus_handle_data(&ctx->sock, ULOOP_READ);
}
@@ -393,10 +394,8 @@ int ubus_reconnect(struct ubus_context *ctx, const char *path)
goto out_free;
ret = UBUS_STATUS_OK;
//fcntl(ctx->sock.fd, F_SETFL, fcntl(ctx->sock.fd, F_GETFL) | O_NONBLOCK | O_CLOEXEC);
// AWOX M2: Should add F_SETFD:
fcntl(ctx->sock.fd, F_SETFL, fcntl(ctx->sock.fd, F_GETFL) | O_NONBLOCK);
fcntl(ctx->sock.fd, F_SETFL, fcntl(ctx->sock.fd, F_GETFL) | O_NONBLOCK | O_CLOEXEC);
ubus_refresh_state(ctx);
out_free: