]> granicus.if.org Git - pdns/commitdiff
improve += options
authorKees Monshouwer <mind04@monshouwer.org>
Fri, 26 Jul 2013 20:57:58 +0000 (22:57 +0200)
committermind04 <mind04@monshouwer.org>
Wed, 31 Jul 2013 09:39:37 +0000 (11:39 +0200)
pdns/arguments.cc
regression-tests/start-test-stop

index bbad995e53c8edd274da4105234fc8163c9b1a80..f1b279030bee46074330d80bc4483430a238b678 100644 (file)
@@ -299,53 +299,56 @@ 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
-    {
-      var=arg.substr(2,pos-2);
-      val=arg.substr(pos+2);
-      incremental = true;
-    }
-  else if(!arg.find("--") &&(pos=arg.find("="))!=string::npos)  // this is a --port=25 case
-    {
-      var=arg.substr(2,pos-2);
-      val=arg.substr(pos+1);
-    }
+
+  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);
+    incremental = true;
+  }
+  else if(!arg.find("--") && (pos=arg.find("="))!=string::npos)  // this is a --port=25 case
+  {
+    var=arg.substr(2,pos-2);
+    val=arg.substr(pos+1);
+  }
   else if(!arg.find("--") && (arg.find("=")==string::npos))  // this is a --daemon case
-    { 
-      var=arg.substr(2);
-      val="";
-    }
+  {
+    var=arg.substr(2);
+    val="";
+  }
   else if(arg[0]=='-')
-    {
-      var=arg.substr(1);
-      val="";
-    }
-  else { // command 
-    d_cmds.push_back(arg);
+  {
+    var=arg.substr(1);
+    val="";
   }
+  else // command
+    d_cmds.push_back(arg);
 
   if(var!="" && (parseOnly.empty() || var==parseOnly)) {
-
     pos=val.find_first_not_of(" \t");  // strip leading whitespace
     if(pos && pos!=string::npos)
       val=val.substr(pos);
-    if (!incremental && val.empty()) d_cleared.insert(var);
-    if(parmIsset(var)) {
-      if (incremental) {
-         if (params[var].empty() && !d_cleared.count(var)) {
-           throw ArgException("Incremental parameter '"+var+"' without a parent");
-         }
-         if (params[var].empty())
-            params[var]=val;
-         else
-            params[var]+=", " + val; 
-      } else {
-         params[var]=val;
+    if(parmIsset(var))
+    {
+      if(incremental)
+      {
+        if(params[var].empty())
+        {
+          if(!d_cleared.count(var))
+            throw ArgException("Incremental parameter '"+var+"' without a parent");
+          params[var]=val;
+        }
+        else
+          params[var]+=", " + val;
+      }
+      else
+      {
+        params[var]=val;
+        d_cleared.insert(var);
       }
     }
-    else
-      if(!lax)
-        throw ArgException("Trying to set unexisting parameter '"+var+"'");
+    else if(!lax)
+      throw ArgException("Trying to set unexisting parameter '"+var+"'");
   }
 }
 
index 3acfb597d15f715f4cac8fd481d9c8a79cec5975..05bbd107b5e62eddc4623b51d8cdff79c235b22d 100755 (executable)
@@ -326,7 +326,7 @@ __EOF__
                        done
 
                        $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
-                               --no-shuffle --launch --launch+=random --launch+=gmysql --gmysql-dnssec \
+                               --no-shuffle --launch --launch+=random --launch+=gmysql --launch+=random --gmysql-dnssec \
                                --send-root-referral \
                                --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes --experimental-direct-dnskey=yes \
                                --cache-ttl=$cachettl --no-config \