diff options
author | Aaron Haslett <aaronhaslett@catalyst.net.nz> | 2018-06-05 17:12:44 +1200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2018-07-12 04:31:54 +0200 |
commit | 350029bdd8fe90f64d8581b39599d8b8430d7f61 (patch) | |
tree | 78abfaa2fb9df4a13b88dcc0ae3c66adc5e1bd32 | |
parent | d6e111ff4212bbab6f8fdc67828afe4d1c154ac4 (diff) | |
download | samba-350029bdd8fe90f64d8581b39599d8b8430d7f61.tar.gz |
dns: moving name_equal func into common
This function is duplicated in the BIND9 and RPC DNS servers.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=10812
Signed-off-by: Aaron Haslett <aaronhaslett@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
-rw-r--r-- | source4/dns_server/dlz_bind9.c | 21 | ||||
-rw-r--r-- | source4/dns_server/dns_server.h | 1 | ||||
-rw-r--r-- | source4/dns_server/dnsserver_common.c | 20 | ||||
-rw-r--r-- | source4/dns_server/dnsserver_common.h | 1 | ||||
-rw-r--r-- | source4/rpc_server/dnsserver/dnsdata.c | 17 | ||||
-rw-r--r-- | source4/rpc_server/dnsserver/dnsserver.h | 1 |
6 files changed, 22 insertions, 39 deletions
diff --git a/source4/dns_server/dlz_bind9.c b/source4/dns_server/dlz_bind9.c index 0463c6e47a6..e55d73ba50f 100644 --- a/source4/dns_server/dlz_bind9.c +++ b/source4/dns_server/dlz_bind9.c @@ -38,7 +38,7 @@ #include <popt.h> #include "lib/util/dlinklist.h" #include "dlz_minimal.h" -#include "dns_server/dnsserver_common.h" +#include "dnsserver_common.h" struct b9_options { const char *url; @@ -1482,25 +1482,6 @@ _PUBLIC_ isc_boolean_t dlz_ssumatch(const char *signer, const char *name, const } /* - see if two DNS names are the same - */ -static bool dns_name_equal(const char *name1, const char *name2) -{ - size_t len1 = strlen(name1); - size_t len2 = strlen(name2); - if (name1[len1 - 1] == '.') { - len1--; - } - if (name2[len2 - 1] == '.') { - len2--; - } - if (len1 != len2) { - return false; - } - return strncasecmp_m(name1, name2, len1) == 0; -} - -/* see if two dns records match */ static bool b9_record_match(struct dlz_bind9_data *state, diff --git a/source4/dns_server/dns_server.h b/source4/dns_server/dns_server.h index 05ef302680f..48dd5ff8185 100644 --- a/source4/dns_server/dns_server.h +++ b/source4/dns_server/dns_server.h @@ -82,7 +82,6 @@ WERROR dns_server_process_update(struct dns_server *dns, struct dns_res_rec **updates, uint16_t *update_count, struct dns_res_rec **additional, uint16_t *arcount); -bool dns_name_equal(const char *name1, const char *name2); bool dns_records_match(struct dnsp_DnssrvRpcRecord *rec1, struct dnsp_DnssrvRpcRecord *rec2); bool dns_authoritative_for_zone(struct dns_server *dns, diff --git a/source4/dns_server/dnsserver_common.c b/source4/dns_server/dnsserver_common.c index 6c7ab802575..20eaf125ada 100644 --- a/source4/dns_server/dnsserver_common.c +++ b/source4/dns_server/dnsserver_common.c @@ -1047,3 +1047,23 @@ NTSTATUS dns_common_zones(struct ldb_context *samdb, TALLOC_FREE(frame); return NT_STATUS_OK; } + +/* + see if two DNS names are the same + */ +bool dns_name_equal(const char *name1, const char *name2) +{ + size_t len1 = strlen(name1); + size_t len2 = strlen(name2); + + if (len1 > 0 && name1[len1 - 1] == '.') { + len1--; + } + if (len2 > 0 && name2[len2 - 1] == '.') { + len2--; + } + if (len1 != len2) { + return false; + } + return strncasecmp(name1, name2, len1) == 0; +} diff --git a/source4/dns_server/dnsserver_common.h b/source4/dns_server/dnsserver_common.h index f2be44ff0d6..e37c7b8f9ab 100644 --- a/source4/dns_server/dnsserver_common.h +++ b/source4/dns_server/dnsserver_common.h @@ -68,6 +68,7 @@ WERROR dns_common_name2dn(struct ldb_context *samdb, TALLOC_CTX *mem_ctx, const char *name, struct ldb_dn **_dn); +bool dns_name_equal(const char *name1, const char *name2); /* * For this routine, base_dn is generally NULL. The exception comes diff --git a/source4/rpc_server/dnsserver/dnsdata.c b/source4/rpc_server/dnsserver/dnsdata.c index 6889cc306ce..59e29f029a6 100644 --- a/source4/rpc_server/dnsserver/dnsdata.c +++ b/source4/rpc_server/dnsserver/dnsdata.c @@ -1119,23 +1119,6 @@ int dns_name_compare(const struct ldb_message **m1, const struct ldb_message **m return strcasecmp(ptr1, ptr2); } -bool dns_name_equal(const char *name1, const char *name2) -{ - size_t len1 = strlen(name1); - size_t len2 = strlen(name2); - - if (len1 > 0 && name1[len1 - 1] == '.') { - len1--; - } - if (len2 > 0 && name2[len2 - 1] == '.') { - len2--; - } - if (len1 != len2) { - return false; - } - return strncasecmp(name1, name2, len1) == 0; -} - bool dns_record_match(struct dnsp_DnssrvRpcRecord *rec1, struct dnsp_DnssrvRpcRecord *rec2) { bool status; diff --git a/source4/rpc_server/dnsserver/dnsserver.h b/source4/rpc_server/dnsserver/dnsserver.h index 6948fb5d42d..93f1d72f2ef 100644 --- a/source4/rpc_server/dnsserver/dnsserver.h +++ b/source4/rpc_server/dnsserver/dnsserver.h @@ -190,7 +190,6 @@ char *dns_split_node_name(TALLOC_CTX *mem_ctx, const char *node_name, const char int dns_name_compare(const struct ldb_message **m1, const struct ldb_message **m2, char *search_name); -bool dns_name_equal(const char *name1, const char *name2); bool dns_record_match(struct dnsp_DnssrvRpcRecord *rec1, struct dnsp_DnssrvRpcRecord *rec2); void dnsp_to_dns_copy(TALLOC_CTX *mem_ctx, struct dnsp_DnssrvRpcRecord *dnsp, |