- access_t *p_access = (access_t*)p_this;
- access_sys_t *p_sys;
- char *psz;
-
- int i_answer;
- char *psz_arg;
-
- /* Init p_access */
- p_access->pf_read = Read;
- p_access->pf_block = NULL;
- p_access->pf_seek = Seek;
- p_access->pf_control = Control;
- p_access->info.i_update = 0;
- p_access->info.i_size = 0;
- p_access->info.i_pos = 0;
- p_access->info.b_eof = VLC_FALSE;
- p_access->info.i_title = 0;
- p_access->info.i_seekpoint = 0;
- p_access->p_sys = p_sys = malloc( sizeof( access_sys_t ) );
- memset( p_sys, 0, sizeof( access_sys_t ) );
- p_sys->fd_cmd = -1;
- p_sys->fd_data = -1;
-
- /* *** Parse URL and get server addr/port and path *** */
- psz = p_access->psz_path;
- while( *psz == '/' )
- {
- psz++;
- }
- vlc_UrlParse( &p_sys->url, psz, 0 );
-
- if( p_sys->url.psz_host == NULL || *p_sys->url.psz_host == '\0' )
- {
- msg_Err( p_access, "invalid server name" );
- goto exit_error;
- }
- if( p_sys->url.i_port <= 0 )
- {
- p_sys->url.i_port = 21; /* default port */
- }
-
- if( Connect( p_access, p_sys ) < 0 )
- goto exit_error;