projects
/
project
/
rpcd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
file: add myself in Copyright header
[project/rpcd.git]
/
main.c
diff --git
a/main.c
b/main.c
index 9bebd3e4fe18768b543a2bbf291c959ff4a96576..7c161b5e5a5347820c5d4d744effcf1cae9d4906 100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-2,7
+2,7
@@
* rpcd - UBUS RPC server
*
* Copyright (C) 2013 Felix Fietkau <nbd@openwrt.org>
* rpcd - UBUS RPC server
*
* Copyright (C) 2013 Felix Fietkau <nbd@openwrt.org>
- * Copyright (C) 2013 Jo-Philipp Wich <jow@openwrt.org>
+ * Copyright (C) 2013
-2014
Jo-Philipp Wich <jow@openwrt.org>
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@
-22,6
+22,7
@@
#include <libubox/blobmsg_json.h>
#include <libubus.h>
#include <signal.h>
#include <libubox/blobmsg_json.h>
#include <libubus.h>
#include <signal.h>
+#include <sys/stat.h>
#include <rpcd/session.h>
#include <rpcd/uci.h>
#include <rpcd/session.h>
#include <rpcd/uci.h>
@@
-52,11
+53,14
@@
exec_self(int argc, char **argv)
for (i = 0; i < argc; i++)
args[i] = argv[i];
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)
{
execv(cmd, (char * const *)args);
}
int main(int argc, char **argv)
{
+ struct stat s;
+ const char *hangup;
const char *ubus_socket = NULL;
int ch;
const char *ubus_socket = NULL;
int ch;
@@
-70,6
+74,11
@@
int main(int argc, char **argv)
}
}
}
}
+ if (stat(RPC_UCI_DIR_PREFIX, &s))
+ mkdir(RPC_UCI_DIR_PREFIX, 0700);
+
+ umask(0077);
+
signal(SIGPIPE, SIG_IGN);
signal(SIGHUP, handle_signal);
signal(SIGUSR1, handle_signal);
signal(SIGPIPE, SIG_IGN);
signal(SIGHUP, handle_signal);
signal(SIGUSR1, handle_signal);
@@
-88,7
+97,12
@@
int main(int argc, char **argv)
rpc_uci_api_init(ctx);
rpc_plugin_api_init(ctx);
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);
uloop_run();
ubus_free(ctx);