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