/*****************************************************************************
* tcp.c: TCP input module
*****************************************************************************
- * Copyright (C) 2003-2004 VideoLAN
+ * Copyright (C) 2003-2004 the VideoLAN team
* $Id$
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
char *psz_parser = psz_dup;
/* Parse server:port */
- while( *psz_parser && *psz_parser != ':' )
+ if( *psz_parser == '[' )
{
- if( *psz_parser == '[' )
- {
- /* IPV6 */
- while( *psz_parser && *psz_parser != ']' )
- {
- psz_parser++;
- }
- }
- psz_parser++;
+ psz_parser = strchr( psz_parser, ']' );
+ if( psz_parser == NULL )
+ psz_parser = psz_dup;
}
- if( *psz_parser != ':' || psz_parser == psz_dup )
- {
- msg_Err( p_access, "you have to provide server:port addresse" );
- free( psz_dup );
- return VLC_EGENERIC;
- }
- *psz_parser++ = '\0';
+ psz_parser = strchr( psz_parser, ':' );
- if( atoi( psz_parser ) <= 0 )
+ if( psz_parser == NULL )
{
- msg_Err( p_access, "invalid port number (%d)", atoi( psz_parser ) );
+ msg_Err( p_access, "missing port number : %s", psz_dup );
free( psz_dup );
return VLC_EGENERIC;
}
+ *psz_parser++ = '\0';
+
/* Init p_access */
p_access->pf_read = Read;
p_access->pf_block = NULL;
p_access->info.i_seekpoint = 0;
p_access->p_sys = p_sys = malloc( sizeof( access_sys_t ) );
- p_sys->fd = net_OpenTCP( p_access, psz_dup, atoi( psz_parser ) );
+ p_sys->fd = net_ConnectTCP( p_access, psz_dup, atoi( psz_parser ) );
free( psz_dup );
if( p_sys->fd < 0 )