Merge pull request #230 from Diadlo/maxfail

Maxfail
This commit is contained in:
van Hauser 2017-06-12 11:51:11 +02:00 committed by GitHub
commit b98789d32e

25
hydra.c
View file

@ -1562,26 +1562,23 @@ void hydra_kill_head(int head_no, int killit, int fail) {
}
void hydra_increase_fail_count(int target_no, int head_no) {
int i, k;
int i, k, ok, maxfail = 0;
if (target_no < 0)
return;
if (hydra_targets[target_no]->ok) {
const int tasks = hydra_options.tasks;
const int success = tasks - hydra_targets[target_no]->failed;
const int t = tasks < 5 ? 6 - tasks : 1;
const int s = success < 5 ? 6 - success : 1;
maxfail = MAXFAIL + t + s + 2;
}
hydra_targets[target_no]->fail_count++;
if (debug)
printf("[DEBUG] hydra_increase_fail_count: %d >= %d => disable\n", hydra_targets[target_no]->fail_count,
MAXFAIL + (hydra_options.tasks <= 4 && hydra_targets[target_no]->ok ? 6 - hydra_options.tasks : 1) + (hydra_options.tasks - hydra_targets[target_no]->failed < 5
&& hydra_targets[target_no]->ok ? 6 - (hydra_options.tasks -
hydra_targets
[target_no]->failed) : 1)
+ (hydra_targets[target_no]->ok ? 2 : -2));
if (hydra_targets[target_no]->fail_count >=
MAXFAIL + (hydra_options.tasks <= 4 && hydra_targets[target_no]->ok ? 6 - hydra_options.tasks : 1) + (hydra_options.tasks - hydra_targets[target_no]->failed < 5
&& hydra_targets[target_no]->ok ? 6 - (hydra_options.tasks -
hydra_targets
[target_no]->failed) : 1) +
(hydra_targets[target_no]->ok ? 2 : -2)
) {
printf("[DEBUG] hydra_increase_fail_count: %d >= %d => disable\n", hydra_targets[target_no]->fail_count, maxfail);
if (hydra_targets[target_no]->fail_count >= maxfail) {
k = 0;
for (i = 0; i < hydra_options.max_use; i++)
if (hydra_heads[i]->active >= 0 && hydra_heads[i]->target_no == target_no)