OSDN Git Service

Update INSTALL.ja.utf-8 for new release.
[ultramonkey-l7/ultramonkey-l7-v2.git] / snmpagent / l7snmpagent.cpp
1 #include <signal.h>
2
3 #include "logger_wrapper.h"
4 #include "parameter_wrapper.h"
5
6 using namespace l7vs;
7
8 Logger  Logger::instance;
9 Parameter       Parameter::instance;
10
11 /*!
12  *
13  */
14 static void
15 handler_sig_exit(int sig)
16 {
17 }
18
19 /*!
20  * setup signal handler
21  */
22 static int
23 set_sighandler(int sig, void (*handler)(int))
24 {
25         struct sigaction act;
26         int ret;
27
28         ret = sigaction(sig, NULL, &act);
29         if (ret < 0) {
30                 return ret;
31         }
32         act.sa_flags &= ~SA_RESETHAND;
33         act.sa_handler = handler;
34         ret = sigaction(sig, &act, NULL);
35         if (ret < 0) {
36                 return ret;
37         }
38         return 0;
39 }
40
41 /*!
42  *esetup all signal handlers
43  */
44 static int
45 set_sighandlers()
46 {
47         //debug log out
48         if( LOG_LV_DEBUG == logger_get_log_level( LOG_CAT_SNMPAGENT_START_STOP ) ){
49                 char debugstr[DEBUG_STR_LEN];
50                 sprintf( debugstr, "in_function set_sighandler()" );
51                 LOGGER_PUT_LOG_DEBUG( LOG_CAT_SNMPAGENT_START_STOP,1, debugstr );
52         }
53
54         int ret;
55
56 #define SET_SIGHANDLER(sig, handler)                    \
57         do {                                            \
58                 ret = set_sighandler((sig), (handler)); \
59                 if (ret < 0) {                          \
60                         if (LOG_LV_DEBUG == logger_get_log_level(LOG_CAT_L7VSD_PROGRAM)) {      \
61                                 LOGGER_PUT_LOG_DEBUG(LOG_CAT_L7VSD_PROGRAM, 0,                  \
62                                         "out_function: static int set_sighandlers(void) "       \
63                                         "return_value: %d",                                     \
64                                         ret);                                                   \
65                         }                                                                       \
66                         return ret;                     \
67                 }                                       \
68         } while (0)
69
70         SET_SIGHANDLER( SIGHUP,  handler_sig_exit );
71         SET_SIGHANDLER( SIGINT,  handler_sig_exit );
72         SET_SIGHANDLER( SIGQUIT, handler_sig_exit );
73         SET_SIGHANDLER( SIGTERM, handler_sig_exit );
74         SET_SIGHANDLER( SIGUSR1, SIG_IGN );
75         SET_SIGHANDLER( SIGUSR2, SIG_IGN );
76         SET_SIGHANDLER( SIGALRM, SIG_IGN );
77         SET_SIGHANDLER( SIGCHLD, SIG_IGN );
78
79 #undef SET_SIGHANDLER
80
81         //debug log out
82         if( LOG_LV_DEBUG == logger_get_log_level( LOG_CAT_SNMPAGENT_START_STOP ) ){
83                 char debugstr[DEBUG_STR_LEN];
84                 sprintf( debugstr, "out_function set_sighandler()" );
85                 LOGGER_PUT_LOG_DEBUG( LOG_CAT_SNMPAGENT_START_STOP,2, debugstr );
86         }
87 }
88
89 /*!
90  * l7snmpagent main
91  * @param[in]   argc    number of argument
92  * @param[in]   argv    array of argument
93  */
94 int main( int argc, char * argv[] )
95 {
96         LOGGER_PUT_LOG_INFO( LOG_CAT_SNMPAGENT_START_STOP,1, "start l7snmpagent" );
97         //debug log out
98         if( LOG_LV_DEBUG == logger_get_log_level( LOG_CAT_SNMPAGENT_START_STOP ) ){
99                 char debugstr[DEBUG_STR_LEN];
100                 LOGGER_PUT_LOG_DEBUG( LOG_CAT_SNMPAGENT_START_STOP,3, debugstr );
101         }
102
103         set_sighandlers();
104
105         LOGGER_PUT_LOG_INFO( LOG_CAT_SNMPAGENT_START_STOP,2, "stop l7snmpagent" );
106 }
107
108