comparison stream/tcp.c @ 19543:e053647fbeec

Cosmetics: recommit patch changing return values to defines
author reimar
date Sat, 26 Aug 2006 19:35:55 +0000
parents 57980fe3ad96
children 50c9dc00154d
comparison
equal deleted inserted replaced
19542:57980fe3ad96 19543:e053647fbeec
81 socket_server_fd = socket(af, SOCK_STREAM, 0); 81 socket_server_fd = socket(af, SOCK_STREAM, 0);
82 82
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 -2; 86 return TCP_ERROR_FATAL;
87 } 87 }
88 88
89 switch (af) { 89 switch (af) {
90 case AF_INET: our_s_addr = (void *) &server_address.four.sin_addr; break; 90 case AF_INET: our_s_addr = (void *) &server_address.four.sin_addr; break;
91 #ifdef HAVE_AF_INET6 91 #ifdef HAVE_AF_INET6
92 case AF_INET6: our_s_addr = (void *) &server_address.six.sin6_addr; break; 92 case AF_INET6: our_s_addr = (void *) &server_address.six.sin6_addr; break;
93 #endif 93 #endif
94 default: 94 default:
95 mp_msg(MSGT_NETWORK,MSGL_ERR, MSGTR_MPDEMUX_NW_UnknownAF, af); 95 mp_msg(MSGT_NETWORK,MSGL_ERR, MSGTR_MPDEMUX_NW_UnknownAF, af);
96 return -2; 96 return TCP_ERROR_FATAL;
97 } 97 }
98 98
99 99
100 memset(&server_address, 0, sizeof(server_address)); 100 memset(&server_address, 0, sizeof(server_address));
101 101
116 #else 116 #else
117 hp=(struct hostent*)gethostbyname( host ); 117 hp=(struct hostent*)gethostbyname( host );
118 #endif 118 #endif
119 if( hp==NULL ) { 119 if( hp==NULL ) {
120 if(verb) mp_msg(MSGT_NETWORK,MSGL_ERR,MSGTR_MPDEMUX_NW_CantResolv, af2String(af), host); 120 if(verb) mp_msg(MSGT_NETWORK,MSGL_ERR,MSGTR_MPDEMUX_NW_CantResolv, af2String(af), host);
121 return -2; 121 return TCP_ERROR_FATAL;
122 } 122 }
123 123
124 memcpy( our_s_addr, (void*)hp->h_addr_list[0], hp->h_length ); 124 memcpy( our_s_addr, (void*)hp->h_addr_list[0], hp->h_length );
125 } 125 }
126 #ifdef HAVE_WINSOCK2 126 #ifdef HAVE_WINSOCK2
143 server_address_size = sizeof(server_address.six); 143 server_address_size = sizeof(server_address.six);
144 break; 144 break;
145 #endif 145 #endif
146 default: 146 default:
147 mp_msg(MSGT_NETWORK,MSGL_ERR, MSGTR_MPDEMUX_NW_UnknownAF, af); 147 mp_msg(MSGT_NETWORK,MSGL_ERR, MSGTR_MPDEMUX_NW_UnknownAF, af);
148 return -2; 148 return TCP_ERROR_FATAL;
149 } 149 }
150 150
151 #if defined(USE_ATON) || defined(HAVE_WINSOCK2) 151 #if defined(USE_ATON) || defined(HAVE_WINSOCK2)
152 strncpy( buf, inet_ntoa( *((struct in_addr*)our_s_addr) ), 255); 152 strncpy( buf, inet_ntoa( *((struct in_addr*)our_s_addr) ), 255);
153 #else 153 #else
168 #else 168 #else
169 if( (WSAGetLastError() != WSAEINPROGRESS) && (WSAGetLastError() != WSAEWOULDBLOCK) ) { 169 if( (WSAGetLastError() != WSAEINPROGRESS) && (WSAGetLastError() != WSAEWOULDBLOCK) ) {
170 #endif 170 #endif
171 if(verb) mp_msg(MSGT_NETWORK,MSGL_ERR,MSGTR_MPDEMUX_NW_CantConnect2Server, af2String(af)); 171 if(verb) mp_msg(MSGT_NETWORK,MSGL_ERR,MSGTR_MPDEMUX_NW_CantConnect2Server, af2String(af));
172 closesocket(socket_server_fd); 172 closesocket(socket_server_fd);
173 return -1; 173 return TCP_ERROR_PORT;
174 } 174 }
175 } 175 }
176 tv.tv_sec = 0; 176 tv.tv_sec = 0;
177 tv.tv_usec = 500000; 177 tv.tv_usec = 500000;
178 FD_ZERO( &set ); 178 FD_ZERO( &set );
184 else if(count > 30 || mp_input_check_interrupt(500)) { 184 else if(count > 30 || mp_input_check_interrupt(500)) {
185 if(count > 30) 185 if(count > 30)
186 mp_msg(MSGT_NETWORK,MSGL_ERR,MSGTR_MPDEMUX_NW_ConnTimeout); 186 mp_msg(MSGT_NETWORK,MSGL_ERR,MSGTR_MPDEMUX_NW_ConnTimeout);
187 else 187 else
188 mp_msg(MSGT_NETWORK,MSGL_V,"Connection interuppted by user\n"); 188 mp_msg(MSGT_NETWORK,MSGL_V,"Connection interuppted by user\n");
189 return -3; 189 return TCP_ERROR_TIMEOUT;
190 } 190 }
191 count++; 191 count++;
192 FD_ZERO( &set ); 192 FD_ZERO( &set );
193 FD_SET( socket_server_fd, &set ); 193 FD_SET( socket_server_fd, &set );
194 tv.tv_sec = 0; 194 tv.tv_sec = 0;
205 // Check if there were any error 205 // Check if there were any error
206 err_len = sizeof(int); 206 err_len = sizeof(int);
207 ret = getsockopt(socket_server_fd,SOL_SOCKET,SO_ERROR,&err,&err_len); 207 ret = getsockopt(socket_server_fd,SOL_SOCKET,SO_ERROR,&err,&err_len);
208 if(ret < 0) { 208 if(ret < 0) {
209 mp_msg(MSGT_NETWORK,MSGL_ERR,MSGTR_MPDEMUX_NW_GetSockOptFailed,strerror(errno)); 209 mp_msg(MSGT_NETWORK,MSGL_ERR,MSGTR_MPDEMUX_NW_GetSockOptFailed,strerror(errno));
210 return -2; 210 return TCP_ERROR_FATAL;
211 } 211 }
212 if(err > 0) { 212 if(err > 0) {
213 mp_msg(MSGT_NETWORK,MSGL_ERR,MSGTR_MPDEMUX_NW_ConnectError,strerror(err)); 213 mp_msg(MSGT_NETWORK,MSGL_ERR,MSGTR_MPDEMUX_NW_ConnectError,strerror(err));
214 return -1; 214 return TCP_ERROR_PORT;
215 } 215 }
216 216
217 return socket_server_fd; 217 return socket_server_fd;
218 } 218 }
219 219
224 224
225 int 225 int
226 connect2Server(char *host, int port, int verb) { 226 connect2Server(char *host, int port, int verb) {
227 #ifdef HAVE_AF_INET6 227 #ifdef HAVE_AF_INET6
228 int r; 228 int r;
229 int s = -2; 229 int s = TCP_ERROR_FATAL;
230 230
231 r = connect2Server_with_af(host, port, network_prefer_ipv4 ? AF_INET:AF_INET6,verb); 231 r = connect2Server_with_af(host, port, network_prefer_ipv4 ? AF_INET:AF_INET6,verb);
232 if (r > -1) return r; 232 if (r >= 0) return r;
233 233
234 s = connect2Server_with_af(host, port, network_prefer_ipv4 ? AF_INET6:AF_INET,verb); 234 s = connect2Server_with_af(host, port, network_prefer_ipv4 ? AF_INET6:AF_INET,verb);
235 if (s == -2) return r; 235 if (s == TCP_ERROR_FATAL) return r;
236 return s; 236 return s;
237 #else 237 #else
238 return connect2Server_with_af(host, port, AF_INET,verb); 238 return connect2Server_with_af(host, port, AF_INET,verb);
239 #endif 239 #endif
240 240