X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Ftelnet_src%2Fmain.c;fp=Usermode%2FApplications%2Ftelnet_src%2Fmain.c;h=f4f048a45a0b8f0c65727246629b3ed43bf3b9b3;hb=4d84d07d09de5a38a73b685636d2ddea055421ae;hp=6c4f892ec69a195e386674abe6a9cc8c5de0ae76;hpb=402e274237161129c6e24e561cd3c11971a703be;p=tpg%2Facess2.git diff --git a/Usermode/Applications/telnet_src/main.c b/Usermode/Applications/telnet_src/main.c index 6c4f892e..f4f048a4 100644 --- a/Usermode/Applications/telnet_src/main.c +++ b/Usermode/Applications/telnet_src/main.c @@ -27,14 +27,15 @@ int main(int argc, char *argv[], char *envp[]) while( client_running ) { fd_set fds; + fd_set err_fds; char buffer[BUFSIZ]; int len; - FD_ZERO(&fds); - FD_SET(0, &fds); - FD_SET(server_fd, &fds); + FD_ZERO(&fds); FD_ZERO(&err_fds); + FD_SET(0, &fds); FD_SET(0, &err_fds); + FD_SET(server_fd, &fds); FD_SET(server_fd, &err_fds); - rv = select(server_fd+1, &fds, NULL, NULL, NULL); + rv = select(server_fd+1, &fds, NULL, &err_fds, NULL); if( rv < 0 ) break; if( FD_ISSET(server_fd, &fds) ) @@ -57,6 +58,11 @@ int main(int argc, char *argv[], char *envp[]) write(1, len, buffer); } while( len == BUFSIZ ); } + + if( FD_ISSET(server_fd, &err_fds) ) + { + break ; + } } close(server_fd);