aboutsummaryrefslogtreecommitdiff
path: root/rcynic/rcynic.c
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2008-06-23 02:14:49 +0000
committerRob Austein <sra@hactrn.net>2008-06-23 02:14:49 +0000
commitd0a427d54e28f4ebe88cc5f33cb963368da750ec (patch)
treea1507b24d2941701196df638e5ea2835265c891d /rcynic/rcynic.c
parent8cf3a12cd341034593d6bcddfb448577ff9cd406 (diff)
Checkpoint
svn path=/rcynic/rcynic.c; revision=1929
Diffstat (limited to 'rcynic/rcynic.c')
-rw-r--r--rcynic/rcynic.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/rcynic/rcynic.c b/rcynic/rcynic.c
index 7684f1bd..da80debe 100644
--- a/rcynic/rcynic.c
+++ b/rcynic/rcynic.c
@@ -716,14 +716,17 @@ static FileAndHash *next_uri(const rcynic_ctx_t *rc,
char *uri,
const size_t urilen,
const Manifest *manifest,
- int *iterator)
+ int *iterator,
+ const char *suffix)
{
FileAndHash *fah = NULL;
assert(base_uri && prefix && uri && manifest && iterator);
while ((fah = sk_FileAndHash_value(manifest->fileList, *iterator)) != NULL) {
- ++ *iterator;
+ ++*iterator;
+ if (suffix && !has_suffix(fah->file->data, suffix))
+ continue;
if (strlen(base_uri) + strlen(fah->file->data) >= urilen) {
logmsg(rc, log_data_err, "URI %s%s too long, skipping", base_uri, fah->file->data);
continue;
@@ -2003,19 +2006,17 @@ static void walk_cert(rcynic_ctx_t *rc,
#warning Still need to handle non-certificate manifest entries
logmsg(rc, log_debug, "Walking unauthenticated store");
- while ((fah = next_uri(rc, parent->sia, rc->unauthenticated, uri, sizeof(uri), manifest, &iterator)) != NULL)
- if (has_suffix(uri, ".cer"))
- walk_cert_1(rc, uri, certs, parent, &child, rc->unauthenticated, 0, fah->hash->data, fah->hash->length);
- else
- logmsg(rc, log_debug, "Don't (yet) know how to check %s", uri);
+ while ((fah = next_uri(rc, parent->sia, rc->unauthenticated, uri, sizeof(uri), manifest, &iterator, ".cer")) != NULL)
+ walk_cert_1(rc, uri, certs, parent, &child, rc->unauthenticated, 0, fah->hash->data, fah->hash->length);
+ while ((fah = next_uri(rc, parent->sia, rc->unauthenticated, uri, sizeof(uri), manifest, &iterator, ".roa")) != NULL)
+ logmsg(rc, log_debug, "Don't yet know how to check %s", uri);
logmsg(rc, log_debug, "Done walking unauthenticated store");
logmsg(rc, log_debug, "Walking old authenticated store");
- while ((fah = next_uri(rc, parent->sia, rc->old_authenticated, uri, sizeof(uri), manifest, &iterator)) != NULL)
- if (has_suffix(uri, ".cer"))
- walk_cert_1(rc, uri, certs, parent, &child, rc->old_authenticated, 1, fah->hash->data, fah->hash->length);
- else
- logmsg(rc, log_debug, "Don't (yet) know how to check %s", uri);
+ while ((fah = next_uri(rc, parent->sia, rc->old_authenticated, uri, sizeof(uri), manifest, &iterator, ".cer")) != NULL)
+ walk_cert_1(rc, uri, certs, parent, &child, rc->old_authenticated, 1, fah->hash->data, fah->hash->length);
+ while ((fah = next_uri(rc, parent->sia, rc->old_authenticated, uri, sizeof(uri), manifest, &iterator, ".roa")) != NULL)
+ logmsg(rc, log_debug, "Don't yet know how to check %s", uri);
logmsg(rc, log_debug, "Done walking old authenticated store");
Manifest_free(manifest);