aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorChia-chi Yeh <chiachi@android.com>2009-07-13 16:43:29 +0800
committerChia-chi Yeh <chiachi@android.com>2009-07-13 18:46:35 +0800
commit7197eb77ef21feeedc5a47de31ded3a19c2af021 (patch)
tree8b2e589546b8ff90369168d2b9e20521502479e4 /main.c
parent8af8eaa380e1775ad04bc3250648fe44c57beb83 (diff)
downloadipsec-tools-7197eb77ef21feeedc5a47de31ded3a19c2af021.tar.gz
ipsec-tools: Find local address automatically.
Diffstat (limited to 'main.c')
-rw-r--r--main.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/main.c b/main.c
index 035cec2..2027927 100644
--- a/main.c
+++ b/main.c
@@ -52,10 +52,10 @@
#include "privsep.h"
#include "misc.h"
-extern int setup(int argc, char **argv);
+extern void setup(int argc, char **argv);
int f_local = 0;
-static void interrupt(int signal)
+static void terminate(int signal)
{
exit(1);
}
@@ -118,29 +118,28 @@ int main(int argc, char **argv)
int fdset_size;
struct myaddrs *p;
#ifdef ANDROID_CHANGES
- unsigned char code;
int control = get_control_and_arguments(&argc, &argv);
+ unsigned char code = argc - 1;
#endif
do_plog(LLV_INFO, "ipsec-tools 0.7.2 (http://ipsec-tools.sf.net)\n");
- signal(SIGHUP, interrupt);
- signal(SIGINT, interrupt);
- signal(SIGTERM, interrupt);
- signal(SIGCHLD, interrupt);
+ signal(SIGHUP, terminate);
+ signal(SIGINT, terminate);
+ signal(SIGTERM, terminate);
signal(SIGPIPE, SIG_IGN);
eay_init();
oakley_dhinit();
compute_vendorids();
sched_init();
+ setup(argc, argv);
- if (setup(argc, argv) < 0 || pfkey_init() < 0 || isakmp_init() < 0) {
+ if (pfkey_init() < 0 || isakmp_init() < 0) {
exit(1);
}
#ifdef ANDROID_CHANGES
- code = argc - 1;
send(control, &code, 1, 0);
setuid(AID_VPN);
#endif