Ejemplo n.º 1
0
//==================================================================
bool GetServersList( int argc, char **argv, DVec<RRL::NET::Server> &list )
{
	list.clear();

	for (int i=1; i < argc; ++i)
	{
		if ( 0 == strcasecmp( "-server", argv[i] ) )
		{
			if ( (i+1) >= argc )
			{
				printf( "Missing server definition.\n" );
				return false;
			}

            RRL::NET::Server &servEntry = Dgrow( list );

			char	*pContext = NULL;
			
			char *pToken = strtok_r( argv[i+1], ":", &pContext );
			if ( pToken )
			{
				servEntry.mAddressName = pToken;
				if ( pToken = strtok_r( NULL, ":", &pContext ) )
				{
					servEntry.mPortToCall = atoi( pToken );

					if ( servEntry.mPortToCall <= 0 && servEntry.mPortToCall >= 65536 )
					{
						printf( "Invalid port range.\n" );
						return false;
					}
				}
			}
			else
				servEntry.mAddressName = argv[i+1];

			i += 1;
		}
	}

	return true;
}