X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=nat46%2Fsrc%2F464xlatcfg.c;h=1d9466ed98681bcdb4cdc6d5f07eeb157ff273ba;hb=b508f93679d5e05e5d0940439afbf7acbf53ee03;hp=dfce9d720d29e9a358db404afd782dbce8b20963;hpb=3ed7001954e187b62b7240409e5f56459c83949b;p=lede-routing%2F.git diff --git a/nat46/src/464xlatcfg.c b/nat46/src/464xlatcfg.c index dfce9d7..1d9466e 100644 --- a/nat46/src/464xlatcfg.c +++ b/nat46/src/464xlatcfg.c @@ -23,6 +23,10 @@ #include #include +static void sighandler(__attribute__((unused)) int signal) +{ +} + int main(int argc, const char *argv[]) { char buf[INET6_ADDRSTRLEN], prefix[INET6_ADDRSTRLEN + 4]; @@ -48,6 +52,8 @@ int main(int argc, const char *argv[]) if (!argv[3] || !argv[4] || !(fp = fopen(buf, "wx"))) return 1; + signal(SIGTERM, sighandler); + prefix[sizeof(prefix) - 1] = 0; strncpy(prefix, argv[3], sizeof(prefix) - 1); @@ -108,6 +114,12 @@ int main(int argc, const char *argv[]) chdir("/"); setsid(); pause(); + + nat46 = fopen("/proc/net/nat46/control", "w"); + if (nat46) { + fprintf(nat46, "del %s\n", argv[1]); + fclose(nat46); + } } else { fprintf(fp, "%d\n", pid); }