Author: mmichelson
Date: Fri Mar  6 09:30:40 2015
New Revision: 432518

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=432518
Log:
Get rid of nxdomain parameter for ast_dns_resolver_set_result().

Since an rcode parameter is present, NXDOMAIN can be represented
through that instead of a redundant parameter.

The unit tests have been updated to pass based on this information.


Modified:
    team/group/dns/include/asterisk/dns_core.h
    team/group/dns/include/asterisk/dns_internal.h
    team/group/dns/include/asterisk/dns_resolver.h
    team/group/dns/main/dns_core.c
    team/group/dns/tests/test_dns.c

Modified: team/group/dns/include/asterisk/dns_core.h
URL: 
http://svnview.digium.com/svn/asterisk/team/group/dns/include/asterisk/dns_core.h?view=diff&rev=432518&r1=432517&r2=432518
==============================================================================
--- team/group/dns/include/asterisk/dns_core.h (original)
+++ team/group/dns/include/asterisk/dns_core.h Fri Mar  6 09:30:40 2015
@@ -80,15 +80,6 @@
 struct ast_dns_result *ast_dns_query_get_result(const struct ast_dns_query 
*query);
 
 /*!
- * \brief Get whether the domain exists or not
- *
- * \param query The DNS result
- *
- * \return whether the domain exists or not
- */
-unsigned int ast_dns_result_get_nxdomain(const struct ast_dns_result *result);
-
-/*!
  * \brief Get whether the result is secure or not
  *
  * \param result The DNS result

Modified: team/group/dns/include/asterisk/dns_internal.h
URL: 
http://svnview.digium.com/svn/asterisk/team/group/dns/include/asterisk/dns_internal.h?view=diff&rev=432518&r1=432517&r2=432518
==============================================================================
--- team/group/dns/include/asterisk/dns_internal.h (original)
+++ team/group/dns/include/asterisk/dns_internal.h Fri Mar  6 09:30:40 2015
@@ -73,8 +73,6 @@
 
 /*! \brief The result of a DNS query */
 struct ast_dns_result {
-       /*! \brief Whether the domain was not found */
-       unsigned int nxdomain;
        /*! \brief Whether the result is secure */
        unsigned int secure;
        /*! \brief Whether the result is bogus */

Modified: team/group/dns/include/asterisk/dns_resolver.h
URL: 
http://svnview.digium.com/svn/asterisk/team/group/dns/include/asterisk/dns_resolver.h?view=diff&rev=432518&r1=432517&r2=432518
==============================================================================
--- team/group/dns/include/asterisk/dns_resolver.h (original)
+++ team/group/dns/include/asterisk/dns_resolver.h Fri Mar  6 09:30:40 2015
@@ -72,7 +72,6 @@
  * \brief Set result information for a DNS query
  *
  * \param query The DNS query
- * \param nxdomain Whether the domain was not found
  * \param result Whether the result is secured or not
  * \param bogus Whether the result is bogus or not
  * \param rcode Optional response code
@@ -81,7 +80,7 @@
  * \retval 0 success
  * \retval -1 failure
  */
-int ast_dns_resolver_set_result(struct ast_dns_query *query, unsigned int 
nxdomain, unsigned int secure, unsigned int bogus,
+int ast_dns_resolver_set_result(struct ast_dns_query *query, unsigned int 
secure, unsigned int bogus,
        unsigned int rcode, const char *canonical);
 
 /*!

Modified: team/group/dns/main/dns_core.c
URL: 
http://svnview.digium.com/svn/asterisk/team/group/dns/main/dns_core.c?view=diff&rev=432518&r1=432517&r2=432518
==============================================================================
--- team/group/dns/main/dns_core.c (original)
+++ team/group/dns/main/dns_core.c Fri Mar  6 09:30:40 2015
@@ -75,11 +75,6 @@
        return query->result;
 }
 
-unsigned int ast_dns_result_get_nxdomain(const struct ast_dns_result *result)
-{
-       return result->nxdomain;
-}
-
 unsigned int ast_dns_result_get_secure(const struct ast_dns_result *result)
 {
        return result->secure;
@@ -353,7 +348,7 @@
        }
 }
 
-int ast_dns_resolver_set_result(struct ast_dns_query *query, unsigned int 
nxdomain, unsigned int secure, unsigned int bogus,
+int ast_dns_resolver_set_result(struct ast_dns_query *query, unsigned int 
secure, unsigned int bogus,
        unsigned int rcode, const char *canonical)
 {
        if (secure && bogus) {
@@ -377,7 +372,6 @@
                return -1;
        }
 
-       query->result->nxdomain = nxdomain;
        query->result->secure = secure;
        query->result->bogus = bogus;
        query->result->rcode = rcode;

Modified: team/group/dns/tests/test_dns.c
URL: 
http://svnview.digium.com/svn/asterisk/team/group/dns/tests/test_dns.c?view=diff&rev=432518&r1=432517&r2=432518
==============================================================================
--- team/group/dns/tests/test_dns.c (original)
+++ team/group/dns/tests/test_dns.c Fri Mar  6 09:30:40 2015
@@ -265,8 +265,8 @@
 }
 
 static int test_results(struct ast_test *test, const struct ast_dns_query 
*query,
-               int expected_nxdomain, int expected_secure, int expected_bogus,
-               const char *expected_canonical)
+               unsigned int expected_secure, unsigned int expected_bogus,
+               unsigned int expected_rcode, const char *expected_canonical)
 {
        struct ast_dns_result *result;
 
@@ -276,9 +276,9 @@
                return -1;
        }
 
-       if (ast_dns_result_get_nxdomain(result) != expected_nxdomain ||
-                       ast_dns_result_get_secure(result) != expected_secure ||
+       if (ast_dns_result_get_secure(result) != expected_secure ||
                        ast_dns_result_get_bogus(result) != expected_bogus ||
+                       ast_dns_result_get_rcode(result) != expected_rcode ||
                        strcmp(ast_dns_result_get_canonical(result), 
expected_canonical)) {
                ast_test_status_update(test, "Unexpected values in result from 
query\n");
                return -1;
@@ -291,6 +291,19 @@
 {
        struct ast_dns_query some_query;
        struct ast_dns_result *result;
+       
+       struct dns_result {
+               unsigned int secure;
+               unsigned int bogus;
+               unsigned int rcode;
+       } results[] = {
+               { 0, 0, ns_r_noerror },
+               { 0, 1, ns_r_noerror },
+               { 1, 0, ns_r_noerror },
+               { 0, 0, ns_r_nxdomain },
+       };
+       int i;
+       enum ast_test_result_state res = AST_TEST_PASS;
 
        switch (cmd) {
        case TEST_INIT:
@@ -299,10 +312,10 @@
                info->summary = "Test setting and getting results on DNS 
queries";
                info->description =
                        "This test performs the following:\n"
-                       "\t* Sets a result that is not secure, bogus, or 
nxdomain\n"
-                       "\t* Sets a result that is not secure or nxdomain, but 
is secure\n"
-                       "\t* Sets a result that is not bogus or nxdomain, but 
is secure\n"
-                       "\t* Sets a result that is not secure or bogus, but is 
nxdomain\n"
+                       "\t* Sets a result that is not secure, bogus, and has 
rcode 0\n"
+                       "\t* Sets a result that is not secure, has rcode 0, but 
is secure\n"
+                       "\t* Sets a result that is not bogus, has rcode 0, but 
is secure\n"
+                       "\t* Sets a result that is not secure or bogus, but has 
rcode NXDOMAIN\n"
                        "After each result is set, we ensure that parameters 
retrieved from\n"
                        "the result have the expected values.";
                return AST_TEST_NOT_RUN;
@@ -312,47 +325,24 @@
 
        memset(&some_query, 0, sizeof(some_query));
 
-       if (ast_dns_resolver_set_result(&some_query, 0, 0, 0, 0, 
"asterisk.org")) {
-               ast_test_status_update(test, "Unable to add legitimate DNS 
result to query\n");
-               return AST_TEST_FAIL;
-       }
-
-       if (test_results(test, &some_query, 0, 0, 0, "asterisk.org")) {
-               return AST_TEST_FAIL;
-       }
-
-       if (ast_dns_resolver_set_result(&some_query, 0, 0, 1, 0, 
"asterisk.org")) {
-               ast_test_status_update(test, "Unable to add bogus DNS result to 
query\n");
-               return AST_TEST_FAIL;
-       }
-
-       if (test_results(test, &some_query, 0, 0, 1, "asterisk.org")) {
-               return AST_TEST_FAIL;
-       }
-
-       if (ast_dns_resolver_set_result(&some_query, 0, 1, 0, 0, 
"asterisk.org")) {
-               ast_test_status_update(test, "Unable to add secure DNS result 
to query\n");
-               return AST_TEST_FAIL;
-       }
-
-       if (test_results(test, &some_query, 0, 1, 0, "asterisk.org")) {
-               return AST_TEST_FAIL;
-       }
-
-       if (ast_dns_resolver_set_result(&some_query, 1, 0, 0, 0, 
"asterisk.org")) {
-               ast_test_status_update(test, "Unable to add nxdomain DNS result 
to query\n");
-               return AST_TEST_FAIL;
-       }
-
-       if (test_results(test, &some_query, 1, 0, 0, "asterisk.org")) {
-               return AST_TEST_FAIL;
+       for (i = 0; i < ARRAY_LEN(results); ++i) {
+               if (ast_dns_resolver_set_result(&some_query, results[i].secure, 
results[i].bogus,
+                               results[i].rcode, "asterisk.org")) {
+                       ast_test_status_update(test, "Unable to add DNS result 
to query\n");
+                       res = AST_TEST_FAIL;
+               }
+
+               if (test_results(test, &some_query, results[i].secure, 
results[i].bogus,
+                               results[i].rcode, "asterisk.org")) {
+                       res = AST_TEST_FAIL;
+               }
        }
 
        /* The final result we set needs to be freed */
        result = ast_dns_query_get_result(&some_query);
        ast_dns_result_free(result);
 
-       return AST_TEST_PASS;
+       return res;
 }
 
 AST_TEST_DEFINE(resolver_set_result_off_nominal)
@@ -376,14 +366,14 @@
 
        memset(&some_query, 0, sizeof(some_query));
 
-       if (!ast_dns_resolver_set_result(&some_query, 0, 1, 1, 0, 
"asterisk.org")) {
+       if (!ast_dns_resolver_set_result(&some_query, 1, 1, ns_r_noerror, 
"asterisk.org")) {
                ast_test_status_update(test, "Successfully added a result that 
was both secure and bogus\n");
                result = ast_dns_query_get_result(&some_query);
                ao2_cleanup(result);
                return AST_TEST_FAIL;
        }
 
-       if (!ast_dns_resolver_set_result(&some_query, 0, 0, 0, 0, NULL)) {
+       if (!ast_dns_resolver_set_result(&some_query, 0, 0, ns_r_noerror, 
NULL)) {
                ast_test_status_update(test, "Successfully added result with no 
canonical name\n");
                result = ast_dns_query_get_result(&some_query);
                ao2_cleanup(result);
@@ -465,7 +455,7 @@
 
        memset(&some_query, 0, sizeof(some_query));
 
-       if (ast_dns_resolver_set_result(&some_query, 0, 0, 0, 0, 
"asterisk.org")) {
+       if (ast_dns_resolver_set_result(&some_query, 0, 0, ns_r_noerror, 
"asterisk.org")) {
                ast_test_status_update(test, "Unable to set result for DNS 
query\n");
                return AST_TEST_FAIL;
        }
@@ -582,7 +572,7 @@
                return AST_TEST_FAIL;
        }
 
-       if (ast_dns_resolver_set_result(&some_query, 0, 0, 0, 0, 
"asterisk.org")) {
+       if (ast_dns_resolver_set_result(&some_query, 0, 0, ns_r_noerror, 
"asterisk.org")) {
                ast_test_status_update(test, "Unable to set result for DNS 
query\n");
                return AST_TEST_FAIL;
        }
@@ -664,7 +654,7 @@
                return NULL;
        }
 
-       ast_dns_resolver_set_result(query, 0, 0, 0, 0, "asterisk.org");
+       ast_dns_resolver_set_result(query, 0, 0, ns_r_noerror, "asterisk.org");
 
        inet_pton(AF_INET, V4, v4_buf);
        ast_dns_resolver_add_record(query, ns_t_a, ns_c_in, 12345, v4_buf, 
V4_BUFSIZE);


-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

svn-commits mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/svn-commits

Reply via email to