X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/8c43874c359da5024541c58c1cc7e743d4135b3d..d9c40fd6ed72588278c633ee5db5c2eefad6ba7c:/unix/uxnet.c?ds=sidebyside diff --git a/unix/uxnet.c b/unix/uxnet.c index 44b09c1d..2c9c7f17 100644 --- a/unix/uxnet.c +++ b/unix/uxnet.c @@ -810,10 +810,12 @@ int select_result(int fd, int event) /* * If we reach here, this is an oobinline socket, which - * means we should set s->oobpending and then fall through - * to the read case. + * means we should set s->oobpending and then deal with it + * when we get called for the readability event (which + * should also occur). */ s->oobpending = TRUE; + break; case 1: /* readable; also acceptance */ if (s->listener) { /* @@ -864,7 +866,7 @@ int select_result(int fd, int event) } else atmark = 1; - ret = recv(s->s, buf, sizeof(buf), 0); + ret = recv(s->s, buf, s->oobpending ? 1 : sizeof(buf), 0); noise_ultralight(ret); if (ret < 0) { if (errno == EWOULDBLOCK) {