Actions launched as resume will be used in a next script_call
if the new action is not marked as resume even when the previous
script run was already terminated.
This behavior is particular visible when a RA is received as
the script will run with action bound and not ra-updated
resulting into a wan6 interface down/up transition
void script_call(const char *status, int delay, bool resume)
{
time_t now = odhcp6c_get_milli_time() / 1000;
+ bool running_script = false;
if (running) {
kill(running, SIGTERM);
delay -= now - started;
+ running_script = true;
}
- if (resume || !action[0])
+ if (resume || !running_script || !action[0])
strncpy(action, status, sizeof(action) - 1);
pid_t pid = fork();