✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server.blackpussy.asia ​🇻​♯➤ 5.14.0-611.20.1.el9_7.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 163.245.207.76 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗞 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ mail,mb_send_mail
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/include/bind9/dns//rrl.h
/*
 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
 *
 * See the COPYRIGHT file distributed with this work for additional
 * information regarding copyright ownership.
 */

#ifndef DNS_RRL_H
#define DNS_RRL_H 1

/*
 * Rate limit DNS responses.
 */

#include <inttypes.h>
#include <stdbool.h>

#include <isc/lang.h>

#include <dns/fixedname.h>
#include <dns/rdata.h>
#include <dns/types.h>

ISC_LANG_BEGINDECLS

/*
 * Memory allocation or other failures.
 */
#define DNS_RRL_LOG_FAIL ISC_LOG_WARNING
/*
 * dropped or slipped responses.
 */
#define DNS_RRL_LOG_DROP ISC_LOG_INFO
/*
 * Major events in dropping or slipping.
 */
#define DNS_RRL_LOG_DEBUG1 ISC_LOG_DEBUG(3)
/*
 * Limit computations.
 */
#define DNS_RRL_LOG_DEBUG2 ISC_LOG_DEBUG(4)
/*
 * Even less interesting.
 */
#define DNS_RRL_LOG_DEBUG3 ISC_LOG_DEBUG(9)

#define DNS_RRL_LOG_ERR_LEN 64
#define DNS_RRL_LOG_BUF_LEN                                        \
	(sizeof("would continue limiting") + DNS_RRL_LOG_ERR_LEN + \
	 sizeof(" responses to ") + ISC_NETADDR_FORMATSIZE +       \
	 sizeof("/128 for IN ") + DNS_RDATATYPE_FORMATSIZE +       \
	 DNS_NAME_FORMATSIZE)

typedef struct dns_rrl_hash dns_rrl_hash_t;

/*
 * Response types.
 */
typedef enum {
	DNS_RRL_RTYPE_FREE = 0,
	DNS_RRL_RTYPE_QUERY,
	DNS_RRL_RTYPE_REFERRAL,
	DNS_RRL_RTYPE_NODATA,
	DNS_RRL_RTYPE_NXDOMAIN,
	DNS_RRL_RTYPE_ERROR,
	DNS_RRL_RTYPE_ALL,
	DNS_RRL_RTYPE_TCP,
} dns_rrl_rtype_t;

/*
 * A rate limit bucket key.
 * This should be small to limit the total size of the database.
 * The hash of the qname should be wide enough to make the probability
 * of collisions among requests from a single IP address block less than 50%.
 * We need a 32-bit hash value for 10000 qps (e.g. random qnames forged
 * by attacker) to collide with legitimate qnames from the target with
 * probability at most 1%.
 */
#define DNS_RRL_MAX_PREFIX 64
typedef union dns_rrl_key dns_rrl_key_t;
struct dns__rrl_key {
	uint32_t	ip[DNS_RRL_MAX_PREFIX / 32];
	uint32_t	qname_hash;
	dns_rdatatype_t qtype;
	uint8_t		qclass;
	unsigned int	rtype : 4; /* dns_rrl_rtype_t */
	unsigned int	ipv6  : 1;
};
union dns_rrl_key {
	struct dns__rrl_key s;
	uint16_t	    w[sizeof(struct dns__rrl_key) / sizeof(uint16_t)];
};

/*
 * A rate-limit entry.
 * This should be small to limit the total size of the table of entries.
 */
