|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT LWIP PATCH 1/7] Fix poll() ret variable type and select() maxfd calculation
Poll ret variable must be declared as int
Select must calculate maxfd as the maximum between lwip file descriptors
Signed-off-by: Mihai Pogonaru <pogonarumihai@xxxxxxxxx>
---
sockets.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/sockets.c b/sockets.c
index 77235e9..e95758d 100644
--- a/sockets.c
+++ b/sockets.c
@@ -335,7 +335,8 @@ EXIT:
int poll(struct pollfd fds[], nfds_t nfds, int timeout)
{
- unsigned int i, ret;
+ int ret;
+ unsigned int i;
struct sock_net_file *file;
struct pollfd lwip_fds[nfds];
@@ -395,7 +396,6 @@ int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds,
maxfd = 0;
for (i = 0; i < nfds; i++) {
if (readfds && FD_ISSET(i, readfds)) {
- maxfd = i;
file = sock_net_file_get(i);
if (PTRISERR(file)) {
LWIP_DEBUGF(SOCKETS_DEBUG,
@@ -405,11 +405,12 @@ int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds,
SOCK_NET_SET_ERRNO(PTR2ERR(file));
goto EXIT;
}
+ if (maxfd < file->sock_fd)
+ maxfd = file->sock_fd;
FD_SET(file->sock_fd, &rd);
vfscore_put_file(&file->vfscore_file); /* release
refcount */
}
if (writefds && FD_ISSET(i, writefds)) {
- maxfd = i;
file = sock_net_file_get(i);
if (PTRISERR(file)) {
LWIP_DEBUGF(SOCKETS_DEBUG,
@@ -419,11 +420,12 @@ int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds,
SOCK_NET_SET_ERRNO(PTR2ERR(file));
goto EXIT;
}
+ if (maxfd < file->sock_fd)
+ maxfd = file->sock_fd;
FD_SET(file->sock_fd, &wr);
vfscore_put_file(&file->vfscore_file); /* release
refcount */
}
if (exceptfds && FD_ISSET(i, exceptfds)) {
- maxfd = i;
file = sock_net_file_get(i);
if (PTRISERR(file)) {
LWIP_DEBUGF(SOCKETS_DEBUG,
@@ -433,6 +435,8 @@ int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds,
SOCK_NET_SET_ERRNO(PTR2ERR(file));
goto EXIT;
}
+ if (maxfd < file->sock_fd)
+ maxfd = file->sock_fd;
FD_SET(file->sock_fd, &xc);
vfscore_put_file(&file->vfscore_file); /* release
refcount */
}
--
2.11.0
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |