bool support_edns;
bool request_nsid;
bool send_cookie;
+ bool require_cookie;
bool request_expire;
bool force_tcp;
bool tcp_keepalive;
#define FORCE_TCP_BIT 15
#define SERVER_PADDING_BIT 16
#define REQUEST_TCP_KEEPALIVE_BIT 17
+#define REQUIRE_COOKIE_BIT 18
static void
peerlist_delete(dns_peerlist_t **list);
isc_mem_put(mem, p, sizeof(*p));
}
-isc_result_t
-dns_peer_setbogus(dns_peer_t *peer, bool newval) {
- bool 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);
-}
-
-isc_result_t
-dns_peer_getbogus(dns_peer_t *peer, bool *retval) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(retval != NULL);
-
- if (DNS_BIT_CHECK(BOGUS_BIT, &peer->bitflags)) {
- *retval = peer->bogus;
- return (ISC_R_SUCCESS);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
-
-isc_result_t
-dns_peer_setprovideixfr(dns_peer_t *peer, bool newval) {
- bool 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);
-}
-
-isc_result_t
-dns_peer_getprovideixfr(dns_peer_t *peer, bool *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);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
-
-isc_result_t
-dns_peer_setrequestixfr(dns_peer_t *peer, bool newval) {
- bool 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);
-}
-
-isc_result_t
-dns_peer_getrequestixfr(dns_peer_t *peer, bool *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);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
-
-isc_result_t
-dns_peer_setsupportedns(dns_peer_t *peer, bool newval) {
- bool existed;
-
- REQUIRE(DNS_PEER_VALID(peer));
-
- existed = DNS_BIT_CHECK(SUPPORT_EDNS_BIT, &peer->bitflags);
-
- peer->support_edns = newval;
- DNS_BIT_SET(SUPPORT_EDNS_BIT, &peer->bitflags);
-
- return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getsupportedns(dns_peer_t *peer, bool *retval) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(retval != NULL);
-
- if (DNS_BIT_CHECK(SUPPORT_EDNS_BIT, &peer->bitflags)) {
- *retval = peer->support_edns;
- return (ISC_R_SUCCESS);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
-
-isc_result_t
-dns_peer_setrequestnsid(dns_peer_t *peer, bool newval) {
- bool existed;
-
- REQUIRE(DNS_PEER_VALID(peer));
-
- existed = DNS_BIT_CHECK(REQUEST_NSID_BIT, &peer->bitflags);
-
- peer->request_nsid = newval;
- DNS_BIT_SET(REQUEST_NSID_BIT, &peer->bitflags);
-
- return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getrequestnsid(dns_peer_t *peer, bool *retval) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(retval != NULL);
-
- if (DNS_BIT_CHECK(REQUEST_NSID_BIT, &peer->bitflags)) {
- *retval = peer->request_nsid;
- return (ISC_R_SUCCESS);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
-
-isc_result_t
-dns_peer_setsendcookie(dns_peer_t *peer, bool newval) {
- bool existed;
-
- REQUIRE(DNS_PEER_VALID(peer));
-
- existed = DNS_BIT_CHECK(SEND_COOKIE_BIT, &peer->bitflags);
-
- peer->send_cookie = newval;
- DNS_BIT_SET(SEND_COOKIE_BIT, &peer->bitflags);
-
- return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getsendcookie(dns_peer_t *peer, bool *retval) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(retval != NULL);
-
- if (DNS_BIT_CHECK(SEND_COOKIE_BIT, &peer->bitflags)) {
- *retval = peer->send_cookie;
- return (ISC_R_SUCCESS);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
-
-isc_result_t
-dns_peer_setrequestexpire(dns_peer_t *peer, bool newval) {
- bool existed;
-
- REQUIRE(DNS_PEER_VALID(peer));
-
- existed = DNS_BIT_CHECK(REQUEST_EXPIRE_BIT, &peer->bitflags);
-
- peer->request_expire = newval;
- DNS_BIT_SET(REQUEST_EXPIRE_BIT, &peer->bitflags);
-
- return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getrequestexpire(dns_peer_t *peer, bool *retval) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(retval != NULL);
-
- if (DNS_BIT_CHECK(REQUEST_EXPIRE_BIT, &peer->bitflags)) {
- *retval = peer->request_expire;
- return (ISC_R_SUCCESS);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
-
-isc_result_t
-dns_peer_setforcetcp(dns_peer_t *peer, bool newval) {
- bool existed;
-
- REQUIRE(DNS_PEER_VALID(peer));
-
- existed = DNS_BIT_CHECK(FORCE_TCP_BIT, &peer->bitflags);
-
- peer->force_tcp = newval;
- DNS_BIT_SET(FORCE_TCP_BIT, &peer->bitflags);
-
- return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getforcetcp(dns_peer_t *peer, bool *retval) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(retval != NULL);
-
- if (DNS_BIT_CHECK(FORCE_TCP_BIT, &peer->bitflags)) {
- *retval = peer->force_tcp;
- return (ISC_R_SUCCESS);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
-
-isc_result_t
-dns_peer_settcpkeepalive(dns_peer_t *peer, bool newval) {
- bool existed;
-
- REQUIRE(DNS_PEER_VALID(peer));
-
- existed = DNS_BIT_CHECK(REQUEST_TCP_KEEPALIVE_BIT, &peer->bitflags);
-
- peer->tcp_keepalive = newval;
- DNS_BIT_SET(REQUEST_TCP_KEEPALIVE_BIT, &peer->bitflags);
-
- return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_gettcpkeepalive(dns_peer_t *peer, bool *retval) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(retval != NULL);
-
- if (DNS_BIT_CHECK(REQUEST_TCP_KEEPALIVE_BIT, &peer->bitflags)) {
- *retval = peer->tcp_keepalive;
- return (ISC_R_SUCCESS);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
-
-isc_result_t
-dns_peer_settransfers(dns_peer_t *peer, uint32_t newval) {
- bool 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);
-}
-
-isc_result_t
-dns_peer_gettransfers(dns_peer_t *peer, uint32_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);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
-
-isc_result_t
-dns_peer_settransferformat(dns_peer_t *peer, dns_transfer_format_t newval) {
- bool 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);
-}
-
-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);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
+#define ACCESS_OPTION(name, macro, type, element) \
+ isc_result_t dns_peer_get##name(dns_peer_t *peer, type *value) { \
+ REQUIRE(DNS_PEER_VALID(peer)); \
+ REQUIRE(value != NULL); \
+ if (DNS_BIT_CHECK(macro, &peer->bitflags)) { \
+ *value = peer->element; \
+ return (ISC_R_SUCCESS); \
+ } else { \
+ return (ISC_R_NOTFOUND); \
+ } \
+ } \
+ isc_result_t dns_peer_set##name(dns_peer_t *peer, type value) { \
+ bool existed; \
+ REQUIRE(DNS_PEER_VALID(peer)); \
+ existed = DNS_BIT_CHECK(macro, &peer->bitflags); \
+ peer->element = value; \
+ DNS_BIT_SET(macro, &peer->bitflags); \
+ return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS); \
+ }
+
+ACCESS_OPTION(bogus, BOGUS_BIT, bool, bogus)
+ACCESS_OPTION(forcetcp, FORCE_TCP_BIT, bool, force_tcp)
+ACCESS_OPTION(maxudp, SERVER_MAXUDP_BIT, uint16_t, maxudp)
+ACCESS_OPTION(provideixfr, PROVIDE_IXFR_BIT, bool, provide_ixfr)
+ACCESS_OPTION(requestexpire, REQUEST_EXPIRE_BIT, bool, request_expire)
+ACCESS_OPTION(requestixfr, REQUEST_IXFR_BIT, bool, request_ixfr)
+ACCESS_OPTION(requestnsid, REQUEST_NSID_BIT, bool, request_nsid)
+ACCESS_OPTION(requirecookie, REQUIRE_COOKIE_BIT, bool, require_cookie)
+ACCESS_OPTION(sendcookie, SEND_COOKIE_BIT, bool, send_cookie)
+ACCESS_OPTION(supportedns, SUPPORT_EDNS_BIT, bool, support_edns)
+ACCESS_OPTION(tcpkeepalive, REQUEST_TCP_KEEPALIVE_BIT, bool, tcp_keepalive)
+ACCESS_OPTION(transferformat, SERVER_TRANSFER_FORMAT_BIT, dns_transfer_format_t,
+ transfer_format)
+ACCESS_OPTION(transfers, TRANSFERS_BIT, uint32_t, transfers)
+ACCESS_OPTION(udpsize, SERVER_UDPSIZE_BIT, uint16_t, udpsize)
+
+#define ACCESS_OPTIONMAX(name, macro, type, element, max) \
+ isc_result_t dns_peer_get##name(dns_peer_t *peer, type *value) { \
+ REQUIRE(DNS_PEER_VALID(peer)); \
+ REQUIRE(value != NULL); \
+ if (DNS_BIT_CHECK(macro, &peer->bitflags)) { \
+ *value = peer->element; \
+ return (ISC_R_SUCCESS); \
+ } else { \
+ return (ISC_R_NOTFOUND); \
+ } \
+ } \
+ isc_result_t dns_peer_set##name(dns_peer_t *peer, type value) { \
+ bool existed; \
+ REQUIRE(DNS_PEER_VALID(peer)); \
+ existed = DNS_BIT_CHECK(macro, &peer->bitflags); \
+ if (value > max) { \
+ value = max; \
+ } \
+ peer->element = value; \
+ DNS_BIT_SET(macro, &peer->bitflags); \
+ return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS); \
+ }
+
+ACCESS_OPTIONMAX(padding, SERVER_PADDING_BIT, uint16_t, padding, 512)
+
+#define ACCESS_SOCKADDR(name, element) \
+ isc_result_t dns_peer_get##name(dns_peer_t *peer, \
+ isc_sockaddr_t *value) { \
+ REQUIRE(DNS_PEER_VALID(peer)); \
+ REQUIRE(value != NULL); \
+ if (peer->element == NULL) { \
+ return (ISC_R_NOTFOUND); \
+ } \
+ *value = *peer->element; \
+ return (ISC_R_SUCCESS); \
+ } \
+ isc_result_t dns_peer_set##name(dns_peer_t *peer, \
+ const isc_sockaddr_t *value) { \
+ REQUIRE(DNS_PEER_VALID(peer)); \
+ if (peer->element != NULL) { \
+ isc_mem_put(peer->mem, peer->element, \
+ sizeof(*peer->element)); \
+ peer->element = NULL; \
+ } \
+ if (value != NULL) { \
+ peer->element = isc_mem_get(peer->mem, \
+ sizeof(*peer->element)); \
+ *peer->element = *value; \
+ } \
+ return (ISC_R_SUCCESS); \
+ }
+
+ACCESS_SOCKADDR(notifysource, notify_source)
+ACCESS_SOCKADDR(querysource, query_source)
+ACCESS_SOCKADDR(transfersource, transfer_source)
+
+#define ACCESS_OPTION_OVERWRITE(name, macro, type, element) \
+ isc_result_t dns_peer_get##name(dns_peer_t *peer, type *value) { \
+ REQUIRE(DNS_PEER_VALID(peer)); \
+ REQUIRE(value != NULL); \
+ if (DNS_BIT_CHECK(macro, &peer->bitflags)) { \
+ *value = peer->element; \
+ return (ISC_R_SUCCESS); \
+ } else { \
+ return (ISC_R_NOTFOUND); \
+ } \
+ } \
+ isc_result_t dns_peer_set##name(dns_peer_t *peer, type value) { \
+ REQUIRE(DNS_PEER_VALID(peer)); \
+ peer->element = value; \
+ DNS_BIT_SET(macro, &peer->bitflags); \
+ return (ISC_R_SUCCESS); \
+ }
+
+ACCESS_OPTION_OVERWRITE(ednsversion, EDNS_VERSION_BIT, uint8_t, ednsversion)
+
+#define ACCESS_OPTION_OVERWRITEDSCP(name, macro, type, element) \
+ isc_result_t dns_peer_get##name(dns_peer_t *peer, type *value) { \
+ REQUIRE(DNS_PEER_VALID(peer)); \
+ REQUIRE(value != NULL); \
+ if (DNS_BIT_CHECK(macro, &peer->bitflags)) { \
+ *value = peer->element; \
+ return (ISC_R_SUCCESS); \
+ } else { \
+ return (ISC_R_NOTFOUND); \
+ } \
+ } \
+ isc_result_t dns_peer_set##name(dns_peer_t *peer, type value) { \
+ REQUIRE(DNS_PEER_VALID(peer)); \
+ REQUIRE(value < 64); \
+ peer->element = value; \
+ DNS_BIT_SET(macro, &peer->bitflags); \
+ return (ISC_R_SUCCESS); \
+ }
+ACCESS_OPTION_OVERWRITEDSCP(notifydscp, NOTIFY_DSCP_BIT, isc_dscp_t,
+ notify_dscp)
+ACCESS_OPTION_OVERWRITEDSCP(querydscp, QUERY_DSCP_BIT, isc_dscp_t, query_dscp)
+ACCESS_OPTION_OVERWRITEDSCP(transferdscp, TRANSFER_DSCP_BIT, isc_dscp_t,
+ transfer_dscp)
isc_result_t
dns_peer_getkey(dns_peer_t *peer, dns_name_t **retval) {
return (result);
}
-
-isc_result_t
-dns_peer_settransfersource(dns_peer_t *peer,
- const isc_sockaddr_t *transfer_source) {
- REQUIRE(DNS_PEER_VALID(peer));
-
- if (peer->transfer_source != NULL) {
- isc_mem_put(peer->mem, peer->transfer_source,
- sizeof(*peer->transfer_source));
- peer->transfer_source = NULL;
- }
- if (transfer_source != NULL) {
- peer->transfer_source =
- isc_mem_get(peer->mem, sizeof(*peer->transfer_source));
-
- *peer->transfer_source = *transfer_source;
- }
- return (ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_gettransfersource(dns_peer_t *peer, isc_sockaddr_t *transfer_source) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(transfer_source != NULL);
-
- if (peer->transfer_source == NULL) {
- return (ISC_R_NOTFOUND);
- }
- *transfer_source = *peer->transfer_source;
- return (ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_setnotifysource(dns_peer_t *peer,
- const isc_sockaddr_t *notify_source) {
- REQUIRE(DNS_PEER_VALID(peer));
-
- if (peer->notify_source != NULL) {
- isc_mem_put(peer->mem, peer->notify_source,
- sizeof(*peer->notify_source));
- peer->notify_source = NULL;
- }
- if (notify_source != NULL) {
- peer->notify_source = isc_mem_get(peer->mem,
- sizeof(*peer->notify_source));
-
- *peer->notify_source = *notify_source;
- }
- return (ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getnotifysource(dns_peer_t *peer, isc_sockaddr_t *notify_source) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(notify_source != NULL);
-
- if (peer->notify_source == NULL) {
- return (ISC_R_NOTFOUND);
- }
- *notify_source = *peer->notify_source;
- return (ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_setquerysource(dns_peer_t *peer, const isc_sockaddr_t *query_source) {
- REQUIRE(DNS_PEER_VALID(peer));
-
- if (peer->query_source != NULL) {
- isc_mem_put(peer->mem, peer->query_source,
- sizeof(*peer->query_source));
- peer->query_source = NULL;
- }
- if (query_source != NULL) {
- peer->query_source = isc_mem_get(peer->mem,
- sizeof(*peer->query_source));
-
- *peer->query_source = *query_source;
- }
- return (ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getquerysource(dns_peer_t *peer, isc_sockaddr_t *query_source) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(query_source != NULL);
-
- if (peer->query_source == NULL) {
- return (ISC_R_NOTFOUND);
- }
- *query_source = *peer->query_source;
- return (ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_setudpsize(dns_peer_t *peer, uint16_t udpsize) {
- bool existed;
-
- REQUIRE(DNS_PEER_VALID(peer));
-
- existed = DNS_BIT_CHECK(SERVER_UDPSIZE_BIT, &peer->bitflags);
-
- peer->udpsize = udpsize;
- DNS_BIT_SET(SERVER_UDPSIZE_BIT, &peer->bitflags);
-
- return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getudpsize(dns_peer_t *peer, uint16_t *udpsize) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(udpsize != NULL);
-
- if (DNS_BIT_CHECK(SERVER_UDPSIZE_BIT, &peer->bitflags)) {
- *udpsize = peer->udpsize;
- return (ISC_R_SUCCESS);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
-
-isc_result_t
-dns_peer_setmaxudp(dns_peer_t *peer, uint16_t maxudp) {
- bool existed;
-
- REQUIRE(DNS_PEER_VALID(peer));
-
- existed = DNS_BIT_CHECK(SERVER_MAXUDP_BIT, &peer->bitflags);
-
- peer->maxudp = maxudp;
- DNS_BIT_SET(SERVER_MAXUDP_BIT, &peer->bitflags);
-
- return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getmaxudp(dns_peer_t *peer, uint16_t *maxudp) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(maxudp != NULL);
-
- if (DNS_BIT_CHECK(SERVER_MAXUDP_BIT, &peer->bitflags)) {
- *maxudp = peer->maxudp;
- return (ISC_R_SUCCESS);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
-
-isc_result_t
-dns_peer_setpadding(dns_peer_t *peer, uint16_t padding) {
- bool existed;
-
- REQUIRE(DNS_PEER_VALID(peer));
-
- existed = DNS_BIT_CHECK(SERVER_PADDING_BIT, &peer->bitflags);
-
- if (padding > 512) {
- padding = 512;
- }
- peer->padding = padding;
- DNS_BIT_SET(SERVER_PADDING_BIT, &peer->bitflags);
-
- return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getpadding(dns_peer_t *peer, uint16_t *padding) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(padding != NULL);
-
- if (DNS_BIT_CHECK(SERVER_PADDING_BIT, &peer->bitflags)) {
- *padding = peer->padding;
- return (ISC_R_SUCCESS);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}
-
-isc_result_t
-dns_peer_setnotifydscp(dns_peer_t *peer, isc_dscp_t dscp) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(dscp < 64);
-
- peer->notify_dscp = dscp;
- DNS_BIT_SET(NOTIFY_DSCP_BIT, &peer->bitflags);
- return (ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getnotifydscp(dns_peer_t *peer, isc_dscp_t *dscpp) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(dscpp != NULL);
-
- if (DNS_BIT_CHECK(NOTIFY_DSCP_BIT, &peer->bitflags)) {
- *dscpp = peer->notify_dscp;
- return (ISC_R_SUCCESS);
- }
- return (ISC_R_NOTFOUND);
-}
-
-isc_result_t
-dns_peer_settransferdscp(dns_peer_t *peer, isc_dscp_t dscp) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(dscp < 64);
-
- peer->transfer_dscp = dscp;
- DNS_BIT_SET(TRANSFER_DSCP_BIT, &peer->bitflags);
- return (ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_gettransferdscp(dns_peer_t *peer, isc_dscp_t *dscpp) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(dscpp != NULL);
-
- if (DNS_BIT_CHECK(TRANSFER_DSCP_BIT, &peer->bitflags)) {
- *dscpp = peer->transfer_dscp;
- return (ISC_R_SUCCESS);
- }
- return (ISC_R_NOTFOUND);
-}
-
-isc_result_t
-dns_peer_setquerydscp(dns_peer_t *peer, isc_dscp_t dscp) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(dscp < 64);
-
- peer->query_dscp = dscp;
- DNS_BIT_SET(QUERY_DSCP_BIT, &peer->bitflags);
- return (ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getquerydscp(dns_peer_t *peer, isc_dscp_t *dscpp) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(dscpp != NULL);
-
- if (DNS_BIT_CHECK(QUERY_DSCP_BIT, &peer->bitflags)) {
- *dscpp = peer->query_dscp;
- return (ISC_R_SUCCESS);
- }
- return (ISC_R_NOTFOUND);
-}
-
-isc_result_t
-dns_peer_setednsversion(dns_peer_t *peer, uint8_t ednsversion) {
- REQUIRE(DNS_PEER_VALID(peer));
-
- peer->ednsversion = ednsversion;
- DNS_BIT_SET(EDNS_VERSION_BIT, &peer->bitflags);
-
- return (ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getednsversion(dns_peer_t *peer, uint8_t *ednsversion) {
- REQUIRE(DNS_PEER_VALID(peer));
- REQUIRE(ednsversion != NULL);
-
- if (DNS_BIT_CHECK(EDNS_VERSION_BIT, &peer->bitflags)) {
- *ednsversion = peer->ednsversion;
- return (ISC_R_SUCCESS);
- } else {
- return (ISC_R_NOTFOUND);
- }
-}