typedef struct dns_rrl_entry dns_rrl_entry_t;
typedef ISC_LIST(dns_rrl_entry_t) dns_rrl_bin_t;
struct dns_rrl_entry {
	ISC_LINK(dns_rrl_entry_t) lru;
	ISC_LINK(dns_rrl_entry_t) hlink;
	dns_rrl_key_t key;
#define DNS_RRL_RESPONSE_BITS 24
	signed int responses : DNS_RRL_RESPONSE_BITS;
#define DNS_RRL_QNAMES_BITS 8
	unsigned int log_qname : DNS_RRL_QNAMES_BITS;

#define DNS_RRL_TS_GEN_BITS 2
	unsigned int ts_gen : DNS_RRL_TS_GEN_BITS;
	unsigned int ts_valid : 1;
#define DNS_RRL_HASH_GEN_BITS 1
	unsigned int hash_gen : DNS_RRL_HASH_GEN_BITS;
	unsigned int logged : 1;
#define DNS_RRL_LOG_BITS 11
	unsigned int log_secs : DNS_RRL_LOG_BITS;

#define DNS_RRL_TS_BITS 12
	unsigned int ts : DNS_RRL_TS_BITS;

#define DNS_RRL_MAX_SLIP 10
	unsigned int slip_cnt : 4;
};

#define DNS_RRL_MAX_TIME_TRAVEL 5
#define DNS_RRL_FOREVER		(1 << DNS_RRL_TS_BITS)
#define DNS_RRL_MAX_TS		(DNS_RRL_FOREVER - 1)

#define DNS_RRL_MAX_RESPONSES ((1 << (DNS_RRL_RESPONSE_BITS - 1)) - 1)
#define DNS_RRL_MAX_WINDOW    3600
#if DNS_RRL_MAX_WINDOW >= DNS_RRL_MAX_TS
#error "DNS_RRL_MAX_WINDOW is too large"
#endif /* if DNS_RRL_MAX_WINDOW >= DNS_RRL_MAX_TS */
#define DNS_RRL_MAX_RATE 1000
#if DNS_RRL_MAX_RATE >= (DNS_RRL_MAX_RESPONSES / DNS_RRL_MAX_WINDOW)
#error "DNS_RRL_MAX_rate is too large"
#endif /* if DNS_RRL_MAX_RATE >= (DNS_RRL_MAX_RESPONSES / DNS_RRL_MAX_WINDOW) \
	*/

#if (1 << DNS_RRL_LOG_BITS) >= DNS_RRL_FOREVER
#error DNS_RRL_LOG_BITS is too big
#endif /* if (1 << DNS_RRL_LOG_BITS) >= DNS_RRL_FOREVER */
#define DNS_RRL_MAX_LOG_SECS 1800
#if DNS_RRL_MAX_LOG_SECS >= (1 << DNS_RRL_LOG_BITS)
#error "DNS_RRL_MAX_LOG_SECS is too large"
#endif /* if DNS_RRL_MAX_LOG_SECS >= (1 << DNS_RRL_LOG_BITS) */
#define DNS_RRL_STOP_LOG_SECS 60
#if DNS_RRL_STOP_LOG_SECS >= (1 << DNS_RRL_LOG_BITS)
#error "DNS_RRL_STOP_LOG_SECS is too large"
#endif /* if DNS_RRL_STOP_LOG_SECS >= (1 << DNS_RRL_LOG_BITS) */

/*
 * A hash table of rate-limit entries.
 */
struct dns_rrl_hash {
	isc_stdtime_t check_time;
	unsigned int  gen : DNS_RRL_HASH_GEN_BITS;
	int	      length;
	dns_rrl_bin_t bins[1];
};

/*
 * A block of rate-limit entries.
 */
typedef struct dns_rrl_block dns_rrl_block_t;
struct dns_rrl_block {
	ISC_LINK(dns_rrl_block_t) link;
	int		size;
	dns_rrl_entry_t entries[1];
};

/*
 * A rate limited qname buffer.
 */
typedef struct dns_rrl_qname_buf dns_rrl_qname_buf_t;
struct dns_rrl_qname_buf {
	ISC_LINK(dns_rrl_qname_buf_t) link;
	const dns_rrl_entry_t *e;
	unsigned int	       index;
	dns_fixedname_t	       qname;
};

typedef struct dns_rrl_rate dns_rrl_rate_t;
struct dns_rrl_rate {
	int	    r;
	int	    scaled;
	const char *str;
};

/*
 * Per-view query rate limit parameters and a pointer to database.
 */
