Line data Source code
1 : /*
2 : * PIM for Quagga
3 : * Copyright (C) 2008 Everton da Silva Marques
4 : *
5 : * This program is free software; you can redistribute it and/or modify
6 : * it under the terms of the GNU General Public License as published by
7 : * the Free Software Foundation; either version 2 of the License, or
8 : * (at your option) any later version.
9 : *
10 : * This program is distributed in the hope that it will be useful, but
11 : * WITHOUT ANY WARRANTY; without even the implied warranty of
12 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 : * General Public License for more details.
14 : *
15 : * You should have received a copy of the GNU General Public License along
16 : * with this program; see the file COPYING; if not, write to the Free Software
17 : * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 : */
19 :
20 : #include <zebra.h>
21 :
22 : #include <signal.h>
23 :
24 : #include "sigevent.h"
25 : #include "memory.h"
26 : #include "log.h"
27 : #include "if.h"
28 :
29 : #include "pim_signals.h"
30 : #include "pimd.h"
31 :
32 : /*
33 : * Signal handlers
34 : */
35 :
36 0 : static void pim_sighup(void)
37 : {
38 0 : zlog_info("SIGHUP received, ignoring");
39 0 : }
40 :
41 0 : static void pim_sigint(void)
42 : {
43 0 : zlog_notice("Terminating on signal SIGINT");
44 0 : pim_terminate();
45 0 : exit(1);
46 : }
47 :
48 18 : static void pim_sigterm(void)
49 : {
50 18 : zlog_notice("Terminating on signal SIGTERM");
51 18 : pim_terminate();
52 18 : exit(1);
53 : }
54 :
55 0 : static void pim_sigusr1(void)
56 : {
57 0 : zlog_rotate();
58 0 : }
59 :
60 : struct frr_signal_t pimd_signals[] = {
61 : {
62 : .signal = SIGHUP,
63 : .handler = &pim_sighup,
64 : },
65 : {
66 : .signal = SIGUSR1,
67 : .handler = &pim_sigusr1,
68 : },
69 : {
70 : .signal = SIGINT,
71 : .handler = &pim_sigint,
72 : },
73 : {
74 : .signal = SIGTERM,
75 : .handler = &pim_sigterm,
76 : },
77 : };
|