diff --git a/Connector_RTMP/main.cpp b/Connector_RTMP/main.cpp index 0cef9875..5c2dc8c2 100644 --- a/Connector_RTMP/main.cpp +++ b/Connector_RTMP/main.cpp @@ -48,7 +48,7 @@ int main(int argc, char ** argv){ int status; while (server_socket > 0){ waitpid((pid_t)-1, &status, WNOHANG); - CONN_fd = DDV_Accept(server_socket, true); + CONN_fd = DDV_Accept(server_socket); if (CONN_fd > 0){ pid_t myid = fork(); if (myid == 0){ diff --git a/util/ddv_socket.cpp b/util/ddv_socket.cpp index 43406e4d..a1cecf6e 100644 --- a/util/ddv_socket.cpp +++ b/util/ddv_socket.cpp @@ -88,7 +88,11 @@ bool DDV_write(void * buffer, int todo, int sock){ bool DDV_ready(int sock){ char tmp; + int preflags = fcntl(sock, F_GETFL, 0); + int postflags = preflags | O_NONBLOCK; + fcntl(sock, F_SETFL, postflags); int r = recv(sock, &tmp, 1, MSG_PEEK); + fcntl(sock, F_SETFL, preflags); return (r == 1); }