--- mplayer/stream/tcp.c.blocking~ 2009-06-02 15:54:45.000000000 +0200 +++ mplayer/stream/tcp.c 2009-06-02 16:09:38.317917123 +0200 @@ -169,6 +169,7 @@ connect2Server_with_af(char *host, int p #endif if(verb) mp_msg(MSGT_NETWORK,MSGL_STATUS,MSGTR_MPDEMUX_NW_ConnectingToServer, host, buf , port ); +#ifdef NON_BLOCKING_CONNECT // Turn the socket as non blocking so we can timeout on the connection #if !HAVE_WINSOCK2_H fcntl( socket_server_fd, F_SETFL, fcntl(socket_server_fd, F_GETFL) | O_NONBLOCK ); @@ -176,17 +177,23 @@ connect2Server_with_af(char *host, int p val = 1; ioctlsocket( socket_server_fd, FIONBIO, &val ); #endif +#endif if( connect( socket_server_fd, (struct sockaddr*)&server_address, server_address_size )==-1 ) { +#ifdef NON_BLOCKING_CONNECT #if !HAVE_WINSOCK2_H if( errno!=EINPROGRESS ) { #else if( (WSAGetLastError() != WSAEINPROGRESS) && (WSAGetLastError() != WSAEWOULDBLOCK) ) { #endif +#endif if(verb) mp_msg(MSGT_NETWORK,MSGL_ERR,MSGTR_MPDEMUX_NW_CantConnect2Server, af2String(af)); closesocket(socket_server_fd); return TCP_ERROR_PORT; +#ifdef NON_BLOCKING_CONNECT } +#endif } +#ifdef NON_BLOCKING_CONNECT tv.tv_sec = 0; tv.tv_usec = 500000; FD_ZERO( &set ); @@ -226,6 +233,7 @@ connect2Server_with_af(char *host, int p mp_msg(MSGT_NETWORK,MSGL_ERR,MSGTR_MPDEMUX_NW_ConnectError,strerror(err)); return TCP_ERROR_PORT; } +#endif return socket_server_fd; }