This diff just shuffles some functions around to reduce the size of the
validate cache diff.

-- 
:wq Claudio

Index: repo.c
===================================================================
RCS file: /cvs/src/usr.sbin/rpki-client/repo.c,v
retrieving revision 1.23
diff -u -p -r1.23 repo.c
--- repo.c      13 Jan 2022 13:46:03 -0000      1.23
+++ repo.c      13 Jan 2022 13:47:22 -0000
@@ -336,47 +336,6 @@ ta_filename(const struct tarepo *tr, int
        return nfile;
 }
 
-/*
- * Build local file name base on the URI and the rrdprepo info.
- */
-static char *
-rrdp_filename(const struct rrdprepo *rr, const char *uri, int temp)
-{
-       char *nfile;
-       char *dir = rr->basedir;
-
-       if (temp)
-               dir = rr->temp;
-
-       if (!valid_uri(uri, strlen(uri), "rsync://")) {
-               warnx("%s: bad URI %s", rr->basedir, uri);
-               return NULL;
-       }
-
-       uri += strlen("rsync://");      /* skip proto */
-       if (asprintf(&nfile, "%s/%s", dir, uri) == -1)
-               err(1, NULL);
-       return nfile;
-}
-
-/*
- * Build RRDP state file name based on the repo info.
- * If temp is set add Xs for mkostemp.
- */
-static char *
-rrdp_state_filename(const struct rrdprepo *rr, int temp)
-{
-       char *nfile;
-
-       if (asprintf(&nfile, "%s/.state%s", rr->basedir,
-           temp ? ".XXXXXXXX": "") == -1)
-               err(1, NULL);
-
-       return nfile;
-}
-
-
-
 static void
 ta_fetch(struct tarepo *tr)
 {
@@ -556,51 +515,43 @@ rsync_free(void)
 
 static int rrdprepo_fetch(struct rrdprepo *);
 
-static struct rrdprepo *
-rrdp_get(const char *uri, int nofetch)
+/*
+ * Build local file name base on the URI and the rrdprepo info.
+ */
+static char *
+rrdp_filename(const struct rrdprepo *rr, const char *uri, int temp)
 {
-       struct rrdprepo *rr;
-
-       SLIST_FOREACH(rr, &rrdprepos, entry)
-               if (strcmp(rr->notifyuri, uri) == 0) {
-                       if (rr->state == REPO_FAILED)
-                               return NULL;
-                       return rr;
-               }
+       char *nfile;
+       char *dir = rr->basedir;
 
-       if ((rr = calloc(1, sizeof(*rr))) == NULL)
-               err(1, NULL);
+       if (temp)
+               dir = rr->temp;
 
-       rr->id = ++repoid;
-       SLIST_INSERT_HEAD(&rrdprepos, rr, entry);
+       if (!valid_uri(uri, strlen(uri), "rsync://")) {
+               warnx("%s: bad URI %s", rr->basedir, uri);
+               return NULL;
+       }
 
-       if ((rr->notifyuri = strdup(uri)) == NULL)
+       uri += strlen("rsync://");      /* skip proto */
+       if (asprintf(&nfile, "%s/%s", dir, uri) == -1)
                err(1, NULL);
-       rr->basedir = repo_dir(uri, "rrdp", 1);
-
-       RB_INIT(&rr->added);
-       RB_INIT(&rr->deleted);
+       return nfile;
+}
 
-       if (noop || nofetch) {
-               rr->state = REPO_DONE;
-               logx("%s: using cache", rr->notifyuri);
-               repo_done(rr, 0);
-       } else {
-               /* create base directory */
-               if (mkpath(rr->basedir) == -1) {
-                       warn("mkpath %s", rr->basedir);
-                       rrdp_finish(rr->id, 0);
-                       return rr;
-               }
-               if (rrdprepo_fetch(rr) == -1) {
-                       rrdp_finish(rr->id, 0);
-                       return rr;
-               }
+/*
+ * Build RRDP state file name based on the repo info.
+ * If temp is set add Xs for mkostemp.
+ */
+static char *
+rrdp_state_filename(const struct rrdprepo *rr, int temp)
+{
+       char *nfile;
 
-               logx("%s: pulling from %s", rr->notifyuri, "network");
-       }
+       if (asprintf(&nfile, "%s/.state%s", rr->basedir,
+           temp ? ".XXXXXXXX": "") == -1)
+               err(1, NULL);
 
-       return rr;
+       return nfile;
 }
 
 static struct rrdprepo *
@@ -786,6 +737,53 @@ fail:
        unlink(temp);
        free(temp);
        free(file);
+}
+
+static struct rrdprepo *
+rrdp_get(const char *uri, int nofetch)
+{
+       struct rrdprepo *rr;
+
+       SLIST_FOREACH(rr, &rrdprepos, entry)
+               if (strcmp(rr->notifyuri, uri) == 0) {
+                       if (rr->state == REPO_FAILED)
+                               return NULL;
+                       return rr;
+               }
+
+       if ((rr = calloc(1, sizeof(*rr))) == NULL)
+               err(1, NULL);
+
+       rr->id = ++repoid;
+       SLIST_INSERT_HEAD(&rrdprepos, rr, entry);
+
+       if ((rr->notifyuri = strdup(uri)) == NULL)
+               err(1, NULL);
+       rr->basedir = repo_dir(uri, "rrdp", 1);
+
+       RB_INIT(&rr->added);
+       RB_INIT(&rr->deleted);
+
+       if (noop || nofetch) {
+               rr->state = REPO_DONE;
+               logx("%s: using cache", rr->notifyuri);
+               repo_done(rr, 0);
+       } else {
+               /* create base directory */
+               if (mkpath(rr->basedir) == -1) {
+                       warn("mkpath %s", rr->basedir);
+                       rrdp_finish(rr->id, 0);
+                       return rr;
+               }
+               if (rrdprepo_fetch(rr) == -1) {
+                       rrdp_finish(rr->id, 0);
+                       return rr;
+               }
+
+               logx("%s: pulling from %s", rr->notifyuri, "network");
+       }
+
+       return rr;
 }
 
 /*

Reply via email to