- i_read = net_Read( p_access, p_sys->fd_data, NULL, p_buffer, i_len,
- false );
- if( i_read == 0 )
- p_access->info.b_eof = true;
- else if( i_read > 0 )
- p_access->info.i_pos += i_read;
-
- return i_read;
+ if( p_sys->directory )
+ {
+ char *psz_line = net_Gets( p_access, p_sys->fd_data, NULL );
+ if( !psz_line )
+ {
+ p_access->info.b_eof = true;
+ return 0;
+ }
+ else
+ {
+ snprintf( (char*)p_buffer, i_len, "ftp://%s:%d/%s/%s\n",
+ p_sys->url.psz_host, p_sys->url.i_port,
+ p_sys->url.psz_path, psz_line );
+ free( psz_line );
+ return strlen( (const char *)p_buffer );
+ }
+ }
+ else
+ {
+ int i_read = net_Read( p_access, p_sys->fd_data, NULL,
+ p_buffer, i_len, false );
+ if( i_read == 0 )
+ p_access->info.b_eof = true;
+ else if( i_read > 0 )
+ p_access->info.i_pos += i_read;
+
+ return i_read;
+ }