mirror of
https://github.com/samba-team/samba.git
synced 2025-08-03 04:22:09 +03:00
s3/libsmb: check the negative-conn-cache in resolve_ads()
This way we throw away blacklisted servers right away when learning about them from the DNS SRV query. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14981 Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Guenther Deschner <gd@samba.org> Autobuild-User(master): Günther Deschner <gd@samba.org> Autobuild-Date(master): Wed Jul 30 10:10:21 UTC 2025 on atb-devel-224
This commit is contained in:
committed by
Günther Deschner
parent
5217bd1a23
commit
c1ee6fe9a4
@ -2617,6 +2617,14 @@ static NTSTATUS resolve_ads(TALLOC_CTX *ctx,
|
|||||||
for(i = 0; i < numdcs; i++) {
|
for(i = 0; i < numdcs; i++) {
|
||||||
/* Copy all the IP addresses from the SRV response */
|
/* Copy all the IP addresses from the SRV response */
|
||||||
size_t j;
|
size_t j;
|
||||||
|
|
||||||
|
status = check_negative_conn_cache(name, dcs[i].hostname);
|
||||||
|
if (!NT_STATUS_IS_OK(status)) {
|
||||||
|
DBG_DEBUG("Skipping blacklisted server [%s] "
|
||||||
|
"for domain [%s]", dcs[i].hostname, name);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
for (j = 0; j < dcs[i].num_ips; j++) {
|
for (j = 0; j < dcs[i].num_ips; j++) {
|
||||||
char addr[INET6_ADDRSTRLEN];
|
char addr[INET6_ADDRSTRLEN];
|
||||||
|
|
||||||
@ -2625,12 +2633,19 @@ static NTSTATUS resolve_ads(TALLOC_CTX *ctx,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print_sockaddr(addr,
|
||||||
|
sizeof(addr),
|
||||||
|
&srv_addrs[num_srv_addrs]);
|
||||||
|
|
||||||
DBG_DEBUG("SRV lookup %s got IP[%zu] %s\n",
|
DBG_DEBUG("SRV lookup %s got IP[%zu] %s\n",
|
||||||
name,
|
name, j, addr);
|
||||||
j,
|
|
||||||
print_sockaddr(addr,
|
status = check_negative_conn_cache(name, addr);
|
||||||
sizeof(addr),
|
if (!NT_STATUS_IS_OK(status)) {
|
||||||
&srv_addrs[num_srv_addrs]));
|
DBG_DEBUG("Skipping blacklisted server [%s] "
|
||||||
|
"for domain [%s]", addr, name);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
num_srv_addrs++;
|
num_srv_addrs++;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user