76 |
#include "misc.h" |
#include "misc.h" |
77 |
#include "options.h" |
#include "options.h" |
78 |
#include "sighndl.h" |
#include "sighndl.h" |
79 |
|
#include "engine.h" |
80 |
|
|
81 |
|
|
82 |
void |
void |
225 |
char env_dns[128]; |
char env_dns[128]; |
226 |
char env_domain[128]; |
char env_domain[128]; |
227 |
char env_mtu[128]; |
char env_mtu[128]; |
228 |
int pid; |
char *argv[]={ PARAM_IP_UP, NULL}; |
229 |
|
pid_t pid; |
230 |
struct stat st; |
struct stat st; |
231 |
|
|
232 |
snprintf (env_name, sizeof (env_name), "IFNAME=%s", if_name); |
snprintf (env_name, sizeof (env_name), "IFNAME=%s", if_name); |
247 |
log (LOG_WARNING, gettext ("Can't set environment variables: %s (%d)\n"), |
log (LOG_WARNING, gettext ("Can't set environment variables: %s (%d)\n"), |
248 |
strerror (errno), errno); |
strerror (errno), errno); |
249 |
|
|
250 |
/* execlp allows shell script execution */ |
if (execvp (PARAM_IP_UP, argv)) |
|
if (execlp (PARAM_IP_UP, PARAM_IP_UP, NULL)) |
|
251 |
log (LOG_WARNING, gettext ("Can't exec script %s: %s (%d)\n"), |
log (LOG_WARNING, gettext ("Can't exec script %s: %s (%d)\n"), |
252 |
PARAM_IP_UP, strerror (errno), errno); |
PARAM_IP_UP, strerror (errno), errno); |
253 |
exit (-1); |
exit (-1); |
254 |
} |
} |
255 |
else if (pid > 0) |
else if (pid > 0) |
256 |
{ |
{ |
257 |
|
engine_wait_pid(pid); |
258 |
return 1; |
return 1; |
259 |
} |
} |
260 |
else |
else |
272 |
char *if_name; |
char *if_name; |
273 |
{ |
{ |
274 |
char name[128]; |
char name[128]; |
275 |
int pid; |
pid_t pid; |
276 |
|
char *argv[]={ PARAM_IP_DOWN, NULL}; |
277 |
struct stat st; |
struct stat st; |
278 |
|
|
279 |
snprintf (name, sizeof (name), "IFNAME=%s", if_name); |
snprintf (name, sizeof (name), "IFNAME=%s", if_name); |
289 |
log (LOG_WARNING, gettext ("Can't set environment variables: %s (%d)\n"), |
log (LOG_WARNING, gettext ("Can't set environment variables: %s (%d)\n"), |
290 |
strerror (errno), errno); |
strerror (errno), errno); |
291 |
|
|
292 |
if (execlp (PARAM_IP_DOWN, PARAM_IP_DOWN, NULL)) |
if (execvp (PARAM_IP_DOWN, argv)) |
293 |
log (LOG_WARNING, gettext ("Can't exec script %s: %s (%d)\n"), |
log (LOG_WARNING, gettext ("Can't exec script %s: %s (%d)\n"), |
294 |
PARAM_IP_DOWN, strerror (errno), errno); |
PARAM_IP_DOWN, strerror (errno), errno); |
295 |
exit (-1); |
exit (-1); |
296 |
} |
} |
297 |
else if (pid > 0) |
else if (pid > 0) |
298 |
{ |
{ |
299 |
|
engine_wait_pid(pid); |
300 |
return 1; |
return 1; |
301 |
} |
} |
302 |
else |
else |