]> granicus.if.org Git - pdns/commitdiff
Complete test suite for TSIG key management
authorAki Tuomi <cmouse@desteem.org>
Sat, 15 Jun 2013 15:36:08 +0000 (18:36 +0300)
committerAki Tuomi <cmouse@desteem.org>
Tue, 3 Sep 2013 15:20:41 +0000 (18:20 +0300)
modules/remotebackend/test-remotebackend.cc
modules/remotebackend/unittest.rb
modules/remotebackend/unittest_http.rb
modules/remotebackend/unittest_pipe.rb

index 4500814b0032919f945d806095919b38666ca482..0dcfd9b66c20ec3a692d9c0aa91d0861cf0efa3a 100644 (file)
@@ -147,7 +147,7 @@ BOOST_AUTO_TEST_CASE(test_method_getTSIGKeys) {
    std::vector<struct TSIGKey> keys;
    BOOST_TEST_MESSAGE("Testing getTSIGKeys method");
    be->getTSIGKeys(keys);
-   BOOST_CHECK(keys.size() > 0)
+   BOOST_CHECK(keys.size() > 0);
    if (keys.size() > 0) {
      BOOST_CHECK_EQUAL(keys[0].name, "test");
      BOOST_CHECK_EQUAL(keys[0].algorithm, "NULL");
index 69ae27fe83f6a78591cbb2d9b5ea95a08d51914c..d806da3207b8aed31bbef04d7579645dab39c8ae 100644 (file)
@@ -23,6 +23,8 @@ $meta = {}
 
 $keys = {}
 
+$tsigkeys = { "test" => {:name => "test", :algorithm => "NULL", :content => "NULL"} }
+
 class Handler
    def initialize
    end
@@ -134,8 +136,8 @@ class Handler
    end
 
    def do_gettsigkey(args) 
-     if args["name"] == "unit.test"
-       return [{:algorithm => "NULL", :content => "NULL"}]
+     if $tsigkeys.has_key? args["name"]
+       return [{:algorithm => $tsigkeys[args["name"]][:algorithm], :content => $tsigkeys[args["name"]][:content] }]
      end
      [false] 
    end
@@ -204,6 +206,20 @@ class Handler
       [true]
    end
 
+   def do_settsigkey(args) 
+      $tsigkeys[args["name"]] = { :name => args["name"], :algorithm => args["algorithm"], :content => args["content"] }
+      [true]
+   end
+
+   def do_deletetsigkey(args)
+      $tsigkeys.delete args["name"] if $tsigkeys.has_key? args["name"]
+      [true]
+   end
+
+   def do_gettsigkeys(*args)
+      return [$tsigkeys.values]
+   end
+
    def do_starttransaction(args) 
      [true]
    end
index 8680bbb7f0ef3293154f8dc7a456846a8c81b680..b0dab9dc5ad9e629f25a8e3c3719f0f21b15562e 100755 (executable)
@@ -65,7 +65,7 @@ class DNSBackendHandler < WEBrick::HTTPServlet::AbstractServlet
              "id" => url.shift.to_i,
              "name" => url.shift
         } 
-     when "adddomainkey", "gettsigkey", "getdomaininfo"
+     when "adddomainkey", "gettsigkey", "getdomaininfo", "settsigkey", "deletetsigkey"
         {
              "name" => url.shift
         }
index f3c3c51ede8f7a1c5252428aabadfb9d43163a6b..e6ef2df634fd707295a06daf9c65fa73afe3cd63 100755 (executable)
@@ -18,7 +18,7 @@ begin
     begin
       input = JSON.parse(line)
       method = "do_#{input["method"].downcase}"
-      args = input["parameters"]
+      args = input["parameters"] || []
 
       if h.respond_to?(method.to_sym) == false
          res = false