Home | History | Annotate | Download | only in dns

Lines Matching refs:peer

1 /*	$NetBSD: peer.c,v 1.1 2024/02/18 20:57:33 christos Exp $	*/
29 #include <dns/peer.h>
57 peer_delete(dns_peer_t **peer);
130 dns_peerlist_addpeer(dns_peerlist_t *peers, dns_peer_t *peer) {
133 dns_peer_attach(peer, &p);
141 if (p->prefixlen < peer->prefixlen) {
147 ISC_LIST_INSERTBEFORE(peers->elements, p, peer, next);
149 ISC_LIST_APPEND(peers->elements, peer, next);
216 dns_peer_t *peer;
220 peer = isc_mem_get(mem, sizeof(*peer));
222 *peer = (dns_peer_t){
230 isc_refcount_init(&peer->refs, 1);
232 ISC_LINK_INIT(peer, next);
234 *peerptr = peer;
251 dns_peer_detach(dns_peer_t **peer) {
254 REQUIRE(peer != NULL);
255 REQUIRE(*peer != NULL);
256 REQUIRE(DNS_PEER_VALID(*peer));
258 p = *peer;
259 *peer = NULL;
267 peer_delete(dns_peer_t **peer) {
271 REQUIRE(peer != NULL);
272 REQUIRE(DNS_PEER_VALID(*peer));
274 p = *peer;
275 *peer = NULL;
305 dns_peer_setbogus(dns_peer_t *peer, bool newval) {
308 REQUIRE(DNS_PEER_VALID(peer));
310 existed = DNS_BIT_CHECK(BOGUS_BIT, &peer->bitflags);
312 peer->bogus = newval;
313 DNS_BIT_SET(BOGUS_BIT, &peer->bitflags);
319 dns_peer_getbogus(dns_peer_t *peer, bool *retval) {
320 REQUIRE(DNS_PEER_VALID(peer));
323 if (DNS_BIT_CHECK(BOGUS_BIT, &peer->bitflags)) {
324 *retval = peer->bogus;
332 dns_peer_setprovideixfr(dns_peer_t *peer, bool newval) {
335 REQUIRE(DNS_PEER_VALID(peer));
337 existed = DNS_BIT_CHECK(PROVIDE_IXFR_BIT, &peer->bitflags);
339 peer->provide_ixfr = newval;
340 DNS_BIT_SET(PROVIDE_IXFR_BIT, &peer->bitflags);
346 dns_peer_getprovideixfr(dns_peer_t *peer, bool *retval) {
347 REQUIRE(DNS_PEER_VALID(peer));
350 if (DNS_BIT_CHECK(PROVIDE_IXFR_BIT, &peer->bitflags)) {
351 *retval = peer->provide_ixfr;
359 dns_peer_setrequestixfr(dns_peer_t *peer, bool newval) {
362 REQUIRE(DNS_PEER_VALID(peer));
364 existed = DNS_BIT_CHECK(REQUEST_IXFR_BIT, &peer->bitflags);
366 peer->request_ixfr = newval;
367 DNS_BIT_SET(REQUEST_IXFR_BIT, &peer->bitflags);
373 dns_peer_getrequestixfr(dns_peer_t *peer, bool *retval) {
374 REQUIRE(DNS_PEER_VALID(peer));
377 if (DNS_BIT_CHECK(REQUEST_IXFR_BIT, &peer->bitflags)) {
378 *retval = peer->request_ixfr;
386 dns_peer_setsupportedns(dns_peer_t *peer, bool newval) {
389 REQUIRE(DNS_PEER_VALID(peer));
391 existed = DNS_BIT_CHECK(SUPPORT_EDNS_BIT, &peer->bitflags);
393 peer->support_edns = newval;
394 DNS_BIT_SET(SUPPORT_EDNS_BIT, &peer->bitflags);
400 dns_peer_getsupportedns(dns_peer_t *peer, bool *retval) {
401 REQUIRE(DNS_PEER_VALID(peer));
404 if (DNS_BIT_CHECK(SUPPORT_EDNS_BIT, &peer->bitflags)) {
405 *retval = peer->support_edns;
413 dns_peer_setrequestnsid(dns_peer_t *peer, bool newval) {
416 REQUIRE(DNS_PEER_VALID(peer));
418 existed = DNS_BIT_CHECK(REQUEST_NSID_BIT, &peer->bitflags);
420 peer->request_nsid = newval;
421 DNS_BIT_SET(REQUEST_NSID_BIT, &peer->bitflags);
427 dns_peer_getrequestnsid(dns_peer_t *peer, bool *retval) {
428 REQUIRE(DNS_PEER_VALID(peer));
431 if (DNS_BIT_CHECK(REQUEST_NSID_BIT, &peer->bitflags)) {
432 *retval = peer->request_nsid;
440 dns_peer_setsendcookie(dns_peer_t *peer, bool newval) {
443 REQUIRE(DNS_PEER_VALID(peer));
445 existed = DNS_BIT_CHECK(SEND_COOKIE_BIT, &peer->bitflags);
447 peer->send_cookie = newval;
448 DNS_BIT_SET(SEND_COOKIE_BIT, &peer->bitflags);
454 dns_peer_getsendcookie(dns_peer_t *peer, bool *retval) {
455 REQUIRE(DNS_PEER_VALID(peer));
458 if (DNS_BIT_CHECK(SEND_COOKIE_BIT, &peer->bitflags)) {
459 *retval = peer->send_cookie;
467 dns_peer_setrequestexpire(dns_peer_t *peer, bool newval) {
470 REQUIRE(DNS_PEER_VALID(peer));
472 existed = DNS_BIT_CHECK(REQUEST_EXPIRE_BIT, &peer->bitflags);
474 peer->request_expire = newval;
475 DNS_BIT_SET(REQUEST_EXPIRE_BIT, &peer->bitflags);
481 dns_peer_getrequestexpire(dns_peer_t *peer, bool *retval) {
482 REQUIRE(DNS_PEER_VALID(peer));
485 if (DNS_BIT_CHECK(REQUEST_EXPIRE_BIT, &peer->bitflags)) {
486 *retval = peer->request_expire;
494 dns_peer_setforcetcp(dns_peer_t *peer, bool newval) {
497 REQUIRE(DNS_PEER_VALID(peer));
499 existed = DNS_BIT_CHECK(FORCE_TCP_BIT, &peer->bitflags);
501 peer->force_tcp = newval;
502 DNS_BIT_SET(FORCE_TCP_BIT, &peer->bitflags);
508 dns_peer_getforcetcp(dns_peer_t *peer, bool *retval) {
509 REQUIRE(DNS_PEER_VALID(peer));
512 if (DNS_BIT_CHECK(FORCE_TCP_BIT, &peer->bitflags)) {
513 *retval = peer->force_tcp;
521 dns_peer_settcpkeepalive(dns_peer_t *peer, bool newval) {
524 REQUIRE(DNS_PEER_VALID(peer));
526 existed = DNS_BIT_CHECK(REQUEST_TCP_KEEPALIVE_BIT, &peer->bitflags);
528 peer->tcp_keepalive = newval;
529 DNS_BIT_SET(REQUEST_TCP_KEEPALIVE_BIT, &peer->bitflags);
535 dns_peer_gettcpkeepalive(dns_peer_t *peer, bool *retval) {
536 REQUIRE(DNS_PEER_VALID(peer));
539 if (DNS_BIT_CHECK(REQUEST_TCP_KEEPALIVE_BIT, &peer->bitflags)) {
540 *retval = peer->tcp_keepalive;
548 dns_peer_settransfers(dns_peer_t *peer, uint32_t newval) {
551 REQUIRE(DNS_PEER_VALID(peer));
553 existed = DNS_BIT_CHECK(TRANSFERS_BIT, &peer->bitflags);
555 peer->transfers = newval;
556 DNS_BIT_SET(TRANSFERS_BIT, &peer->bitflags);
562 dns_peer_gettransfers(dns_peer_t *peer, uint32_t *retval) {
563 REQUIRE(DNS_PEER_VALID(peer));
566 if (DNS_BIT_CHECK(TRANSFERS_BIT, &peer->bitflags)) {
567 *retval = peer->transfers;
575 dns_peer_settransferformat(dns_peer_t *peer, dns_transfer_format_t newval) {
578 REQUIRE(DNS_PEER_VALID(peer));
580 existed = DNS_BIT_CHECK(SERVER_TRANSFER_FORMAT_BIT, &peer->bitflags);
582 peer->transfer_format = newval;
583 DNS_BIT_SET(SERVER_TRANSFER_FORMAT_BIT, &peer->bitflags);
589 dns_peer_gettransferformat(dns_peer_t *peer, dns_transfer_format_t *retval) {
590 REQUIRE(DNS_PEER_VALID(peer));
593 if (DNS_BIT_CHECK(SERVER_TRANSFER_FORMAT_BIT, &peer->bitflags)) {
594 *retval = peer->transfer_format;
602 dns_peer_getkey(dns_peer_t *peer, dns_name_t **retval) {
603 REQUIRE(DNS_PEER_VALID(peer));
606 if (peer->key != NULL) {
607 *retval = peer->key;
610 return (peer->key == NULL ? ISC_R_NOTFOUND : ISC_R_SUCCESS);
614 dns_peer_setkey(dns_peer_t *peer, dns_name_t **keyval) {
617 if (peer->key != NULL) {
618 dns_name_free(peer->key, peer->mem);
619 isc_mem_put(peer->mem, peer->key, sizeof(dns_name_t));
623 peer->key = *keyval;
630 dns_peer_setkeybycharp(dns_peer_t *peer, const char *keyval) {
645 name = isc_mem_get(peer->mem, sizeof(dns_name_t));
648 dns_name_dup(dns_fixedname_name(&fname), peer->mem, name);
650 result = dns_peer_setkey(peer, &name);
652 isc_mem_put(peer->mem, name, sizeof(dns_name_t));
659 dns_peer_settransfersource(dns_peer_t *peer,
661 REQUIRE(DNS_PEER_VALID(peer));
663 if (peer->transfer_source != NULL) {
664 isc_mem_put(peer->mem, peer->transfer_source,
665 sizeof(*peer->transfer_source));
666 peer->transfer_source = NULL;
669 peer->transfer_source =
670 isc_mem_get(peer->mem, sizeof(*peer->transfer_source));
672 *peer->transfer_source = *transfer_source;
678 dns_peer_gettransfersource(dns_peer_t *peer, isc_sockaddr_t *transfer_source) {
679 REQUIRE(DNS_PEER_VALID(peer));
682 if (peer->transfer_source == NULL) {
685 *transfer_source = *peer->transfer_source;
690 dns_peer_setnotifysource(dns_peer_t *peer,
692 REQUIRE(DNS_PEER_VALID(peer));
694 if (peer->notify_source != NULL) {
695 isc_mem_put(peer->mem, peer->notify_source,
696 sizeof(*peer->notify_source));
697 peer->notify_source = NULL;
700 peer->notify_source = isc_mem_get(peer->mem,
701 sizeof(*peer->notify_source));
703 *peer->notify_source = *notify_source;
709 dns_peer_getnotifysource(dns_peer_t *peer, isc_sockaddr_t *notify_source) {
710 REQUIRE(DNS_PEER_VALID(peer));
713 if (peer->notify_source == NULL) {
716 *notify_source = *peer->notify_source;
721 dns_peer_setquerysource(dns_peer_t *peer, const isc_sockaddr_t *query_source) {
722 REQUIRE(DNS_PEER_VALID(peer));
724 if (peer->query_source != NULL) {
725 isc_mem_put(peer->mem, peer->query_source,
726 sizeof(*peer->query_source));
727 peer->query_source = NULL;
730 peer->query_source = isc_mem_get(peer->mem,
731 sizeof(*peer->query_source));
733 *peer->query_source = *query_source;
739 dns_peer_getquerysource(dns_peer_t *peer, isc_sockaddr_t *query_source) {
740 REQUIRE(DNS_PEER_VALID(peer));
743 if (peer->query_source == NULL) {
746 *query_source = *peer->query_source;
751 dns_peer_setudpsize(dns_peer_t *peer, uint16_t udpsize) {
754 REQUIRE(DNS_PEER_VALID(peer));
756 peer->bitflags);
758 peer->udpsize = udpsize;
759 DNS_BIT_SET(SERVER_UDPSIZE_BIT, &peer->bitflags);
765 dns_peer_getudpsize(dns_peer_t *peer, uint16_t *udpsize) {
766 REQUIRE(DNS_PEER_VALID(peer));
769 if (DNS_BIT_CHECK(SERVER_UDPSIZE_BIT, &peer->bitflags)) {
770 *udpsize = peer->udpsize;
778 dns_peer_setmaxudp(dns_peer_t *peer, uint16_t maxudp) {
781 REQUIRE(DNS_PEER_VALID(peer));
783 existed = DNS_BIT_CHECK(SERVER_MAXUDP_BIT, &peer->bitflags);
785 peer->maxudp = maxudp;
786 DNS_BIT_SET(SERVER_MAXUDP_BIT, &peer->bitflags);
792 dns_peer_getmaxudp(dns_peer_t *peer, uint16_t *maxudp) {
793 REQUIRE(DNS_PEER_VALID(peer));
796 if (DNS_BIT_CHECK(SERVER_MAXUDP_BIT, &peer->bitflags)) {
797 *maxudp = peer->maxudp;
805 dns_peer_setpadding(dns_peer_t *peer, uint16_t padding) {
808 REQUIRE(DNS_PEER_VALID(peer));
810 existed = DNS_BIT_CHECK(SERVER_PADDING_BIT, &peer->bitflags);
815 peer->padding = padding;
816 DNS_BIT_SET(SERVER_PADDING_BIT, &peer->bitflags);
822 dns_peer_getpadding(dns_peer_t *peer, uint16_t *padding) {
823 REQUIRE(DNS_PEER_VALID(peer));
826 if (DNS_BIT_CHECK(SERVER_PADDING_BIT, &peer->bitflags)) {
827 *padding = peer->padding;
835 dns_peer_setnotifydscp(dns_peer_t *peer, isc_dscp_t dscp) {
836 REQUIRE(DNS_PEER_VALID(peer));
839 peer->notify_dscp = dscp;
840 DNS_BIT_SET(NOTIFY_DSCP_BIT, &peer->bitflags);
845 dns_peer_getnotifydscp(dns_peer_t *peer, isc_dscp_t *dscpp) {
846 REQUIRE(DNS_PEER_VALID(peer));
849 if (DNS_BIT_CHECK(NOTIFY_DSCP_BIT, &peer->bitflags)) {
850 *dscpp = peer->notify_dscp;
857 dns_peer_settransferdscp(dns_peer_t *peer, isc_dscp_t dscp) {
858 REQUIRE(DNS_PEER_VALID(peer));
861 peer->transfer_dscp = dscp;
862 DNS_BIT_SET(TRANSFER_DSCP_BIT, &peer->bitflags);
867 dns_peer_gettransferdscp(dns_peer_t *peer, isc_dscp_t *dscpp) {
868 REQUIRE(DNS_PEER_VALID(peer));
871 if (DNS_BIT_CHECK(TRANSFER_DSCP_BIT, &peer->bitflags)) {
872 *dscpp = peer->transfer_dscp;
879 dns_peer_setquerydscp(dns_peer_t *peer, isc_dscp_t dscp) {
880 REQUIRE(DNS_PEER_VALID(peer));
883 peer->query_dscp = dscp;
884 DNS_BIT_SET(QUERY_DSCP_BIT, &peer->bitflags);
889 dns_peer_getquerydscp(dns_peer_t *peer, isc_dscp_t *dscpp) {
890 REQUIRE(DNS_PEER_VALID(peer));
893 if (DNS_BIT_CHECK(QUERY_DSCP_BIT, &peer->bitflags)) {
894 *dscpp = peer->query_dscp;
901 dns_peer_setednsversion(dns_peer_t *peer, uint8_t ednsversion) {
902 REQUIRE(DNS_PEER_VALID(peer));
904 peer->ednsversion = ednsversion;
905 DNS_BIT_SET(EDNS_VERSION_BIT, &peer->bitflags);
911 dns_peer_getednsversion(dns_peer_t *peer, uint8_t *ednsversion) {
912 REQUIRE(DNS_PEER_VALID(peer));
915 if (DNS_BIT_CHECK(EDNS_VERSION_BIT, &peer->bitflags)) {
916 *ednsversion = peer->ednsversion;