Skip to content

Commit e9a609f

Browse files
committed
fix socket.poll
1 parent b095ca7 commit e9a609f

1 file changed

Lines changed: 17 additions & 4 deletions

File tree

ljsocket.lua

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -625,8 +625,6 @@ do
625625
)
626626
sockaddr_ptr = ffi.typeof("$*", sockaddr)
627627

628-
function socket.poll(fd, events, revents) end
629-
630628
e = {
631629
TCP_NODELAY = 1,
632630
TCP_MAXSEG = 2,
@@ -888,6 +886,21 @@ do
888886
e.SO_RCVTIMEO = 0x1006
889887
e.SO_ERROR = 0x1007
890888
e.SO_TYPE = 0x1008
889+
e.POLLIN = 0x0001
890+
e.POLLPRI = 0x0002
891+
e.POLLOUT = 0x0004
892+
e.POLLRDNORM = 0x0040
893+
e.POLLWRNORM = 0x0004
894+
e.POLLRDBAND = 0x0080
895+
e.POLLWRBAND = 0x0100
896+
e.POLLERR = 0x0008
897+
e.POLLHUP = 0x0010
898+
e.POLLNVAL = 0x0020
899+
900+
e.POLLEXTEND = 0x0200
901+
e.POLLATTRIB = 0x0400
902+
e.POLLNLINK = 0x0800
903+
e.POLLWRITE = 0x1000
891904
errno.EINVAL = 22
892905
errno.EAGAIN = 35
893906
errno.EWOULDBLOCK = errno.EAGAIN
@@ -987,12 +1000,12 @@ function M.poll(sock, flags, timeout)
9871000
{
9881001
{
9891002
fd = sock.fd,
990-
events = POLL.table_to_flags(flags, bit.bor),
1003+
events = flags and POLL.table_to_flags(flags, bit.bor) or 0,
9911004
revents = 0,
9921005
},
9931006
}
9941007
)
995-
local ok, err = sock.poll(pfd, 1, timeout or 0)
1008+
local ok, err = socket.poll(pfd, 1, timeout or 0)
9961009

9971010
if not ok then return ok, err end
9981011

0 commit comments

Comments
 (0)