Lines Matching defs:peer
1 /* $NetBSD: peer.c,v 1.12 2025/01/26 16:25:24 christos Exp $ */
29 #include <dns/peer.h>
104 peer_delete(dns_peer_t **peer);
177 dns_peerlist_addpeer(dns_peerlist_t *peers, dns_peer_t *peer) {
180 dns_peer_attach(peer, &p);
188 if (p->prefixlen < peer->prefixlen) {
194 ISC_LIST_INSERTBEFORE(peers->elements, p, peer, next);
196 ISC_LIST_APPEND(peers->elements, peer, next);
263 dns_peer_t *peer;
267 peer = isc_mem_get(mem, sizeof(*peer));
269 *peer = (dns_peer_t){
277 isc_refcount_init(&peer->refs, 1);
279 ISC_LINK_INIT(peer, next);
281 *peerptr = peer;
298 dns_peer_detach(dns_peer_t **peer) {
301 REQUIRE(peer != NULL);
302 REQUIRE(*peer != NULL);
303 REQUIRE(DNS_PEER_VALID(*peer));
305 p = *peer;
306 *peer = NULL;
314 peer_delete(dns_peer_t **peer) {
318 REQUIRE(peer != NULL);
319 REQUIRE(DNS_PEER_VALID(*peer));
321 p = *peer;
322 *peer = NULL;
352 isc_result_t dns_peer_get##name(dns_peer_t *peer, type *value) { \
353 REQUIRE(DNS_PEER_VALID(peer)); \
355 if (DNS_BIT_CHECK(macro, &peer->bitflags)) { \
356 *value = peer->element; \
362 isc_result_t dns_peer_set##name(dns_peer_t *peer, type value) { \
364 REQUIRE(DNS_PEER_VALID(peer)); \
365 existed = DNS_BIT_CHECK(macro, &peer->bitflags); \
366 peer->element = value; \
367 DNS_BIT_SET(macro, &peer->bitflags); \
388 isc_result_t dns_peer_get##name(dns_peer_t *peer, type *value) { \
389 REQUIRE(DNS_PEER_VALID(peer)); \
391 if (DNS_BIT_CHECK(macro, &peer->bitflags)) { \
392 *value = peer->element; \
398 isc_result_t dns_peer_set##name(dns_peer_t *peer, type value) { \
400 REQUIRE(DNS_PEER_VALID(peer)); \
401 existed = DNS_BIT_CHECK(macro, &peer->bitflags); \
405 peer->element = value; \
406 DNS_BIT_SET(macro, &peer->bitflags); \
413 isc_result_t dns_peer_get##name(dns_peer_t *peer, \
415 REQUIRE(DNS_PEER_VALID(peer)); \
417 if (peer->element == NULL) { \
420 *value = *peer->element; \
423 isc_result_t dns_peer_set##name(dns_peer_t *peer, \
425 REQUIRE(DNS_PEER_VALID(peer)); \
426 if (peer->element != NULL) { \
427 isc_mem_put(peer->mem, peer->element, \
428 sizeof(*peer->element)); \
429 peer->element = NULL; \
432 peer->element = isc_mem_get(peer->mem, \
433 sizeof(*peer->element)); \
434 *peer->element = *value; \
444 isc_result_t dns_peer_get##name(dns_peer_t *peer, type *value) { \
445 REQUIRE(DNS_PEER_VALID(peer)); \
447 if (DNS_BIT_CHECK(macro, &peer->bitflags)) { \
448 *value = peer->element; \
454 isc_result_t dns_peer_set##name(dns_peer_t *peer, type value) { \
455 REQUIRE(DNS_PEER_VALID(peer)); \
456 peer->element = value; \
457 DNS_BIT_SET(macro, &peer->bitflags); \
464 dns_peer_getkey(dns_peer_t *peer, dns_name_t **retval) {
465 REQUIRE(DNS_PEER_VALID(peer));
468 if (peer->key != NULL) {
469 *retval = peer->key;
472 return peer->key == NULL ? ISC_R_NOTFOUND : ISC_R_SUCCESS;
476 dns_peer_setkey(dns_peer_t *peer, dns_name_t **keyval) {
479 if (peer->key != NULL) {
480 dns_name_free(peer->key, peer->mem);
481 isc_mem_put(peer->mem, peer->key, sizeof(dns_name_t));
485 peer->key = *keyval;
492 dns_peer_setkeybycharp(dns_peer_t *peer, const char *keyval) {
507 name = isc_mem_get(peer->mem, sizeof(dns_name_t));
510 dns_name_dup(dns_fixedname_name(&fname), peer->mem, name);
512 result = dns_peer_setkey(peer, &name);
514 isc_mem_put(peer->mem, name, sizeof(dns_name_t));