]> granicus.if.org Git - pdns/commitdiff
make sure we have a parrent option
authorKees Monshouwer <mind04@monshouwer.org>
Thu, 27 Jun 2013 07:41:51 +0000 (09:41 +0200)
committerPeter van Dijk <peter.van.dijk@netherlabs.nl>
Tue, 26 Nov 2013 11:26:30 +0000 (12:26 +0100)
pdns/arguments.cc

index 49f981c4e385c537a3454d46514439705751bb7d..12ac04806838b70136cef4f6a86b2517de8189f2 100644 (file)
@@ -294,7 +294,7 @@ void ArgvMap::parseOne(const string &arg, const string &parseOnly, bool lax)
   string var, val;
   string::size_type pos;
   bool incremental = false;
-  if(!arg.find("--") &&(pos=arg.find("+"))!=string::npos) // this is a --port+=25 case
+  if(!arg.find("--") &&(pos=arg.find("+="))!=string::npos) // this is a --port+=25 case
     {
       var=arg.substr(2,pos-2);
       val=arg.substr(pos+2);
@@ -322,16 +322,16 @@ void ArgvMap::parseOne(const string &arg, const string &parseOnly, bool lax)
   if(var!="" && (parseOnly.empty() || var==parseOnly)) {
 
     pos=val.find_first_not_of(" \t");  // strip leading whitespace
-    if(pos && pos!=string::npos) 
+    if(pos && pos!=string::npos)
       val=val.substr(pos);
 
     if(parmIsset(var)) {
       if (incremental) {
-         if (!params[var].empty()) {
-           params[var]+=",";
+         if (params[var].empty()) {
+           throw ArgException("Incremental parameter '"+var+"' without a parent");
          }
-         params[var]+=val; 
-      } else 
+         params[var]+=","+val;
+      } else
          params[var]=val;
       }
     else