ADAPT / src / active_attack.c
active_attack.c
Raw
#define _XOPEN_SOURCE 600
#include "active_attack.h"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void active_attack_init(struct active_attack *a_a, struct attack_pattern *a_p, char *target)
{
    a_a->attack = a_p;
    a_a->target = strdup(target); //maybe we want to strdup this?
    a_a->cur_step = 0;
    a_a->cur_step_state = AAS_WAIT;
    a_a->cur_res = false;
}

void active_attack_cleanup(struct active_attack *a_a)
{
    free(a_a->target);
}


void active_attack_next_step(struct active_attack *a_a)
{
	a_a->cur_step++;
	a_a->cur_step_state = AAS_WAIT;
	a_a->cur_res = false;
}

bool active_attack_done(struct active_attack *a_a)
{
    //if a step is not done, we're not done
    if(a_a->cur_step_state != AAS_DONE)
    {
	return false;
    }
    
    if(!a_a->cur_res)
    {
	// if a step failed, we're done
	return true;
    }
    else if(a_a->cur_step >= a_a->attack->num_steps -1)
    {
	//we just finnished the last step so we're done
	return true;
    }
    
    return false;
    
}


void past_attack_init(struct past_attack *p_a, char *a_p, char *target)
{
    p_a->a_p = strdup(a_p);
    p_a->target = strdup(target);
}


void past_attack_cleanup(struct past_attack *p_a)
{
    free(p_a->a_p);
    free(p_a->target);
}