X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvlib%2Funix%2Fmain.c;h=e40a462578e1976c865d4a279aafa4924af4cdd5;hb=8dc954a4e7931c07051ce22f8446d6e5dfb9ce7d;hp=42c3064bc325245f88d5ad027ab241c73f271d32;hpb=d991a798ff5eb6d151b6641e61fefc6315bab0ac;p=vpp.git diff --git a/src/vlib/unix/main.c b/src/vlib/unix/main.c index 42c3064bc32..e40a462578e 100755 --- a/src/vlib/unix/main.c +++ b/src/vlib/unix/main.c @@ -91,7 +91,7 @@ unsetup_signal_handlers (int sig) /* allocate this buffer from mheap when setting up the signal handler. dangerous to vec_resize it when crashing, mheap itself might have been - corruptted already */ + corrupted already */ static u8 *syslog_msg = 0; static int last_signum = 0; static uword last_faulting_address = 0; @@ -177,10 +177,14 @@ unix_signal_handler (int signum, siginfo_t * si, ucontext_t * uc) syslog (LOG_ERR | LOG_DAEMON, "%s", syslog_msg); } - /* have to remove SIGABRT to avoid recusive - os_exit calling abort() */ + /* have to remove SIGABRT to avoid recursive - os_exit calling abort() */ unsetup_signal_handlers (SIGABRT); - os_exit (1); + /* os_exit(1) causes core generation, do not do this for SIGINT */ + if (signum == SIGINT) + os_exit (0); + else + os_exit (1); } else clib_warning ("%s", syslog_msg); @@ -372,6 +376,7 @@ VLIB_REGISTER_NODE (startup_config_node,static) = { .function = startup_config_process, .type = VLIB_NODE_TYPE_PROCESS, .name = "startup-config-process", + .process_log2_n_stack_bytes = 18, }; /* *INDENT-ON* */ @@ -680,6 +685,8 @@ vlib_unix_main (int argc, char *argv[]) (((uword) vm->heap_base) & ~(VLIB_FRAME_ALIGN - 1)); ASSERT (vm->heap_base); + clib_time_init (&vm->clib_time); + unformat_init_command_line (&input, (char **) vm->argv); if ((e = vlib_plugin_config (vm, &input))) {