diff --git a/Connector_RTMP/main.cpp b/Connector_RTMP/main.cpp index d2b53d16..caeba255 100644 --- a/Connector_RTMP/main.cpp +++ b/Connector_RTMP/main.cpp @@ -16,6 +16,7 @@ bool inited = false; bool stopparsing = false; timeval lastrec; +int CONN_fd = 0; FILE * CONN = 0; #include "parsechunks.cpp" //chunkstream parsing #include "handshake.cpp" //handshaking @@ -28,7 +29,8 @@ int main(){ int status; while (server_socket > 0){ waitpid((pid_t)-1, &status, WNOHANG); - CONN = DDV_Accept(server_socket); + CONN_fd = DDV_Accept(server_socket); + CONN = fdopen(CONN_fd, "r+"); pid_t myid = fork(); if (myid == 0){ break; @@ -72,8 +74,8 @@ int main(){ int poller = epoll_create(1); struct epoll_event ev; ev.events = EPOLLIN; - ev.data.fd = fileno(CONN); - epoll_ctl(poller, EPOLL_CTL_ADD, fileno(CONN), &ev); + ev.data.fd = CONN_fd; + epoll_ctl(poller, EPOLL_CTL_ADD, CONN_fd, &ev); struct epoll_event events[1]; diff --git a/util/ddv_socket.cpp b/util/ddv_socket.cpp index 17f06366..beb23d41 100644 --- a/util/ddv_socket.cpp +++ b/util/ddv_socket.cpp @@ -31,11 +31,6 @@ int DDV_Listen(int port){ } } -FILE * DDV_Accept(int sock){ - int r = accept(sock, 0, 0); - if (r != -1){ - return fdopen(r, "r+"); - }else{ - return (FILE*)0; - } +int DDV_Accept(int sock){ + return accept(sock, 0, 0); }