This diff adds the parentid to struct cert. The parentid is the id of the
repository the cert lives in. This information will be used to track the
parent repository in the repositories list/tree.

The naming is confusing and I'm happy for better suggestions.
-- 
:wq Claudio

Index: cert.c
===================================================================
RCS file: /cvs/src/usr.sbin/rpki-client/cert.c,v
retrieving revision 1.85
diff -u -p -r1.85 cert.c
--- cert.c      19 Aug 2022 12:45:53 -0000      1.85
+++ cert.c      3 Sep 2022 11:03:46 -0000
@@ -898,6 +898,7 @@ cert_buffer(struct ibuf *b, const struct
        io_simple_buffer(b, &p->expires, sizeof(p->expires));
        io_simple_buffer(b, &p->purpose, sizeof(p->purpose));
        io_simple_buffer(b, &p->talid, sizeof(p->talid));
+       io_simple_buffer(b, &p->parentid, sizeof(p->parentid));
        io_simple_buffer(b, &p->ipsz, sizeof(p->ipsz));
        io_simple_buffer(b, &p->asz, sizeof(p->asz));
 
@@ -930,6 +931,7 @@ cert_read(struct ibuf *b)
        io_read_buf(b, &p->expires, sizeof(p->expires));
        io_read_buf(b, &p->purpose, sizeof(p->purpose));
        io_read_buf(b, &p->talid, sizeof(p->talid));
+       io_read_buf(b, &p->parentid, sizeof(p->parentid));
        io_read_buf(b, &p->ipsz, sizeof(p->ipsz));
        io_read_buf(b, &p->asz, sizeof(p->asz));
 
Index: extern.h
===================================================================
RCS file: /cvs/src/usr.sbin/rpki-client/extern.h,v
retrieving revision 1.153
diff -u -p -r1.153 extern.h
--- extern.h    2 Sep 2022 19:10:36 -0000       1.153
+++ extern.h    3 Sep 2022 11:03:46 -0000
@@ -137,6 +137,7 @@ struct cert {
        struct cert_as  *as; /* list of AS numbers and ranges */
        size_t           asz; /* length of "asz" */
        int              talid; /* cert is covered by which TAL */
+       unsigned int     parentid; /* parent repository of this cert */
        char            *repo; /* CA repository (rsync:// uri) */
        char            *mft; /* manifest (rsync:// uri) */
        char            *notify; /* RRDP notify (https:// uri) */
Index: parser.c
===================================================================
RCS file: /cvs/src/usr.sbin/rpki-client/parser.c,v
retrieving revision 1.75
diff -u -p -r1.75 parser.c
--- parser.c    30 Aug 2022 18:56:49 -0000      1.75
+++ parser.c    3 Sep 2022 11:03:46 -0000
@@ -596,8 +596,10 @@ parse_entity(struct entityq *q, struct m
                                cert = proc_parser_cert(file, f, flen);
                        c = (cert != NULL);
                        io_simple_buffer(b, &c, sizeof(int));
-                       if (cert != NULL)
+                       if (cert != NULL) {
+                               cert->parentid = entp->repoid;
                                cert_buffer(b, cert);
+                       }
                        /*
                         * The parsed certificate data "cert" is now
                         * managed in the "auths" table, so don't free

Reply via email to