summaryrefslogtreecommitdiff
path: root/lib/dns/peer.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dns/peer.c')
-rw-r--r--lib/dns/peer.c150
1 files changed, 75 insertions, 75 deletions
diff --git a/lib/dns/peer.c b/lib/dns/peer.c
index 61097528..f955ccf8 100644
--- a/lib/dns/peer.c
+++ b/lib/dns/peer.c
@@ -1,21 +1,21 @@
/*
* Copyright (C) 2000 Internet Software Consortium.
- *
+ *
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: peer.c,v 1.8 2000/06/22 21:54:35 tale Exp $ */
+/* $Id: peer.c,v 1.10 2000/08/01 01:22:37 tale Exp $ */
#include <config.h>
@@ -45,21 +45,21 @@ dns_peer_delete(dns_peer_t **peer);
isc_result_t
dns_peerlist_new(isc_mem_t *mem, dns_peerlist_t **list) {
dns_peerlist_t *l;
-
+
REQUIRE(list != NULL);
-
+
l = isc_mem_get(mem, sizeof *l);
if (l == NULL) {
return (ISC_R_NOMEMORY);
}
-
+
ISC_LIST_INIT(l->elements);
l->mem = mem;
l->refs = 1;
l->magic = DNS_PEERLIST_MAGIC;
-
+
*list = l;
-
+
return (ISC_R_SUCCESS);
}
@@ -71,7 +71,7 @@ dns_peerlist_attach(dns_peerlist_t *source, dns_peerlist_t **target) {
REQUIRE(*target == NULL);
source->refs++;
-
+
ENSURE(source->refs != 0xffffffffU);
*target = source;
@@ -80,7 +80,7 @@ dns_peerlist_attach(dns_peerlist_t *source, dns_peerlist_t **target) {
void
dns_peerlist_detach(dns_peerlist_t **list) {
dns_peerlist_t *plist;
-
+
REQUIRE(list != NULL);
REQUIRE(*list != NULL);
REQUIRE(DNS_PEERLIST_VALID(*list));
@@ -105,11 +105,11 @@ dns_peerlist_delete(dns_peerlist_t **list) {
REQUIRE(list != NULL);
REQUIRE(DNS_PEERLIST_VALID(*list));
-
+
l = *list;
REQUIRE(l->refs == 0);
-
+
server = ISC_LIST_HEAD(l->elements);
while (server != NULL) {
stmp = ISC_LIST_NEXT(server, next);
@@ -118,15 +118,15 @@ dns_peerlist_delete(dns_peerlist_t **list) {
if (r != ISC_R_SUCCESS) {
return (r);
}
-
+
server = stmp;
}
-
+
l->magic = 0;
isc_mem_put(l->mem, l, sizeof *l);
-
+
*list = NULL;
-
+
return (ISC_R_SUCCESS);
}
@@ -135,36 +135,36 @@ dns_peerlist_addpeer(dns_peerlist_t *peers, dns_peer_t *peer) {
dns_peer_t *p = NULL;
dns_peer_attach(peer, &p);
-
+
ISC_LIST_APPEND(peers->elements, peer, next);
}
-
+
isc_result_t
dns_peerlist_peerbyaddr(dns_peerlist_t *servers,
isc_netaddr_t *addr, dns_peer_t **retval)
{
dns_peer_t *server;
isc_result_t res;
-
+
REQUIRE(retval != NULL);
REQUIRE(DNS_PEERLIST_VALID(servers));
-
+
server = ISC_LIST_HEAD(servers->elements);
while (server != NULL) {
if (isc_netaddr_equal(addr, &server->address)) {
break;
}
-
+
server = ISC_LIST_NEXT(server, next);
}
-
+
if (server != NULL) {
*retval = server;
res = ISC_R_SUCCESS;
} else {
res = ISC_R_NOTFOUND;
}
-
+
return (res);
}
@@ -180,18 +180,18 @@ dns_peerlist_currpeer(dns_peerlist_t *peers, dns_peer_t **retval) {
return (ISC_R_SUCCESS);
}
-
+
isc_result_t
dns_peer_new(isc_mem_t *mem, isc_netaddr_t *addr, dns_peer_t **peerptr) {
dns_peer_t *peer;
-
+
REQUIRE(peerptr != NULL);
-
+
peer = isc_mem_get(mem, sizeof *peer);
if (peer == NULL) {
return (ISC_R_NOMEMORY);
}
-
+
peer->magic = DNS_PEER_MAGIC;
peer->address = *addr;
peer->mem = mem;
@@ -202,13 +202,13 @@ dns_peer_new(isc_mem_t *mem, isc_netaddr_t *addr, dns_peer_t **peerptr) {
peer->provide_ixfr = ISC_FALSE;
peer->key = NULL;
peer->refs = 1;
-
+
memset(&peer->bitflags, 0x0, sizeof peer->bitflags);
-
+
ISC_LINK_INIT(peer, next);
-
+
*peerptr = peer;
-
+
return (ISC_R_SUCCESS);
}
@@ -219,7 +219,7 @@ dns_peer_attach(dns_peer_t *source, dns_peer_t **target) {
REQUIRE(*target == NULL);
source->refs++;
-
+
ENSURE(source->refs != 0xffffffffU);
*target = source;
@@ -230,7 +230,7 @@ dns_peer_attach(dns_peer_t *source, dns_peer_t **target) {
isc_result_t
dns_peer_detach(dns_peer_t **peer) {
dns_peer_t *p;
-
+
REQUIRE(peer != NULL);
REQUIRE(*peer != NULL);
REQUIRE(DNS_PEER_VALID(*peer));
@@ -253,41 +253,41 @@ static isc_result_t
dns_peer_delete(dns_peer_t **peer) {
dns_peer_t *p;
isc_mem_t *mem;
-
+
REQUIRE(peer != NULL);
REQUIRE(DNS_PEER_VALID(*peer));
-
+
p = *peer;
REQUIRE(p->refs == 0);
-
+
mem = p->mem;
p->mem = NULL;
p->magic = 0;
-
+
if (p->key != NULL) {
dns_name_free(p->key, mem);
isc_mem_put(mem, p->key, sizeof(dns_name_t));
}
-
+
isc_mem_put(mem, p, sizeof *p);
-
+
*peer = NULL;
-
+
return (ISC_R_SUCCESS);
}
isc_result_t
dns_peer_setbogus(dns_peer_t *peer, isc_boolean_t newval) {
isc_boolean_t existed;
-
+
REQUIRE(DNS_PEER_VALID(peer));
-
+
existed = DNS_BIT_CHECK(BOGUS_BIT, &peer->bitflags);
-
+
peer->bogus = newval;
DNS_BIT_SET(BOGUS_BIT, &peer->bitflags);
-
+
return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
}
@@ -295,7 +295,7 @@ isc_result_t
dns_peer_getbogus(dns_peer_t *peer, isc_boolean_t *retval) {
REQUIRE(DNS_PEER_VALID(peer));
REQUIRE(retval != NULL);
-
+
if (DNS_BIT_CHECK(BOGUS_BIT, &peer->bitflags)) {
*retval = peer->bogus;
return (ISC_R_SUCCESS);
@@ -307,14 +307,14 @@ dns_peer_getbogus(dns_peer_t *peer, isc_boolean_t *retval) {
isc_result_t
dns_peer_setprovideixfr(dns_peer_t *peer, isc_boolean_t newval) {
isc_boolean_t existed;
-
+
REQUIRE(DNS_PEER_VALID(peer));
-
+
existed = DNS_BIT_CHECK(PROVIDE_IXFR_BIT, &peer->bitflags);
-
+
peer->provide_ixfr = newval;
DNS_BIT_SET(PROVIDE_IXFR_BIT, &peer->bitflags);
-
+
return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
}
@@ -322,7 +322,7 @@ isc_result_t
dns_peer_getprovideixfr(dns_peer_t *peer, isc_boolean_t *retval) {
REQUIRE(DNS_PEER_VALID(peer));
REQUIRE(retval != NULL);
-
+
if (DNS_BIT_CHECK(PROVIDE_IXFR_BIT, &peer->bitflags)) {
*retval = peer->provide_ixfr;
return (ISC_R_SUCCESS);
@@ -334,14 +334,14 @@ dns_peer_getprovideixfr(dns_peer_t *peer, isc_boolean_t *retval) {
isc_result_t
dns_peer_setrequestixfr(dns_peer_t *peer, isc_boolean_t newval) {
isc_boolean_t existed;
-
+
REQUIRE(DNS_PEER_VALID(peer));
-
+
existed = DNS_BIT_CHECK(REQUEST_IXFR_BIT, &peer->bitflags);
-
+
peer->request_ixfr = newval;
DNS_BIT_SET(REQUEST_IXFR_BIT, &peer->bitflags);
-
+
return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
}
@@ -349,7 +349,7 @@ isc_result_t
dns_peer_getrequestixfr(dns_peer_t *peer, isc_boolean_t *retval) {
REQUIRE(DNS_PEER_VALID(peer));
REQUIRE(retval != NULL);
-
+
if (DNS_BIT_CHECK(REQUEST_IXFR_BIT, &peer->bitflags)) {
*retval = peer->request_ixfr;
return (ISC_R_SUCCESS);
@@ -360,14 +360,14 @@ dns_peer_getrequestixfr(dns_peer_t *peer, isc_boolean_t *retval) {
isc_result_t
dns_peer_settransfers(dns_peer_t *peer, isc_int32_t newval) {
isc_boolean_t existed;
-
+
REQUIRE(DNS_PEER_VALID(peer));
-
+
existed = DNS_BIT_CHECK(TRANSFERS_BIT, &peer->bitflags);
-
+
peer->transfers = newval;
DNS_BIT_SET(TRANSFERS_BIT, &peer->bitflags);
-
+
return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
}
@@ -375,7 +375,7 @@ isc_result_t
dns_peer_gettransfers(dns_peer_t *peer, isc_int32_t *retval) {
REQUIRE(DNS_PEER_VALID(peer));
REQUIRE(retval != NULL);
-
+
if (DNS_BIT_CHECK(TRANSFERS_BIT, &peer->bitflags)) {
*retval = peer->transfers;
return (ISC_R_SUCCESS);
@@ -387,15 +387,15 @@ dns_peer_gettransfers(dns_peer_t *peer, isc_int32_t *retval) {
isc_result_t
dns_peer_settransferformat(dns_peer_t *peer, dns_transfer_format_t newval) {
isc_boolean_t existed;
-
+
REQUIRE(DNS_PEER_VALID(peer));
-
+
existed = DNS_BIT_CHECK(SERVER_TRANSFER_FORMAT_BIT,
&peer->bitflags);
-
+
peer->transfer_format = newval;
DNS_BIT_SET(SERVER_TRANSFER_FORMAT_BIT, &peer->bitflags);
-
+
return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
}
@@ -403,7 +403,7 @@ isc_result_t
dns_peer_gettransferformat(dns_peer_t *peer, dns_transfer_format_t *retval) {
REQUIRE(DNS_PEER_VALID(peer));
REQUIRE(retval != NULL);
-
+
if (DNS_BIT_CHECK(SERVER_TRANSFER_FORMAT_BIT, &peer->bitflags)) {
*retval = peer->transfer_format;
return (ISC_R_SUCCESS);
@@ -420,7 +420,7 @@ dns_peer_getkey(dns_peer_t *peer, dns_name_t **retval) {
if (peer->key != NULL) {
*retval = peer->key;
}
-
+
return (peer->key == NULL ? ISC_R_NOTFOUND : ISC_R_SUCCESS);
}
@@ -436,6 +436,6 @@ dns_peer_setkey(dns_peer_t *peer, dns_name_t **keyval) {
peer->key = *keyval;
*keyval = NULL;
-
+
return (exists ? ISC_R_EXISTS : ISC_R_SUCCESS);
}