diff --git a/src/sf_util.c b/src/sf_util.c index f5fea2a..e1b8300 100644 --- a/src/sf_util.c +++ b/src/sf_util.c @@ -83,8 +83,8 @@ void sf_usage(const char *program) "[start | stop | restart]\n", program); } -void sf_parse_daemon_mode_and_action(int argc, char *argv[], - bool *daemon_mode, char **action) +void sf_parse_daemon_mode_and_action_ex(int argc, char *argv[], + bool *daemon_mode, char **action, const char *default_action) { int i; @@ -101,7 +101,7 @@ void sf_parse_daemon_mode_and_action(int argc, char *argv[], if (argc - (*daemon_mode ? 0 : 1) > 2) { *action = argv[argc - 1]; } else { - *action = NULL; + *action = (char *)default_action; } } diff --git a/src/sf_util.h b/src/sf_util.h index d967cd2..8a1bbb2 100644 --- a/src/sf_util.h +++ b/src/sf_util.h @@ -41,6 +41,9 @@ __FILE__, eln, eres, emsg, strerror(eres)) #define dszoffset(cls, mem) ((char*)&((cls*)0)->mem - ((char*)0)) +#define sf_parse_daemon_mode_and_action(argc, argv, daemon_mode, action) \ + sf_parse_daemon_mode_and_action_ex(argc, argv, daemon_mode, action, "start") + #ifdef __cplusplus extern "C" { #endif @@ -53,8 +56,8 @@ int sf_printbuffer(char* buffer,int32_t len); void sf_usage(const char *program); -void sf_parse_daemon_mode_and_action(int argc, char *argv[], - bool *daemon_mode, char **action); +void sf_parse_daemon_mode_and_action_ex(int argc, char *argv[], + bool *daemon_mode, char **action, const char *default_action); int sf_logger_init(LogContext *pContext, const char *filename_prefix);