recheck domain before adding to autohostlist

This commit is contained in:
bol-van 2023-10-26 16:27:52 +03:00
parent d0ce7846c4
commit 7ef7cbe554
24 changed files with 36 additions and 16 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -225,16 +225,25 @@ static void auto_hostlist_failed(const char *hostname)
{ {
DLOG("auto hostlist : fail threshold reached. adding %s to auto hostlist\n", hostname); DLOG("auto hostlist : fail threshold reached. adding %s to auto hostlist\n", hostname);
HostFailPoolDel(&params.hostlist_auto_fail_counters, fail_counter); HostFailPoolDel(&params.hostlist_auto_fail_counters, fail_counter);
if (!StrPoolAddStr(&params.hostlist, hostname))
DLOG("auto hostlist : rechecking %s to avoid duplicates\n", hostname);
bool bExcluded=false;
if (!HostlistCheck(params.hostlist, params.hostlist_exclude, hostname, &bExcluded) && !bExcluded)
{ {
fprintf(stderr, "StrPoolAddStr out of memory\n"); DLOG("auto hostlist : adding %s\n", hostname);
return; if (!StrPoolAddStr(&params.hostlist, hostname))
} {
if (!append_to_list_file(params.hostlist_auto_filename, hostname)) fprintf(stderr, "StrPoolAddStr out of memory\n");
{ return;
perror("write to auto hostlist:"); }
return; if (!append_to_list_file(params.hostlist_auto_filename, hostname))
{
perror("write to auto hostlist:");
return;
}
} }
else
DLOG("auto hostlist : NOT adding %s\n", hostname);
} }
} }

View File

@ -76,6 +76,7 @@ hostfail_pool * HostFailPoolAdd(hostfail_pool **pp,const char *s,int fail_time)
size_t slen = strlen(s); size_t slen = strlen(s);
ADD_STR_POOL(hostfail_pool, pp, s, slen) ADD_STR_POOL(hostfail_pool, pp, s, slen)
elem->expire = time(NULL) + fail_time; elem->expire = time(NULL) + fail_time;
elem->counter = 0;
return elem; return elem;
} }
hostfail_pool *HostFailPoolFind(hostfail_pool *p,const char *s) hostfail_pool *HostFailPoolFind(hostfail_pool *p,const char *s)

View File

@ -76,6 +76,7 @@ hostfail_pool * HostFailPoolAdd(hostfail_pool **pp,const char *s,int fail_time)
size_t slen = strlen(s); size_t slen = strlen(s);
ADD_STR_POOL(hostfail_pool, pp, s, slen) ADD_STR_POOL(hostfail_pool, pp, s, slen)
elem->expire = time(NULL) + fail_time; elem->expire = time(NULL) + fail_time;
elem->counter = 0;
return elem; return elem;
} }
hostfail_pool *HostFailPoolFind(hostfail_pool *p,const char *s) hostfail_pool *HostFailPoolFind(hostfail_pool *p,const char *s)

View File

@ -303,16 +303,25 @@ static void auto_hostlist_failed(const char *hostname)
{ {
VPRINT("auto hostlist : fail threshold reached. adding %s to auto hostlist", hostname); VPRINT("auto hostlist : fail threshold reached. adding %s to auto hostlist", hostname);
HostFailPoolDel(&params.hostlist_auto_fail_counters, fail_counter); HostFailPoolDel(&params.hostlist_auto_fail_counters, fail_counter);
if (!StrPoolAddStr(&params.hostlist, hostname))
VPRINT("auto hostlist : rechecking %s to avoid duplicates", hostname);
bool bExcluded=false;
if (!HostlistCheck(params.hostlist, params.hostlist_exclude, hostname, &bExcluded) && !bExcluded)
{ {
fprintf(stderr, "StrPoolAddStr out of memory\n"); VPRINT("auto hostlist : adding %s", hostname);
return; if (!StrPoolAddStr(&params.hostlist, hostname))
} {
if (!append_to_list_file(params.hostlist_auto_filename, hostname)) fprintf(stderr, "StrPoolAddStr out of memory\n");
{ return;
perror("write to auto hostlist:"); }
return; if (!append_to_list_file(params.hostlist_auto_filename, hostname))
{
perror("write to auto hostlist:");
return;
}
} }
else
VPRINT("auto hostlist: NOT adding %s", hostname);
} }
} }