diff options
Diffstat (limited to 'lib/dns/peer.c')
-rw-r--r-- | lib/dns/peer.c | 150 |
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); } |