From: ehofman Date: Sun, 7 Feb 2010 12:40:42 +0000 (+0000) Subject: reorganize the code a bit to prevent an infinite loop in ascii mode X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=6072e3d96994497e9cf4536b67decd92606dda85;p=flightgear.git reorganize the code a bit to prevent an infinite loop in ascii mode --- diff --git a/src/Network/generic.cxx b/src/Network/generic.cxx index a91f7835e..487ff67ae 100644 --- a/src/Network/generic.cxx +++ b/src/Network/generic.cxx @@ -467,25 +467,24 @@ bool FGGeneric::process() { } } } else { - do { - if (!binary_mode) { - length = io->readline( buf, FG_MAX_MSG_SIZE ); - if ( length > 0 ) { - parse_message(); - } - } else { - length = io->read( buf, binary_record_length ); - if ( length == binary_record_length ) { - parse_message(); - } else if ( length > 0 ) { - SG_LOG( SG_IO, SG_ALERT, - "Generic protocol: Received binary " - "record of unexpected size, expected: " - << binary_record_length << " but received: " - << length); - } + if (!binary_mode) { + while ((length = io->readline( buf, FG_MAX_MSG_SIZE )) > 0 ) { + parse_message(); } - } while ( length == binary_record_length ); + } else { + while ((length = io->read( buf, binary_record_length )) + == binary_record_length ) { + parse_message(); + } + + if ( length > 0 ) { + SG_LOG( SG_IO, SG_ALERT, + "Generic protocol: Received binary " + "record of unexpected size, expected: " + << binary_record_length << " but received: " + << length); + } + } } } return true;