aboutsummaryrefslogtreecommitdiff
path: root/src/verify.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/verify.c')
-rw-r--r--src/verify.c24
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;
}

Return to:

Send suggestions and report system problems to the System administrator.