Helps with the log analysis.
/* Constant after init */
static struct loggers listeners = SLIST_HEAD_INITIALIZER(listeners);
+static bool trc_enabled;
static void
vcb(struct logger *lgr, struct level *lvl, char const *fmt, ...)
return pr_err("Unknown log type: %s", new->type);
}
+ if (node->lvl == &TRC)
+ trc_enabled = true;
SLIST_INSERT_HEAD(list, node, lh);
return 0;
}
#endif
+bool
+pr_trc_enabled(void)
+{
+ return trc_enabled;
+}
+
void
pr_trc(const char *fmt, ...)
{
#define pr_clutter(...)
#endif
+bool pr_trc_enabled(void);
+
void pr_trc(const char *, ...) CHECK_FORMAT(1, 2);
void pr_inf(const char *, ...) CHECK_FORMAT(1, 2);
int pr_wrn(const char *, ...) CHECK_FORMAT(1, 2);
ghostbusters_traverse(map, ca);
}
- pr_trc("RPP seems sufficiently correct.");
+ pr_trc("RPP seems salvageable.");
if (queued > 0)
task_wakeup();
}
}
+static void
+trc_vrp(struct vrp *vrp)
+{
+ char buf[INET6_ADDRSTRLEN];
+ pr_trc("Adding VRP: %s/%u-%u => %u",
+ inet_ntop(vrp->addr_fam, &vrp->prefix, buf, INET6_ADDRSTRLEN),
+ vrp->prefix_length, vrp->max_prefix_length, vrp->asn);
+}
+
int
rtrhandler_handle_roa_v4(struct db_table *table, uint32_t asn,
struct ipv4_prefix const *prefix4, uint8_t max_length)
roa->data.max_prefix_length = max_length;
roa->data.addr_fam = AF_INET;
+ if (pr_trc_enabled())
+ trc_vrp(&roa->data);
+
return add_roa(table, roa);
}
roa->data.max_prefix_length = max_length;
roa->data.addr_fam = AF_INET6;
+ if (pr_trc_enabled())
+ trc_vrp(&roa->data);
+
return add_roa(table, roa);
}