comparison stream/tcp.c @ 22113:50c9dc00154d

Add timeout to tcp connections, avoid hanging forever. Based on patch for bugzilla #673
author rtogni
date Sun, 04 Feb 2007 14:18:56 +0000
parents e053647fbeec
children 9bc7a6022cde
comparison
equal deleted inserted replaced
22112:c9214f2c30c4 22113:50c9dc00154d
83 83
84 if( socket_server_fd==-1 ) { 84 if( socket_server_fd==-1 ) {
85 // mp_msg(MSGT_NETWORK,MSGL_ERR,"Failed to create %s socket:\n", af2String(af)); 85 // mp_msg(MSGT_NETWORK,MSGL_ERR,"Failed to create %s socket:\n", af2String(af));
86 return TCP_ERROR_FATAL; 86 return TCP_ERROR_FATAL;
87 } 87 }
88
89 #if defined SO_RCVTIMEO && defined SO_SNDTIMEO
90 tv.tv_sec = 10;
91 tv.tv_usec = 0;
92 setsockopt(socket_server_fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
93 setsockopt(socket_server_fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
94 #endif
88 95
89 switch (af) { 96 switch (af) {
90 case AF_INET: our_s_addr = (void *) &server_address.four.sin_addr; break; 97 case AF_INET: our_s_addr = (void *) &server_address.four.sin_addr; break;
91 #ifdef HAVE_AF_INET6 98 #ifdef HAVE_AF_INET6
92 case AF_INET6: our_s_addr = (void *) &server_address.six.sin6_addr; break; 99 case AF_INET6: our_s_addr = (void *) &server_address.six.sin6_addr; break;