diff --git a/util/ddv_socket.cpp b/util/ddv_socket.cpp index 19a6b80e..43406e4d 100644 --- a/util/ddv_socket.cpp +++ b/util/ddv_socket.cpp @@ -73,7 +73,7 @@ bool DDV_write(void * buffer, int todo, int sock){ int r = send(sock, (char*)buffer + sofar, todo-sofar, 0); if (r <= 0){ switch (errno){ - case EWOULDBLOCK: socketBlocking = true; return false; break; + case EWOULDBLOCK: socketBlocking = true; break; default: socketError = true; printf("Could not write! %s\n", strerror(errno)); @@ -86,6 +86,12 @@ bool DDV_write(void * buffer, int todo, int sock){ return true; } +bool DDV_ready(int sock){ + char tmp; + int r = recv(sock, &tmp, 1, MSG_PEEK); + return (r == 1); +} + bool DDV_read(void * buffer, int todo, int sock){ int sofar = 0; socketBlocking = false; @@ -93,7 +99,7 @@ bool DDV_read(void * buffer, int todo, int sock){ int r = recv(sock, (char*)buffer + sofar, todo-sofar, 0); if (r <= 0){ switch (errno){ - case EWOULDBLOCK: socketBlocking = true; return false; break; + case EWOULDBLOCK: socketBlocking = true; break; default: socketError = true; printf("Could not read! %s\n", strerror(errno));