mirror of
https://github.com/haiwen/libsearpc.git
synced 2025-08-17 03:56:32 +00:00
Use data->len directly
This commit is contained in:
parent
a816018bd3
commit
2fc1a71d1c
@ -299,13 +299,12 @@ out:
|
|||||||
static int
|
static int
|
||||||
read_client_request (int connfd, ServerHandlerData *data)
|
read_client_request (int connfd, ServerHandlerData *data)
|
||||||
{
|
{
|
||||||
guint32 len = data->len;
|
|
||||||
char *buf;
|
char *buf;
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
// read length of request.
|
// read length of request.
|
||||||
if (data->header_offset != 4) {
|
if (data->header_offset != 4) {
|
||||||
n = epoll_read_n(connfd, (void *)&len + data->header_offset, sizeof(guint32) - data->header_offset);
|
n = epoll_read_n(connfd, (void *)&(data->len) + data->header_offset, sizeof(guint32) - data->header_offset);
|
||||||
if (n < 0) {
|
if (n < 0) {
|
||||||
g_warning("Failed to read rpc request size: %s\n", strerror(errno));
|
g_warning("Failed to read rpc request size: %s\n", strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
@ -317,18 +316,17 @@ read_client_request (int connfd, ServerHandlerData *data)
|
|||||||
g_warning("Failed to read rpc request size\n");
|
g_warning("Failed to read rpc request size\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (len == 0) {
|
if (data->len == 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
data->len = len;
|
|
||||||
if (!data->buffer) {
|
if (!data->buffer) {
|
||||||
data->buffer = g_new0 (char, len);
|
data->buffer = g_new0 (char, data->len);
|
||||||
}
|
}
|
||||||
|
|
||||||
// read content of request.
|
// read content of request.
|
||||||
n = epoll_read_n(connfd, data->buffer + data->offset, len - data->offset);
|
n = epoll_read_n(connfd, data->buffer + data->offset, data->len - data->offset);
|
||||||
if (n < 0) {
|
if (n < 0) {
|
||||||
g_warning ("Failed to read rpc request: %s\n", strerror(errno));
|
g_warning ("Failed to read rpc request: %s\n", strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
@ -415,11 +413,8 @@ epoll_listen (SearpcNamedPipeServer *server)
|
|||||||
epoll_ctl(server->epoll_fd, EPOLL_CTL_DEL, connfd, NULL);
|
epoll_ctl(server->epoll_fd, EPOLL_CTL_DEL, connfd, NULL);
|
||||||
close (connfd);
|
close (connfd);
|
||||||
continue;
|
continue;
|
||||||
} else if (data->header_offset != 4) {
|
} else if (data->header_offset != 4 || data->len != data->offset) {
|
||||||
// Continue reading request length.
|
// Continue reading request.
|
||||||
continue;
|
|
||||||
} else if (data->len != data->offset) {
|
|
||||||
// Continue reading request content.
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user