From 6e3572df2f3c1f75e861c8ce01d687d763487fb7 Mon Sep 17 00:00:00 2001 From: XieHan Date: Fri, 21 Apr 2023 19:56:26 +0800 Subject: [PATCH] PD_OP_RECV_MESSAGE->PD_OP_RECVFROM --- src/kernel/poller.c | 23 ++++++++++++----------- src/kernel/poller.h | 6 +++--- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/kernel/poller.c b/src/kernel/poller.c index aabb299a..e9e5255a 100644 --- a/src/kernel/poller.c +++ b/src/kernel/poller.c @@ -841,21 +841,21 @@ static void __poller_handle_notify(struct __poller_node *node, poller->cb((struct poller_result *)node, poller->ctx); } -static void __poller_handle_recv_message(struct __poller_node *node, - poller_t *poller) +static void __poller_handle_recvfrom(struct __poller_node *node, + poller_t *poller) { struct __poller_node *res = node->res; struct sockaddr_storage ss; struct sockaddr *addr = (struct sockaddr *)&ss; socklen_t addrlen; - poller_message_t *msg; - void *p = poller->buf; + void *result; ssize_t n; while (1) { addrlen = sizeof (struct sockaddr_storage); - n = recvfrom(node->data.fd, p, POLLER_BUFSIZE, 0, addr, &addrlen); + n = recvfrom(node->data.fd, poller->buf, POLLER_BUFSIZE, 0, + addr, &addrlen); if (n < 0) { if (errno == EAGAIN) @@ -864,12 +864,13 @@ static void __poller_handle_recv_message(struct __poller_node *node, break; } - msg = node->data.recv_message(addr, addrlen, p, n, node->data.context); - if (!msg) + result = node->data.recvfrom(addr, addrlen, poller->buf, n, + node->data.context); + if (!result) break; res->data = node->data; - res->data.message = msg; + res->data.result = result; res->error = 0; res->state = PR_ST_SUCCESS; poller->cb((struct poller_result *)res, poller->ctx); @@ -1054,8 +1055,8 @@ static void *__poller_thread_routine(void *arg) case PD_OP_NOTIFY: __poller_handle_notify(node, poller); break; - case PD_OP_RECV_MESSAGE: - __poller_handle_recv_message(node, poller); + case PD_OP_RECVFROM: + __poller_handle_recvfrom(node, poller); break; } } @@ -1291,7 +1292,7 @@ static int __poller_data_get_event(int *event, const struct poller_data *data) case PD_OP_NOTIFY: *event = EPOLLIN | EPOLLET; return 1; - case PD_OP_RECV_MESSAGE: + case PD_OP_RECVFROM: *event = EPOLLIN | EPOLLET; return 1; default: diff --git a/src/kernel/poller.h b/src/kernel/poller.h index 8e2d49a9..a8e464f5 100644 --- a/src/kernel/poller.h +++ b/src/kernel/poller.h @@ -47,7 +47,7 @@ struct poller_data #define PD_OP_SSL_SHUTDOWN 7 #define PD_OP_EVENT 8 #define PD_OP_NOTIFY 9 -#define PD_OP_RECV_MESSAGE 10 +#define PD_OP_RECVFROM 10 short operation; unsigned short iovcnt; int fd; @@ -59,8 +59,8 @@ struct poller_data void *(*accept)(const struct sockaddr *, socklen_t, int, void *); void *(*event)(void *); void *(*notify)(void *, void *); - poller_message_t *(*recv_message)(const struct sockaddr *, socklen_t, - const void *, size_t, void *); + void *(*recvfrom)(const struct sockaddr *, socklen_t, + const void *, size_t, void *); }; void *context; union