Commit b336d67d authored by Laurent Aimar's avatar Laurent Aimar

* mms: some clean up.

parent f0789fcd
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* mms.c: MMS access plug-in * mms.c: MMS access plug-in
***************************************************************************** *****************************************************************************
* Copyright (C) 2001, 2002 VideoLAN * Copyright (C) 2001, 2002 VideoLAN
* $Id: mms.c,v 1.23 2003/03/11 18:14:27 fenrir Exp $ * $Id: mms.c,v 1.24 2003/03/15 02:33:23 fenrir Exp $
* *
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
...@@ -1574,6 +1574,7 @@ static int mms_ParseCommand( input_thread_t *p_input, ...@@ -1574,6 +1574,7 @@ static int mms_ParseCommand( input_thread_t *p_input,
{ {
msg_Warn( p_input, "truncated command (header incomplete)" ); msg_Warn( p_input, "truncated command (header incomplete)" );
p_access->i_command = 0; p_access->i_command = 0;
*pi_used = 0;
return( -1 ); return( -1 );
} }
i_id = GetDWLE( p_data + 4 ); i_id = GetDWLE( p_data + 4 );
...@@ -1593,6 +1594,7 @@ static int mms_ParseCommand( input_thread_t *p_input, ...@@ -1593,6 +1594,7 @@ static int mms_ParseCommand( input_thread_t *p_input,
"truncated command (missing %d bytes)", "truncated command (missing %d bytes)",
i_length - i_data ); i_length - i_data );
p_access->i_command = 0; p_access->i_command = 0;
*pi_used = 0;
return( -1 ); return( -1 );
} }
else if( i_length < p_access->i_cmd ) else if( i_length < p_access->i_cmd )
...@@ -1638,6 +1640,7 @@ static int mms_ParsePacket( input_thread_t *p_input, ...@@ -1638,6 +1640,7 @@ static int mms_ParsePacket( input_thread_t *p_input,
if( i_data <= 8 ) if( i_data <= 8 )
{ {
msg_Warn( p_input, "truncated packet (header incomplete)" ); msg_Warn( p_input, "truncated packet (header incomplete)" );
*pi_used = 0;
return( -1 ); return( -1 );
} }
...@@ -1836,32 +1839,39 @@ static int mms_ReceiveCommand( input_thread_t *p_input ) ...@@ -1836,32 +1839,39 @@ static int mms_ReceiveCommand( input_thread_t *p_input )
{ {
int i_used; int i_used;
int i_status; int i_status;
NetFillBuffer( p_input );
i_status = mms_ParseCommand( p_input, if( NetFillBuffer( p_input ) < 0 )
p_access->buffer_tcp,
p_access->i_buffer_tcp,
&i_used );
if( i_used < MMS_BUFFER_SIZE )
{ {
memmove( p_access->buffer_tcp, msg_Warn( p_input, "cannot fill buffer" );
p_access->buffer_tcp + i_used, continue;
MMS_BUFFER_SIZE - i_used );
} }
p_access->i_buffer_tcp -= i_used; if( p_access->i_buffer_tcp > 0 )
if( i_status < 0 )
{ {
return( -1 ); i_status = mms_ParseCommand( p_input,
} p_access->buffer_tcp,
p_access->i_buffer_tcp,
&i_used );
if( i_used < MMS_BUFFER_SIZE )
{
memmove( p_access->buffer_tcp,
p_access->buffer_tcp + i_used,
MMS_BUFFER_SIZE - i_used );
}
p_access->i_buffer_tcp -= i_used;
if( p_access->i_command == 0x1b ) if( i_status < 0 )
{ {
mms_CommandSend( p_input, 0x1b, 0, 0, NULL, 0 ); return( -1 );
} }
else
{ if( p_access->i_command == 0x1b )
break; {
mms_CommandSend( p_input, 0x1b, 0, 0, NULL, 0 );
}
else
{
break;
}
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment