X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FMain%2Ffg_io.cxx;h=36ca64433d3f6dc923acdfcdaa59374ea88856d7;hb=f467ba360902e4395d23b35481c55844a3946b91;hp=a2260731e468ea44d712daa5a1a524a04dcaeaa4;hpb=d95f541528fc128061e4e8e1aee495fdd0698b3f;p=flightgear.git diff --git a/src/Main/fg_io.cxx b/src/Main/fg_io.cxx index a2260731e..36ca64433 100644 --- a/src/Main/fg_io.cxx +++ b/src/Main/fg_io.cxx @@ -187,14 +187,21 @@ FGIO::parse_port_config( const string& config ) FGRUL *rul = new FGRUL; io = rul; } else if ( protocol == "generic" ) { - int configToken; - if (tokens[1] == "socket") + size_t configToken; + if (tokens[1] == "socket") { configToken = 7; - else if (tokens[1] == "file") + } else if (tokens[1] == "file") { configToken = 5; - else + } else { configToken = 6; - FGGeneric *generic = new FGGeneric( tokens[configToken] ); + } + + if (configToken >= tokens.size()) { + SG_LOG( SG_IO, SG_ALERT, "Not enough tokens passed for the generic protocol."); + return NULL; + } + + FGGeneric *generic = new FGGeneric( tokens ); io = generic; } else if ( protocol == "multiplay" ) { if ( tokens.size() != 5 ) { @@ -327,6 +334,11 @@ FGIO::init() } } +void +FGIO::reinit() +{ +} + // process any IO channel work void