- asprintf(&envp[0], "NETNAME=%s", netname ? : "");
- asprintf(&envp[1], "DEVICE=%s", device ? : "");
- asprintf(&envp[2], "INTERFACE=%s", iface ? : "");
- asprintf(&envp[3], "NODE=%s", n->name);
- sockaddr2str(&n->address, &address, &port);
- asprintf(&envp[4], "REMOTEADDRESS=%s", address);
- asprintf(&envp[5], "REMOTEPORT=%s", port);
- envp[6] = NULL;
-
- asprintf(&name,
- n->status.reachable ? "hosts/%s-up" : "hosts/%s-down",
- n->name);
- execute_script(name, envp);
-
- free(name);
- free(address);
- free(port);
-
- for(i = 0; i < 7; i++)
- free(envp[i]);
+ if(mesh->threadstarted) {
+ timeout_set(&mesh->loop, &mesh->periodictimer, &(struct timespec) {
+ 0, prng(mesh, TIMER_FUDGE)
+ });
+ }