#endif
static int SocksNegociate( vlc_object_t *, int fd, int i_socks_version,
- char *psz_socks_user, char *psz_socks_passwd );
+ const char *psz_user, const char *psz_passwd );
static int SocksHandshakeTCP( vlc_object_t *,
int fd, int i_socks_version,
- char *psz_socks_user, char *psz_socks_passwd,
+ const char *psz_user, const char *psz_passwd,
const char *psz_host, int i_port );
extern int net_Socket( vlc_object_t *p_this, int i_family, int i_socktype,
int i_protocol );
proto ?: ptr->ai_protocol );
if( fd == -1 )
{
- msg_Dbg( p_this, "socket error: %s", strerror( net_errno ) );
+ msg_Dbg( p_this, "socket error: %m" );
continue;
}
if( net_errno != EINPROGRESS )
{
- msg_Err( p_this, "connection failed: %s",
- strerror( net_errno ) );
+ msg_Err( p_this, "connection failed: %m" );
goto next_ai;
}
if( ( i_ret == -1 ) && ( net_errno != EINTR ) )
{
- msg_Err( p_this, "connection polling error: %s",
- strerror( net_errno ) );
+ msg_Err( p_this, "connection polling error: %m" );
goto next_ai;
}
if( getsockopt( fd, SOL_SOCKET, SO_ERROR, (void*)&i_val,
&i_val_size ) == -1 || i_val != 0 )
{
- msg_Err( p_this, "connection failed: %s",
- net_strerror( i_val ) );
+ msg_Err( p_this, "connection failed: %m" );
goto next_ai;
}
#endif
if( psz_socks != NULL )
{
/* NOTE: psz_socks already free'd! */
- char *psz_user = var_CreateGetString( p_this, "socks-user" );
- char *psz_pwd = var_CreateGetString( p_this, "socks-pwd" );
+ char *psz_user = var_CreateGetNonEmptyString( p_this, "socks-user" );
+ char *psz_pwd = var_CreateGetNonEmptyString( p_this, "socks-pwd" );
if( SocksHandshakeTCP( p_this, i_handle, 5, psz_user, psz_pwd,
psz_host, i_port ) )
*****************************************************************************
* Accept a connection on a set of listening sockets and return it
*****************************************************************************/
-int __net_Accept( vlc_object_t *p_this, int pi_fd[], mtime_t i_wait )
+int __net_Accept( vlc_object_t *p_this, int *pi_fd, mtime_t i_wait )
{
vlc_bool_t b_block = (i_wait < 0);
+ assert( pi_fd != NULL );
+
while( !p_this->b_die )
{
unsigned n = 0;
case -1:
if (net_errno != EINTR)
{
- msg_Err (p_this, "poll error: %s",
- net_strerror (net_errno));
+ msg_Err (p_this, "poll error: %m");
}
return -1;
int fd = accept (sfd, NULL, NULL);
if (fd == -1)
{
- msg_Err (p_this, "accept failed (%s)",
- net_strerror (net_errno));
+ msg_Err (p_this, "accept failed (%m)");
continue;
}
net_SetupSocket (fd);
*****************************************************************************/
static int SocksNegociate( vlc_object_t *p_obj,
int fd, int i_socks_version,
- char *psz_socks_user,
- char *psz_socks_passwd )
+ const char *psz_socks_user,
+ const char *psz_socks_passwd )
{
uint8_t buffer[128+2*256];
int i_len;
/* We negociate authentication */
- if( psz_socks_user && psz_socks_passwd &&
- *psz_socks_user && *psz_socks_passwd )
+ if( ( psz_socks_user == NULL ) && ( psz_socks_passwd == NULL ) )
b_auth = VLC_TRUE;
buffer[0] = i_socks_version; /* SOCKS version */
static int SocksHandshakeTCP( vlc_object_t *p_obj,
int fd,
int i_socks_version,
- char *psz_socks_user, char *psz_socks_passwd,
+ const char *psz_user, const char *psz_passwd,
const char *psz_host, int i_port )
{
uint8_t buffer[128+2*256];
i_socks_version = 5;
}
- if( i_socks_version == 5 &&
+ if( i_socks_version == 5 &&
SocksNegociate( p_obj, fd, i_socks_version,
- psz_socks_user, psz_socks_passwd ) )
+ psz_user, psz_passwd ) )
return VLC_EGENERIC;
if( i_socks_version == 4 )
struct addrinfo hints, *p_res;
/* v4 only support ipv4 */
- memset (&hints, 0, sizeof (hints));
+ memset (&hints, 0, sizeof (hints));
hints.ai_family = AF_INET;
if( vlc_getaddrinfo( p_obj, psz_host, 0, &hints, &p_res ) )
return VLC_EGENERIC;
i_len = buffer[4] + 2;
else if( buffer[3] == 0x04 )
i_len = 16-1+2;
- else
+ else
return VLC_EGENERIC;
if( net_Read( p_obj, fd, NULL, buffer, i_len, VLC_TRUE ) != i_len )