diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-08-22 13:23:03 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-08-22 13:23:03 +0000 |
commit | 180ca1d87d2bf69d9dbb0acb76422e9ae15f930c (patch) | |
tree | b14651206aaec8e03fdfdce9e04433068fa62648 /src/verify.c | |
parent | 708a28a2f5bd2384e4c254a47d069ec4d9ef697e (diff) | |
download | wydawca-180ca1d87d2bf69d9dbb0acb76422e9ae15f930c.tar.gz wydawca-180ca1d87d2bf69d9dbb0acb76422e9ae15f930c.tar.bz2 |
Implement all directives
git-svn-id: file:///svnroot/wydawca/trunk@284 6bb4bd81-ecc2-4fd4-a2d4-9571d19c0d33
Diffstat (limited to 'src/verify.c')
-rw-r--r-- | src/verify.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/verify.c b/src/verify.c index a47eaee..f64183a 100644 --- a/src/verify.c +++ b/src/verify.c @@ -159,7 +159,7 @@ expand_param (const char *param, const char *user, const char *project, int -check_access_rights (struct file_register *reg, struct directory_pair *dpair, +check_access_rights (struct file_triplet *trp, struct directory_pair *dpair, const char *user) { struct access_method *method = &dpair->verify_method; @@ -170,10 +170,10 @@ check_access_rights (struct file_register *reg, struct directory_pair *dpair, char *command; const char *result; - if (directive_get_value (reg, "directory", &directory)) + if (directive_get_value (trp, "directory", &directory)) { logmsg (LOG_ERR, "%s: missing `directory' directive", - reg->file[file_directive].name); + trp->file[file_directive].name); return 1; } p = strchr (directory, '/'); @@ -206,7 +206,7 @@ check_access_rights (struct file_register *reg, struct directory_pair *dpair, if (strcmp (result, user)) { logmsg (LOG_ERR, "%s: %s has no rights on %s", - reg->name, user, project); + trp->name, user, project); free (project); return 1; } @@ -216,9 +216,9 @@ check_access_rights (struct file_register *reg, struct directory_pair *dpair, } int -verify_triplet (struct file_register *reg, struct directory_pair *dpair) +verify_triplet (struct file_triplet *trp, struct directory_pair *dpair) { - struct passwd *pw = getpwuid (reg->file[file_dist].uid); + struct passwd *pw = getpwuid (TRIPLET_UID (trp)); char *user_name; char *command; struct access_method *method = &dpair->gpg_key_method; @@ -228,10 +228,10 @@ verify_triplet (struct file_register *reg, struct directory_pair *dpair) if (!pw) { logmsg (LOG_ERR, "%s: getpwuid failed: %s", - reg->name, strerror (errno)); + trp->name, strerror (errno)); return 1; } - reg->gid = pw->pw_gid; + trp->gid = pw->pw_gid; user_name = pw->pw_name; command = expand_param (method->param[1], user_name, NULL, method); @@ -253,32 +253,32 @@ verify_triplet (struct file_register *reg, struct directory_pair *dpair) if (debug_level > 3) logmsg (LOG_DEBUG, "Public key: %s", pubkey); - if (verify_directive_signature (reg, dpair, pubkey)) + if (verify_directive_signature (trp, dpair, pubkey)) { - logmsg (LOG_ERR, "invalid signature for %s", reg->name); + logmsg (LOG_ERR, "invalid signature for %s", trp->name); return 1; } if (debug_level > 1) { int i; - for (i = 0; reg->directive[i]; i++) - logmsg (LOG_DEBUG, "directive[%d] = %s", i, reg->directive[i]); + for (i = 0; trp->directive[i]; i++) + logmsg (LOG_DEBUG, "directive[%d] = %s", i, trp->directive[i]); } - if (verify_directive_format (reg)) + if (verify_directive_format (trp)) return 1; - if (check_access_rights (reg, dpair, user_name)) + if (check_access_rights (trp, dpair, user_name)) return 1; - if (verify_detached_signature (reg, dpair)) + if (verify_detached_signature (trp, dpair)) { - logmsg (LOG_ERR, "invalid detached signature for %s", reg->name); + logmsg (LOG_ERR, "invalid detached signature for %s", trp->name); return 1; } if (debug_level) - logmsg (LOG_DEBUG, "%s: triplet verified successfully", reg->name); + logmsg (LOG_DEBUG, "%s: triplet verified successfully", trp->name); return 0; } |