summaryrefslogtreecommitdiff
path: root/lib/dns/forward.c
diff options
context:
space:
mode:
authorDoug Barton <dougb@FreeBSD.org>2011-07-16 10:49:33 +0000
committerDoug Barton <dougb@FreeBSD.org>2011-07-16 10:49:33 +0000
commit473038528ab5bd55332138ebf791ab91a25f747b (patch)
treecb160fa2acd93f24b5f5b9082cd3afc68396d51a /lib/dns/forward.c
parent46da9ebeb3b1241e2e7f0182d76c336966e91d20 (diff)
Diffstat (limited to 'lib/dns/forward.c')
-rw-r--r--lib/dns/forward.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/dns/forward.c b/lib/dns/forward.c
index 1406b46f5727..1f9c41a8c7e5 100644
--- a/lib/dns/forward.c
+++ b/lib/dns/forward.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: forward.c,v 1.12 2007-06-19 23:47:16 tbox Exp $ */
+/* $Id: forward.c,v 1.14 2009-09-02 23:48:02 tbox Exp $ */
/*! \file */
@@ -133,11 +133,27 @@ dns_fwdtable_add(dns_fwdtable_t *fwdtable, dns_name_t *name,
}
isc_result_t
+dns_fwdtable_delete(dns_fwdtable_t *fwdtable, dns_name_t *name) {
+ isc_result_t result;
+
+ REQUIRE(VALID_FWDTABLE(fwdtable));
+
+ RWLOCK(&fwdtable->rwlock, isc_rwlocktype_write);
+ result = dns_rbt_deletename(fwdtable->table, name, ISC_FALSE);
+ RWUNLOCK(&fwdtable->rwlock, isc_rwlocktype_write);
+
+ if (result == DNS_R_PARTIALMATCH)
+ result = ISC_R_NOTFOUND;
+
+ return (result);
+}
+
+isc_result_t
dns_fwdtable_find(dns_fwdtable_t *fwdtable, dns_name_t *name,
dns_forwarders_t **forwardersp)
{
return (dns_fwdtable_find2(fwdtable, name, NULL, forwardersp));
-}
+}
isc_result_t
dns_fwdtable_find2(dns_fwdtable_t *fwdtable, dns_name_t *name,