{
FILE *out = arg;
- if (vrp->addr_fam != AF_INET && vrp->addr_fam != AF_INET6)
- pr_crit("Unknown family type");
+ if (vrp->addr_fam != AF_INET && vrp->addr_fam != AF_INET6) {
+ /* pr_crit("Unknown family type"); TODO (issue83) */
+ return 0;
+ }
fprintf(out, "AS%u,%s/%u,%u\n", vrp->asn,
inet_ntop(vrp->addr_fam, &vrp->prefix, addr_buf, INET6_ADDRSTRLEN),
void
find_bad_vrp(char const *prefix, struct db_table *table)
{
- struct hashable_roa *cursor;
+ struct hashable_roa *node;
struct hashable_roa *tmp;
- uint8_t family;
+ struct vrp const *vrp;
+ unsigned int roa_counter;
+ unsigned int roa_count;
+ char buffer[INET6_ADDRSTRLEN];
if (table == NULL)
return;
- HASH_ITER(hh, table->roas, cursor, tmp) {
- family = cursor->data.addr_fam;
- if (family != AF_INET && family != AF_INET6) {
- pr_op_err("%s: VRP corrupted!", prefix);
+ roa_counter = 0;
+ roa_count = HASH_COUNT(table->roas);
+
+ HASH_ITER(hh, table->roas, node, tmp) {
+ vrp = &node->data;
+ if (vrp->addr_fam != AF_INET && vrp->addr_fam != AF_INET6) {
+ pr_op_err("%s: VRP corrupted! [%u %s/%u-%u %u] %u/%u",
+ prefix,
+ vrp->asn,
+ addr2str6(&vrp->prefix.v6, buffer),
+ vrp->prefix_length,
+ vrp->max_prefix_length,
+ vrp->addr_fam,
+ roa_counter,
+ roa_count);
return;
}
+ roa_counter++;
}
}
return deltas_v6_add(get_deltas_array6(deltas, op), &delta.v6);
}
- pr_val_err("Unknown protocol: [%u %s/%u-%u %u] %c %u %u",
+ pr_val_err("Unknown protocol: [%u %s/%u-%u %u] %c %u/%u",
vrp->asn,
addr2str6(&vrp->prefix.v6, buffer),
vrp->prefix_length,