runmodes: code cleanups

pull/4015/head
Victor Julien 6 years ago
parent feda5e7392
commit 3282fb4967

@ -75,7 +75,7 @@ const char *thread_name_counter_wakeup = "CW";
*/ */
typedef struct RunMode_ { typedef struct RunMode_ {
/* the runmode type */ /* the runmode type */
int runmode; enum RunModes runmode;
const char *name; const char *name;
const char *description; const char *description;
/* runmode function */ /* runmode function */
@ -83,7 +83,7 @@ typedef struct RunMode_ {
} RunMode; } RunMode;
typedef struct RunModes_ { typedef struct RunModes_ {
int no_of_runmodes; int cnt;
RunMode *runmodes; RunMode *runmodes;
} RunModes; } RunModes;
@ -153,8 +153,7 @@ static const char *RunModeTranslateModeToName(int runmode)
return "WINDIVERT(DISABLED)"; return "WINDIVERT(DISABLED)";
#endif #endif
default: default:
SCLogError(SC_ERR_UNKNOWN_RUN_MODE, "Unknown runtime mode. Aborting"); FatalError(SC_ERR_UNKNOWN_RUN_MODE, "Unknown runtime mode. Aborting");
exit(EXIT_FAILURE);
} }
} }
@ -166,15 +165,14 @@ static const char *RunModeTranslateModeToName(int runmode)
* \param runmode The runmode type. * \param runmode The runmode type.
* \param runmode_customd_id The runmode custom id. * \param runmode_customd_id The runmode custom id.
*/ */
static RunMode *RunModeGetCustomMode(int runmode, const char *custom_mode) static RunMode *RunModeGetCustomMode(enum RunModes runmode, const char *custom_mode)
{ {
int i; if (runmode < RUNMODE_USER_MAX) {
for (int i = 0; i < runmodes[runmode].cnt; i++) {
for (i = 0; i < runmodes[runmode].no_of_runmodes; i++) { if (strcmp(runmodes[runmode].runmodes[i].name, custom_mode) == 0)
if (strcmp(runmodes[runmode].runmodes[i].name, custom_mode) == 0) return &runmodes[runmode].runmodes[i];
return &runmodes[runmode].runmodes[i]; }
} }
return NULL; return NULL;
} }
@ -247,7 +245,7 @@ void RunModeListRunmodes(void)
int j = 0; int j = 0;
for ( ; i < RUNMODE_USER_MAX; i++) { for ( ; i < RUNMODE_USER_MAX; i++) {
int mode_displayed = 0; int mode_displayed = 0;
for (j = 0; j < runmodes[i].no_of_runmodes; j++) { for (j = 0; j < runmodes[i].cnt; j++) {
if (mode_displayed == 1) { if (mode_displayed == 1) {
printf("| ----------------------------------------------" printf("| ----------------------------------------------"
"-----------------------\n"); "-----------------------\n");
@ -269,7 +267,7 @@ void RunModeListRunmodes(void)
if (mode_displayed == 1) { if (mode_displayed == 1) {
printf("|-----------------------------------------------------------------" printf("|-----------------------------------------------------------------"
"-----------------------\n"); "-----------------------\n");
} }
} }
return; return;
@ -418,19 +416,18 @@ int RunModeNeedsBypassManager(void)
* \param description Description for this runmode. * \param description Description for this runmode.
* \param RunModeFunc The function to be run for this runmode. * \param RunModeFunc The function to be run for this runmode.
*/ */
void RunModeRegisterNewRunMode(int runmode, const char *name, void RunModeRegisterNewRunMode(enum RunModes runmode,
const char *name,
const char *description, const char *description,
int (*RunModeFunc)(void)) int (*RunModeFunc)(void))
{ {
void *ptmp;
if (RunModeGetCustomMode(runmode, name) != NULL) { if (RunModeGetCustomMode(runmode, name) != NULL) {
SCLogError(SC_ERR_RUNMODE, "A runmode by this custom name has already " FatalError(SC_ERR_RUNMODE, "runmode '%s' has already "
"been registered. Please use an unique name"); "been registered. Please use an unique name.", name);
return;
} }
ptmp = SCRealloc(runmodes[runmode].runmodes, void *ptmp = SCRealloc(runmodes[runmode].runmodes,
(runmodes[runmode].no_of_runmodes + 1) * sizeof(RunMode)); (runmodes[runmode].cnt + 1) * sizeof(RunMode));
if (ptmp == NULL) { if (ptmp == NULL) {
SCFree(runmodes[runmode].runmodes); SCFree(runmodes[runmode].runmodes);
runmodes[runmode].runmodes = NULL; runmodes[runmode].runmodes = NULL;
@ -438,19 +435,18 @@ void RunModeRegisterNewRunMode(int runmode, const char *name,
} }
runmodes[runmode].runmodes = ptmp; runmodes[runmode].runmodes = ptmp;
RunMode *mode = &runmodes[runmode].runmodes[runmodes[runmode].no_of_runmodes]; RunMode *mode = &runmodes[runmode].runmodes[runmodes[runmode].cnt];
runmodes[runmode].no_of_runmodes++; runmodes[runmode].cnt++;
memset(mode, 0x00, sizeof(*mode));
mode->runmode = runmode; mode->runmode = runmode;
mode->name = SCStrdup(name); mode->name = SCStrdup(name);
if (unlikely(mode->name == NULL)) { if (unlikely(mode->name == NULL)) {
SCLogError(SC_ERR_MEM_ALLOC, "Failed to allocate string"); FatalError(SC_ERR_MEM_ALLOC, "Failed to allocate string");
exit(EXIT_FAILURE);
} }
mode->description = SCStrdup(description); mode->description = SCStrdup(description);
if (unlikely(mode->description == NULL)) { if (unlikely(mode->description == NULL)) {
SCLogError(SC_ERR_MEM_ALLOC, "Failed to allocate string"); FatalError(SC_ERR_MEM_ALLOC, "Failed to allocate string");
exit(EXIT_FAILURE);
} }
mode->RunModeFunc = RunModeFunc; mode->RunModeFunc = RunModeFunc;
@ -505,7 +501,7 @@ bool IsRunModeSystem(enum RunModes run_mode_to_check)
} }
} }
bool IsRunModeOffline(int run_mode_to_check) bool IsRunModeOffline(enum RunModes run_mode_to_check)
{ {
switch(run_mode_to_check) { switch(run_mode_to_check) {
case RUNMODE_CONF_TEST: case RUNMODE_CONF_TEST:

@ -78,7 +78,7 @@ const char *RunModeGetMainMode(void);
void RunModeListRunmodes(void); void RunModeListRunmodes(void);
void RunModeDispatch(int, const char *); void RunModeDispatch(int, const char *);
void RunModeRegisterRunModes(void); void RunModeRegisterRunModes(void);
void RunModeRegisterNewRunMode(int, const char *, const char *, void RunModeRegisterNewRunMode(enum RunModes, const char *, const char *,
int (*RunModeFunc)(void)); int (*RunModeFunc)(void));
void RunModeInitialize(void); void RunModeInitialize(void);
void RunModeInitializeOutputs(void); void RunModeInitializeOutputs(void);
@ -89,7 +89,7 @@ int RunModeOutputFileEnabled(void);
/* bool indicating if filedata logger is enabled */ /* bool indicating if filedata logger is enabled */
int RunModeOutputFiledataEnabled(void); int RunModeOutputFiledataEnabled(void);
/** bool indicating if run mode is offline */ /** bool indicating if run mode is offline */
bool IsRunModeOffline(int run_mode_to_check); bool IsRunModeOffline(enum RunModes run_mode_to_check);
bool IsRunModeSystem(enum RunModes run_mode_to_check); bool IsRunModeSystem(enum RunModes run_mode_to_check);
void RunModeEnablesBypassManager(void); void RunModeEnablesBypassManager(void);

Loading…
Cancel
Save