diff options
-rw-r--r-- | src/SocketUtils.h | 5 | ||||
-rw-r--r-- | src/Utils.c | 15 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/SocketUtils.h b/src/SocketUtils.h index 61ba6a0..37931c0 100644 --- a/src/SocketUtils.h +++ b/src/SocketUtils.h @@ -88,11 +88,16 @@ int Socket_TCPBlockingWrite(int fd, char *buffer, int buflen); ** to stderr, define PERRORS. **=================================================================*/ int Socket_TCPBlockingRead(int fd,char *buffer,int buflen); + + +int Socket_SetNonBlocking(int sock); + #else int Socket_TCPOpenClientSock(); int Socket_TCPOpenServerSock(); int Socket_TCPBlockingWrite(); int Socket_TCPBlockingRead(); +int Socket_SetNonBlocking(); #endif #define PERRORS diff --git a/src/Utils.c b/src/Utils.c index 62e95c7..4aee4c0 100644 --- a/src/Utils.c +++ b/src/Utils.c @@ -23,6 +23,8 @@ #include <netdb.h> #include <sys/errno.h> #include <arpa/inet.h> +#include <fcntl.h> +#include <unistd.h> #include "SocketUtils.h" @@ -409,3 +411,16 @@ int Socket_TCPBlockingRead(int fd,char *buffer, int buflen) return accum; } } + +int Socket_SetNonBlocking(int sock) +{ + int retval,ierr; + ierr = fcntl (sock, F_SETFL, O_NONBLOCK); + + if (ierr<0) + retval = -1; + else + retval = 0; + + return(retval); +} |