Make sure XDP program has attached at least once.

This commit is contained in:
Christian Deacon
2025-03-10 16:18:15 -04:00
parent d0a62b0a16
commit 0ac80d7452
2 changed files with 17 additions and 4 deletions

View File

@@ -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)
{

View File

@@ -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);
}