char *buf = realloc(NULL, len + buf_len + 2);
memcpy(buf, name, buf_len);
buf[buf_len++] = '=';
- int l = 1;
- while (l > 0 && fqdn < fqdn_end) {
- l = dn_expand(fqdn, fqdn_end, fqdn, &buf[buf_len], buf_size - buf_len);
+ while (fqdn < fqdn_end) {
+ int l = dn_expand(fqdn, fqdn_end, fqdn, &buf[buf_len], buf_size - buf_len);
+ if (l <= 0)
+ break;
fqdn += l;
buf_len += strlen(&buf[buf_len]);
buf[buf_len++] = ' ';
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();