typedef struct dns_rrl dns_rrl_t;
struct dns_rrl {
	isc_mutex_t lock;
	isc_mem_t  *mctx;

	bool	       log_only;
	dns_rrl_rate_t responses_per_second;
	dns_rrl_rate_t referrals_per_second;
	dns_rrl_rate_t nodata_per_second;
	dns_rrl_rate_t nxdomains_per_second;
	dns_rrl_rate_t errors_per_second;
	dns_rrl_rate_t all_per_second;
	dns_rrl_rate_t slip;
	int	       window;
	double	       qps_scale;
	int	       max_entries;

	dns_acl_t *exempt;

	int num_entries;

	int	      qps_responses;
	isc_stdtime_t qps_time;
	double	      qps;

	unsigned int probes;
	unsigned int searches;

	ISC_LIST(dns_rrl_block_t) blocks;
	ISC_LIST(dns_rrl_entry_t) lru;

	dns_rrl_hash_t *hash;
	dns_rrl_hash_t *old_hash;
	unsigned int	hash_gen;

	unsigned int ts_gen;
#define DNS_RRL_TS_BASES (1 << DNS_RRL_TS_GEN_BITS)
	isc_stdtime_t ts_bases[DNS_RRL_TS_BASES];

	int	 ipv4_prefixlen;
	uint32_t ipv4_mask;
	int	 ipv6_prefixlen;
	uint32_t ipv6_mask[4];

	isc_stdtime_t	 log_stops_time;
	dns_rrl_entry_t *last_logged;
	int		 num_logged;
	int		 num_qnames;
	ISC_LIST(dns_rrl_qname_buf_t) qname_free;
#define DNS_RRL_QNAMES (1 << DNS_RRL_QNAMES_BITS)
	dns_rrl_qname_buf_t *qnames[DNS_RRL_QNAMES];
};

typedef enum {
	DNS_RRL_RESULT_OK,
	DNS_RRL_RESULT_DROP,
	DNS_RRL_RESULT_SLIP,
} dns_rrl_result_t;

dns_rrl_result_t
dns_rrl(dns_view_t *view, const isc_sockaddr_t *client_addr, bool is_tcp,
	dns_rdataclass_t rdclass, dns_rdatatype_t qtype,
	const dns_name_t *qname, isc_result_t resp_result, isc_stdtime_t now,
	bool wouldlog, char *log_buf, unsigned int log_buf_len);

void
dns_rrl_view_destroy(dns_view_t *view);

isc_result_t
dns_rrl_init(dns_rrl_t **rrlp, dns_view_t *view, int min_entries);

ISC_LANG_ENDDECLS

