diff options
Diffstat (limited to 'src/verify.c')
-rw-r--r-- | src/verify.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/verify.c b/src/verify.c index ebdc399..39626f3 100644 --- a/src/verify.c +++ b/src/verify.c @@ -177,23 +177,23 @@ uploader_find_frp(struct wy_user *list, const char *fpr) return list; } -int -verify_directive_file(struct wy_triplet *trp) +static int +real_verify_directive_file(struct wy_triplet *trp) { if (!trp->file[file_directive].name) - return 1; + return DIRECTIVE_UNCHECKED; if (fill_project_name(trp)) - return 1; + return DIRECTIVE_BAD; if (!wy_triplet_get_uploaders(trp)) - return 1; + return DIRECTIVE_BAD; if (verify_directive_signature(trp)) { /*FIXME: Update stats */ wy_log(LOG_ERR, _("invalid signature for %s"), trp->name ? trp->name : "[unknown]"); - return 1; + return DIRECTIVE_BAD; } else wy_debug(1, (_("%s: directive file signature OK"), trp->name)); @@ -204,7 +204,15 @@ verify_directive_file(struct wy_triplet *trp) } if (verify_directive_format(trp)) - return 1; + return DIRECTIVE_BAD; - return 0; + return DIRECTIVE_GOOD; +} + +int +verify_directive_file(struct wy_triplet *trp) +{ + if (trp->directive_verified == DIRECTIVE_UNCHECKED) + trp->directive_verified = real_verify_directive_file(trp); + return trp->directive_verified; } |