X-Git-Url: http://git.archive.openwrt.org/?p=project%2Frpcd.git;a=blobdiff_plain;f=main.c;h=5a608c270958aba77d758c322c9bc2227d967f34;hp=9bebd3e4fe18768b543a2bbf291c959ff4a96576;hb=b4649c9fdaa1553cf32fc429eaec99f6ce0fd24a;hpb=fc1b008e081429101d5d3bb878ddb417c0d2be12 diff --git a/main.c b/main.c index 9bebd3e..5a608c2 100644 --- a/main.c +++ b/main.c @@ -52,11 +52,13 @@ exec_self(int argc, char **argv) for (i = 0; i < argc; i++) args[i] = argv[i]; + setenv("RPC_HANGUP", "1", 1); execv(cmd, (char * const *)args); } int main(int argc, char **argv) { + const char *hangup; const char *ubus_socket = NULL; int ch; @@ -88,7 +90,12 @@ int main(int argc, char **argv) rpc_uci_api_init(ctx); rpc_plugin_api_init(ctx); - rpc_session_thaw(); + hangup = getenv("RPC_HANGUP"); + + if (!hangup || strcmp(hangup, "1")) + rpc_uci_purge_savedirs(); + else + rpc_session_thaw(); uloop_run(); ubus_free(ctx);