*: do not check for POLLIN/POLLOUT only, just in case it's POLHUP/POLERR
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		@@ -119,7 +119,7 @@ int microcom_main(int argc UNUSED_PARAM, char **argv)
 | 
			
		||||
	nfd = 2;
 | 
			
		||||
	// Not safe_poll: we want to exit on signal
 | 
			
		||||
	while (!bb_got_signal && poll(pfd, nfd, timeout) > 0) {
 | 
			
		||||
		if (nfd > 1 && (pfd[1].revents & POLLIN)) {
 | 
			
		||||
		if (nfd > 1 && pfd[1].revents) {
 | 
			
		||||
			char c;
 | 
			
		||||
			// read from stdin -> write to device
 | 
			
		||||
			if (safe_read(STDIN_FILENO, &c, 1) < 1) {
 | 
			
		||||
@@ -143,7 +143,7 @@ int microcom_main(int argc UNUSED_PARAM, char **argv)
 | 
			
		||||
				safe_poll(pfd, 1, delay);
 | 
			
		||||
skip_write: ;
 | 
			
		||||
		}
 | 
			
		||||
		if (pfd[0].revents & POLLIN) {
 | 
			
		||||
		if (pfd[0].revents) {
 | 
			
		||||
#define iobuf bb_common_bufsiz1
 | 
			
		||||
			ssize_t len;
 | 
			
		||||
			// read from device -> write to stdout
 | 
			
		||||
 
 | 
			
		||||
@@ -1167,7 +1167,7 @@ static NOINLINE void cgi_io_loop_and_exit(int fromCgi_rd, int toCgi_wr, int post
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (pfd[TO_CGI].revents & POLLOUT) {
 | 
			
		||||
		if (pfd[TO_CGI].revents) {
 | 
			
		||||
			/* hdr_cnt > 0 here due to the way pfd[TO_CGI].events set */
 | 
			
		||||
			/* Have data from peer and can write to CGI */
 | 
			
		||||
			count = safe_write(toCgi_wr, hdr_ptr, hdr_cnt);
 | 
			
		||||
@@ -1184,7 +1184,7 @@ static NOINLINE void cgi_io_loop_and_exit(int fromCgi_rd, int toCgi_wr, int post
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (pfd[0].revents & POLLIN) {
 | 
			
		||||
		if (pfd[0].revents) {
 | 
			
		||||
			/* post_len > 0 && hdr_cnt == 0 here */
 | 
			
		||||
			/* We expect data, prev data portion is eaten by CGI
 | 
			
		||||
			 * and there *is* data to read from the peer
 | 
			
		||||
@@ -1202,7 +1202,7 @@ static NOINLINE void cgi_io_loop_and_exit(int fromCgi_rd, int toCgi_wr, int post
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (pfd[FROM_CGI].revents & POLLIN) {
 | 
			
		||||
		if (pfd[FROM_CGI].revents) {
 | 
			
		||||
			/* There is something to read from CGI */
 | 
			
		||||
			char *rbuf = iobuf;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -618,7 +618,7 @@ int telnet_main(int argc UNUSED_PARAM, char **argv)
 | 
			
		||||
		default:
 | 
			
		||||
 | 
			
		||||
#ifdef USE_POLL
 | 
			
		||||
			if (ufds[0].revents & POLLIN)
 | 
			
		||||
			if (ufds[0].revents)
 | 
			
		||||
#else
 | 
			
		||||
			if (FD_ISSET(STDIN_FILENO, &rfds))
 | 
			
		||||
#endif
 | 
			
		||||
@@ -631,7 +631,7 @@ int telnet_main(int argc UNUSED_PARAM, char **argv)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
#ifdef USE_POLL
 | 
			
		||||
			if (ufds[1].revents & POLLIN)
 | 
			
		||||
			if (ufds[1].revents)
 | 
			
		||||
#else
 | 
			
		||||
			if (FD_ISSET(netfd, &rfds))
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -119,7 +119,7 @@ int script_main(int argc UNUSED_PARAM, char **argv)
 | 
			
		||||
				 * for example, try "script -c true" */
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			if (pfd[0].revents & POLLIN) {
 | 
			
		||||
			if (pfd[0].revents) {
 | 
			
		||||
				errno = 0;
 | 
			
		||||
				count = safe_read(pty, buf, sizeof(buf));
 | 
			
		||||
				if (count <= 0 && errno != EAGAIN) {
 | 
			
		||||
@@ -143,7 +143,7 @@ int script_main(int argc UNUSED_PARAM, char **argv)
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			if (pfd[1].revents & POLLIN) {
 | 
			
		||||
			if (pfd[1].revents) {
 | 
			
		||||
				count = safe_read(STDIN_FILENO, buf, sizeof(buf));
 | 
			
		||||
				if (count <= 0) {
 | 
			
		||||
					/* err/eof from stdin: don't read stdin anymore */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user