- env = xmalloc(sizeof(environment) + 1 * sizeof(char*));
- memcpy(&(env[1]), environment, sizeof(environment));
- asprintf(&(env[0]), "IFNAME=%s", interface_name);
- execle(scriptname, NULL, env);
+ asprintf(&scriptname, "%s/%s", confbase, name);
+ asprintf(&s, "IFNAME=%s", interface_name);
+ putenv(s);
+ free(s);
+
+ if(netname)
+ {
+ asprintf(&s, "NETNAME=%s", netname);
+ putenv(s);
+ free(s);
+ }
+ else
+ {
+ unsetenv("NETNAME");
+ }
+
+ if(chdir(confbase) < 0)
+ {
+ syslog(LOG_ERR, _("Couldn't chdir to `%s': %m"),
+ confbase);
+ }
+
+ execl(scriptname, NULL);