]> git.ipfire.org Git - thirdparty/FORT-validator.git/commitdiff
Bug #83/#89: Print more data
authorAlberto Leiva Popper <ydahhrk@gmail.com>
Wed, 1 Feb 2023 17:50:38 +0000 (11:50 -0600)
committerAlberto Leiva Popper <ydahhrk@gmail.com>
Wed, 1 Feb 2023 17:53:48 +0000 (11:53 -0600)
src/rtr/db/db_table.c
src/rtr/db/delta.c
src/rtr/db/delta.h

index 5ebf24beee7ddbc13c5674b1169232e20903db83..981e25d959ba33e0c57d0ed91f3fd8faf0de5ce4 100644 (file)
@@ -229,20 +229,27 @@ rtrhandler_handle_router_key(struct db_table *table,
  */
 static int
 add_roa_deltas(struct hashable_roa *roas1, struct hashable_roa *roas2,
-    struct deltas *deltas, int op)
+    struct deltas *deltas, int op, char r1type)
 {
        struct hashable_roa *n1; /* A node from @roas1 */
        struct hashable_roa *n2; /* A node from @roas2 */
        struct hashable_roa *tmp;
+       unsigned int r;
+       unsigned int roa1_count;
        int error;
 
+       r = 0;
+       roa1_count = HASH_COUNT(roas1);
+
        HASH_ITER(hh, roas1, n1, tmp) {
                HASH_FIND(hh, roas2, &n1->data, sizeof(n1->data), n2);
                if (n2 == NULL) {
-                       error = deltas_add_roa(deltas, &n1->data, op);
+                       error = deltas_add_roa(deltas, &n1->data, op,
+                           r1type, r, roa1_count);
                        if (error)
                                return error;
                }
+               r++;
        }
 
        return 0;
@@ -309,10 +316,12 @@ compute_deltas(struct db_table *old, struct db_table *new,
        if (error)
                return error;
 
-       error = add_roa_deltas(new->roas, old->roas, deltas, FLAG_ANNOUNCEMENT);
+       error = add_roa_deltas(new->roas, old->roas, deltas, FLAG_ANNOUNCEMENT,
+           'n');
        if (error)
                goto fail;
-       error = add_roa_deltas(old->roas, new->roas, deltas, FLAG_WITHDRAWAL);
+       error = add_roa_deltas(old->roas, new->roas, deltas, FLAG_WITHDRAWAL,
+           'o');
        if (error)
                goto fail;
        error = add_router_key_deltas(new->router_keys, old->router_keys,
index 957b0f8dd389f7ee089f891d181e30b86283d7b9..99dc64ee18822696e24434c953e3b46817ab2536 100644 (file)
@@ -117,7 +117,8 @@ get_deltas_array6(struct deltas *deltas, int op)
 }
 
 int
-deltas_add_roa(struct deltas *deltas, struct vrp const *vrp, int op)
+deltas_add_roa(struct deltas *deltas, struct vrp const *vrp, int op,
+    char r1type, unsigned int roa_counter, unsigned int roa_count)
 {
        union {
                struct delta_v4 v4;
@@ -140,12 +141,15 @@ deltas_add_roa(struct deltas *deltas, struct vrp const *vrp, int op)
                return deltas_v6_add(get_deltas_array6(deltas, op), &delta.v6);
        }
 
-       pr_val_err("Unknown protocol: [%u %s/%u-%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,
            vrp->max_prefix_length,
-           vrp->addr_fam);
+           vrp->addr_fam,
+           r1type,
+           roa_counter,
+           roa_count);
        return 0;
 }
 
index f88aae34ab7b00d07d16fd2a4fb8a533e2aef31f..a2f07fa7d29db7a1de9aefe3d3eab2fe0b86ac97 100644 (file)
@@ -9,7 +9,8 @@ int deltas_create(struct deltas **);
 void deltas_refget(struct deltas *);
 void deltas_refput(struct deltas *);
 
-int deltas_add_roa(struct deltas *, struct vrp const *, int);
+int deltas_add_roa(struct deltas *, struct vrp const *, int,
+    char, unsigned int, unsigned int);
 int deltas_add_router_key(struct deltas *, struct router_key const *, int);
 
 bool deltas_is_empty(struct deltas *);