Merge Ubus with the 2016.02.26 version.
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user