summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Haslett <aaronhaslett@catalyst.net.nz>2018-06-05 17:12:44 +1200
committerAndrew Bartlett <abartlet@samba.org>2018-07-12 04:31:54 +0200
commit350029bdd8fe90f64d8581b39599d8b8430d7f61 (patch)
tree78abfaa2fb9df4a13b88dcc0ae3c66adc5e1bd32
parentd6e111ff4212bbab6f8fdc67828afe4d1c154ac4 (diff)
downloadsamba-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.c21
-rw-r--r--source4/dns_server/dns_server.h1
-rw-r--r--source4/dns_server/dnsserver_common.c20
-rw-r--r--source4/dns_server/dnsserver_common.h1
-rw-r--r--source4/rpc_server/dnsserver/dnsdata.c17
-rw-r--r--source4/rpc_server/dnsserver/dnsserver.h1
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,