return -1;
memset( &hints, 0, sizeof( hints ) );
+ hints.ai_socktype = type;
hints.ai_protocol = proto;
psz_socks = var_CreateGetNonEmptyString( p_this, "socks" );
if( i_val )
{
msg_Err( p_this, "cannot resolve %s port %d : %s", psz_realhost,
- i_realport, vlc_gai_strerror( i_val ) );
+ i_realport, gai_strerror( i_val ) );
return -1;
}
continue;
}
- vlc_freeaddrinfo( res );
+ freeaddrinfo( res );
if( i_handle == -1 )
return -1;
int net_AcceptSingle (vlc_object_t *obj, int lfd)
{
- int fd;
-
- do
- {
-#ifdef HAVE_ACCEPT4
- fd = accept4 (lfd, NULL, NULL, SOCK_CLOEXEC);
- if (fd == -1 && errno == ENOSYS)
-#endif
- fd = accept (lfd, NULL, NULL);
- }
- while (fd == -1 && errno == EINTR);
-
+ int fd = vlc_accept (lfd, NULL, NULL, true);
if (fd == -1)
{
if (net_errno != EAGAIN && net_errno != EWOULDBLOCK)
}
msg_Dbg (obj, "accepted socket %d (from socket %d)", fd, lfd);
- net_SetupSocket (fd);
+ setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &(int){ 1 }, sizeof(int));
return fd;
}
SetWBE( &buffer[2], i_port ); /* Port */
memcpy( &buffer[4], /* Address */
&((struct sockaddr_in *)(p_res->ai_addr))->sin_addr, 4 );
- vlc_freeaddrinfo( p_res );
+ freeaddrinfo( p_res );
buffer[8] = 0; /* Empty user id */