#include "host/pingprotocol.h"
+#include <algorithm>
#include <map>
#include <boost/assert.hpp>
map<string, PingProtocol> protocol_string_map;
-PingProtocol get_ping_protocol_from_string( string protocol_string )
+PingProtocol get_ping_protocol_from_string( const string protocol_string )
{
BOOST_ASSERT( !protocol_string.empty() );
+ // convert to uppercase to allow the protocol to be case insensitive
+ string protocol_uppercase_string( protocol_string );
+ transform( protocol_string.begin(), protocol_string.end(),
+ protocol_uppercase_string.begin(),
+ ::toupper );
+
// TODO move to an init method
protocol_string_map[ "ICMP" ] = PingProtocol_ICMP;
protocol_string_map[ "TCP" ] = PingProtocol_TCP;
- return protocol_string_map[ protocol_string ];
+ return protocol_string_map[ protocol_uppercase_string ];;
}
PingProtocol_Last = PingProtocol_TCP
};
-PingProtocol get_ping_protocol_from_string( std::string protocol_string );
+PingProtocol get_ping_protocol_from_string( const std::string protocol_string );
#endif /* PINGPROTOCOL_H */