#endif
while( !intf_ShouldDie( p_intf ) && *pi_size < MAX_LINE_LENGTH &&
- (i_read = net_ReadNonBlock( p_intf, p_intf->p_sys->i_socket == -1 ?
+ (i_read = net_Read( p_intf, p_intf->p_sys->i_socket == -1 ?
0 /*STDIN_FILENO*/ : p_intf->p_sys->i_socket, NULL,
- (uint8_t *)p_buffer + *pi_size, 1, INTF_IDLE_SLEEP ) ) > 0 )
+ (uint8_t *)p_buffer + *pi_size, 1, VLC_FALSE ) ) > 0 )
{
if( p_buffer[ *pi_size ] == '\r' || p_buffer[ *pi_size ] == '\n' )
break;
}
/* Connection closed */
- if( i_read == -1 )
+ if( i_read <= 0 )
{
- p_intf->p_sys->i_socket = -1;
+ if( p_intf->p_sys->i_socket != -1 )
+ {
+ net_Close( p_intf->p_sys->i_socket );
+ p_intf->p_sys->i_socket = -1;
+ }
+ else
+ /* Standard input closed: exit */
+ p_intf->b_die = VLC_TRUE;
+
p_buffer[ *pi_size ] = 0;
return VLC_TRUE;
}