#endif /* DNS_RRL_H */

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
13 Aug 2026 11.36 AM
root / root
0755
acl.h
6.325 KB
5 Nov 2021 9.03 AM
root / root
0644
adb.h
21.745 KB
5 Nov 2021 9.03 AM
root / root
0644
badcache.h
3.308 KB
5 Nov 2021 9.03 AM
root / root
0644
bit.h
0.779 KB
5 Nov 2021 9.03 AM
root / root
0644
byaddr.h
3.514 KB
5 Nov 2021 9.03 AM
root / root
0644
cache.h
8.525 KB
13 Aug 2026 11.31 AM
root / root
0644
callbacks.h
2.227 KB
5 Nov 2021 9.03 AM
root / root
0644
catz.h
11.603 KB
5 Nov 2021 9.03 AM
root / root
0644
cert.h
1.431 KB
5 Nov 2021 9.03 AM
root / root
0644
client.h
14.187 KB
5 Nov 2021 9.03 AM
root / root
0644
clientinfo.h
1.968 KB
5 Nov 2021 9.03 AM
root / root
0644
compress.h
6.882 KB
5 Nov 2021 9.03 AM
root / root
0644
db.h
49.264 KB
13 Aug 2026 11.31 AM
root / root
0644
dbiterator.h
7.212 KB
5 Nov 2021 9.03 AM
root / root
0644
dbtable.h
3.093 KB
5 Nov 2021 9.03 AM
root / root
0644
diff.h
6.874 KB
5 Nov 2021 9.03 AM
root / root
0644
dispatch.h
15.174 KB
5 Nov 2021 9.03 AM
root / root
0644
dlz.h
10.621 KB
5 Nov 2021 9.03 AM
root / root
0644
dlz_dlopen.h
4.291 KB
5 Nov 2021 9.03 AM
root / root
0644
dns64.h
5.586 KB
5 Nov 2021 9.03 AM
root / root
0644
dnsrps.h
2.512 KB
5 Nov 2021 9.03 AM
root / root
0644
dnssec.h
12.54 KB
13 Aug 2026 11.31 AM
root / root
0644
dnstap.h
9.954 KB
5 Nov 2021 9.03 AM
root / root
0644
ds.h
1.626 KB
5 Nov 2021 9.03 AM
root / root
0644
dsdigest.h
1.673 KB
5 Nov 2021 9.03 AM
root / root
0644
dyndb.h
4.755 KB
5 Nov 2021 9.03 AM
root / root
0644
ecdb.h
0.787 KB
5 Nov 2021 9.03 AM
root / root
0644
ecs.h
1.221 KB
5 Nov 2021 9.03 AM
root / root
0644
edns.h
0.765 KB
5 Nov 2021 9.03 AM
root / root
0644
enumclass.h
1.191 KB
13 Aug 2026 11.32 AM
root / root
0644
enumtype.h
8.286 KB
13 Aug 2026 11.32 AM
root / root
0644
events.h
4.347 KB
5 Nov 2021 9.03 AM
root / root
0644
fixedname.h
1.613 KB
5 Nov 2021 9.03 AM
root / root
0644
forward.h
2.988 KB
5 Nov 2021 9.03 AM
root / root
0644
geoip.h
2.285 KB
5 Nov 2021 9.03 AM
root / root
0644
ipkeylist.h
2.167 KB
5 Nov 2021 9.03 AM
root / root
0644
iptable.h
1.485 KB
5 Nov 2021 9.03 AM
root / root
0644
journal.h
9.484 KB
5 Nov 2021 9.03 AM
root / root
0644
kasp.h
11.84 KB
5 Nov 2021 9.03 AM
root / root
0644
keydata.h
1.022 KB
5 Nov 2021 9.03 AM
root / root
0644
keyflags.h
1.247 KB
5 Nov 2021 9.03 AM
root / root
0644
keymgr.h
4.011 KB
5 Nov 2021 9.03 AM
root / root
0644
keytable.h
7.687 KB
5 Nov 2021 9.03 AM
root / root
0644
keyvalues.h
3.987 KB
5 Nov 2021 9.03 AM
root / root
0644
lib.h
0.97 KB
5 Nov 2021 9.03 AM
root / root
0644
librpz.h
30.665 KB
5 Nov 2021 9.03 AM
root / root
0644
lmdb.h
0.761 KB
5 Nov 2021 9.03 AM
root / root
0644
log.h
3.935 KB
5 Nov 2021 9.03 AM
root / root
0644
lookup.h
2.853 KB
5 Nov 2021 9.03 AM
root / root
0644
master.h
8.58 KB
5 Nov 2021 9.03 AM
root / root
0644
masterdump.h
9.896 KB
5 Nov 2021 9.03 AM
root / root
0644
message.h
38.64 KB
13 Aug 2026 11.31 AM
root / root
0644
name.h
36.896 KB
13 Aug 2026 11.31 AM
root / root
0644
ncache.h
4.844 KB
5 Nov 2021 9.03 AM
root / root
0644
nsec.h
2.993 KB
5 Nov 2021 9.03 AM
root / root
0644
nsec3.h
8.064 KB
5 Nov 2021 9.03 AM
root / root
0644
nta.h
4.732 KB
5 Nov 2021 9.03 AM
root / root
0644
opcode.h
0.982 KB
5 Nov 2021 9.03 AM
root / root
0644
order.h
1.963 KB
5 Nov 2021 9.03 AM
root / root
0644
peer.h
6.323 KB
5 Nov 2021 9.03 AM
root / root
0644
portlist.h
2.052 KB
5 Nov 2021 9.03 AM
root / root
0644
private.h
1.916 KB
5 Nov 2021 9.03 AM
root / root
0644
rbt.h
36.605 KB
13 Aug 2026 11.31 AM
root / root
0644
rcode.h
2.414 KB
5 Nov 2021 9.03 AM
root / root
0644
rdata.h
22.035 KB
5 Nov 2021 9.03 AM
root / root
0644
rdataclass.h
2.195 KB
5 Nov 2021 9.03 AM
root / root
0644
rdatalist.h
2.497 KB
5 Nov 2021 9.03 AM
root / root
0644
rdataset.h
18.275 KB
13 Aug 2026 11.31 AM
root / root
0644
rdatasetiter.h
3.82 KB
5 Nov 2021 9.03 AM
root / root
0644
rdataslab.h
4.167 KB
13 Aug 2026 11.31 AM
root / root
0644
rdatastruct.h
61.233 KB
13 Aug 2026 11.32 AM
root / root
0644
rdatatype.h
2.236 KB
5 Nov 2021 9.03 AM
root / root
0644
request.h
8.972 KB
5 Nov 2021 9.03 AM
root / root
0644
resolver.h
19.68 KB
5 Nov 2021 9.03 AM
root / root
0644
result.h
8.98 KB
5 Nov 2021 9.03 AM
root / root
0644
rootns.h
0.87 KB
5 Nov 2021 9.03 AM
root / root
0644
rpz.h
11.871 KB
5 Nov 2021 9.03 AM
root / root
0644
rriterator.h
4.115 KB
5 Nov 2021 9.03 AM
root / root
0644
rrl.h
6.796 KB
5 Nov 2021 9.03 AM
root / root
0644
sdb.h
7.178 KB
5 Nov 2021 9.03 AM
root / root
0644
sdlz.h
13.76 KB
5 Nov 2021 9.03 AM
root / root
0644
secalg.h
1.665 KB
5 Nov 2021 9.03 AM
root / root
0644
secproto.h
1.52 KB
5 Nov 2021 9.03 AM
root / root
0644
soa.h
2.128 KB
5 Nov 2021 9.03 AM
root / root
0644
ssu.h
7.014 KB
5 Nov 2021 9.03 AM
root / root
0644
stats.h
24.11 KB
5 Nov 2021 9.03 AM
root / root
0644
tcpmsg.h
3.055 KB
5 Nov 2021 9.03 AM
root / root
0644
time.h
1.653 KB
5 Nov 2021 9.03 AM
root / root
0644
timer.h
1.025 KB
5 Nov 2021 9.03 AM
root / root
0644
tkey.h
7.476 KB
5 Nov 2021 9.03 AM
root / root
0644
tsec.h
2.877 KB
5 Nov 2021 9.03 AM
root / root
0644
tsig.h
8.298 KB
5 Nov 2021 9.03 AM
root / root
0644
ttl.h
1.832 KB
5 Nov 2021 9.03 AM
root / root
0644
types.h
14.242 KB
13 Aug 2026 11.31 AM
root / root
0644
update.h
1.957 KB
5 Nov 2021 9.03 AM
root / root
0644
validator.h
6.522 KB
13 Aug 2026 11.31 AM
root / root
0644
version.h
0.663 KB
5 Nov 2021 9.03 AM
root / root
0644
view.h
34.513 KB
13 Aug 2026 11.31 AM
root / root
0644
xfrin.h
2.26 KB
5 Nov 2021 9.03 AM
root / root
0644
zone.h
64.007 KB
13 Aug 2026 11.31 AM
root / root
0644
zonekey.h
0.758 KB
5 Nov 2021 9.03 AM
root / root
0644
zoneverify.h
1.36 KB
5 Nov 2021 9.03 AM
root / root
0644
zt.h
5.118 KB
13 Aug 2026 11.31 AM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF