diff --git a/src/loader/prog.c b/src/loader/prog.c index a88ab41..07bceeb 100644 --- a/src/loader/prog.c +++ b/src/loader/prog.c @@ -187,6 +187,7 @@ int main(int argc, char *argv[]) } int if_idx[MAX_INTERFACES] = {0}; + int attach_success = 0; // Attach XDP program to interface(s). for (int i = 0; i < cfg.interfaces_cnt; i++) @@ -228,6 +229,18 @@ int main(int argc, char *argv[]) { log_msg(&cfg, 1, 0, "Attached XDP program to interface '%s' using mode '%s'...", interface, mode_used); } + + if (!attach_success) + { + attach_success = 1; + } + } + + if (!attach_success) + { + log_msg(&cfg, 0, 1, "[ERROR] Failed to attach XDP program to any configured interfaces."); + + return EXIT_FAILURE; } log_msg(&cfg, 2, 0, "Retrieving BPF map FDs..."); @@ -425,7 +438,7 @@ int main(int argc, char *argv[]) else { log_msg(&cfg, 4, 0, "Config reloaded successfully..."); - + // Make sure we set doing_stats properly. if (!cfg.no_stats && !doing_stats) { diff --git a/src/loader/utils/logging.c b/src/loader/utils/logging.c index 0505ac7..6958e7e 100644 --- a/src/loader/utils/logging.c +++ b/src/loader/utils/logging.c @@ -11,7 +11,7 @@ * * @return void */ -static void log_msgRaw(int req_lvl, int cur_lvl, int error, const char* log_path, const char* msg, va_list args) +static void log_msg_raw(int req_lvl, int cur_lvl, int error, const char* log_path, const char* msg, va_list args) { if (cur_lvl < req_lvl) { @@ -86,7 +86,7 @@ static void log_msgRaw(int req_lvl, int cur_lvl, int error, const char* log_path } /** - * Prints a log message using log_msgRaw(). + * Prints a log message using log_msg_raw(). * * @param cfg A pointer to the config structure. * @param req_lvl The required level for this message. @@ -100,7 +100,7 @@ void log_msg(config__t* cfg, int req_lvl, int error, const char* msg, ...) va_list args; va_start(args, msg); - log_msgRaw(req_lvl, cfg->verbose, error, (const char*)cfg->log_file, msg, args); + log_msg_raw(req_lvl, cfg->verbose, error, (const char*)cfg->log_file, msg, args); va_end(args); }