From df638854dbe518fabe48ff0158be6779f8279ca5 Mon Sep 17 00:00:00 2001 From: Shaddi Hasan Date: Mon, 3 Mar 2014 11:53:51 -0800 Subject: [PATCH] Allow IP:PORT in address lists Signed-off-by: Michael Iedema --- Configuration.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/Configuration.cpp b/Configuration.cpp index 6960281..88afbb9 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -522,15 +522,32 @@ bool ConfigurationTable::isValidValue(const std::string& name, const std::string case ConfigurationKey::MIPADDRESS: { int startPos = -1; uint endPos = 0; + uint delimiter; + std::string ip; + int port = -1; do { startPos++; endPos = val.find(' ', startPos); + port = -1; + if (ConfigurationKey::isValidIP(val.substr(startPos, endPos-startPos))) { ret = true; } else { - ret = false; - break; + delimiter = val.find(':'); + if (delimiter != std::string::npos) { + ip = val.substr(startPos, delimiter); + std::stringstream(val.substr(delimiter+1, endPos)) >> port; + if (ConfigurationKey::isValidIP(ip) && 1 <= port && port <= 65535) { + ret = true; + } else { + ret = false; + break; + } + } else { + ret = false; + break; + } } } while ((startPos = endPos) != (int)std::string::npos);