diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index c1ea103c01742ba2acd06beb1e1b33ecf2f1ef7b..5e7c8e9d630e8818d29ad68d270165c15e5c44ee 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -185,6 +185,30 @@ int close_socket(SOCKET sock) return(result); } +/* Return true if connected */ +bool socket_check(SOCKET sock) +{ + char ch; + int i; + fd_set socket_set; + struct timeval tv; + + FD_ZERO(&socket_set); + FD_SET(sock,&socket_set); + + tv.tv_sec=0; + tv.tv_usec=0; + + i=select(sock+1,&socket_set,NULL,NULL,&tv); + if(i==SOCKET_ERROR) + return(false); + + if(i==0 || recv(sock,&ch,1,MSG_PEEK)==1) + return(true); + + return(false); +} + u_long resolve_ip(char *addr) { HOSTENT* host;