[Pkg-gnupg-commit] [gnupg2] 107/292: g10: When changing a TOFU binding's policy, update the conflict info
Daniel Kahn Gillmor
dkg at fifthhorseman.net
Mon Nov 21 06:31:31 UTC 2016
This is an automated email from the git hooks/post-receive script.
dkg pushed a commit to branch master
in repository gnupg2.
commit 3ad17e72fa81d18c95732ddcd4def244f52bb5b1
Author: Neal H. Walfield <neal at g10code.com>
Date: Wed Oct 12 21:42:10 2016 +0200
g10: When changing a TOFU binding's policy, update the conflict info
* g10/tofu.c (record_binding): Take an additional argument, CONFLICT.
Set the binding's conflict accordingly. Update callers.
--
Signed-off-by: Neal H. Walfield <neal at g10code.com>
---
g10/tofu.c | 33 ++++++++++++++++-----------------
1 file changed, 16 insertions(+), 17 deletions(-)
diff --git a/g10/tofu.c b/g10/tofu.c
index ae7166c..d7f4e4c 100644
--- a/g10/tofu.c
+++ b/g10/tofu.c
@@ -797,8 +797,9 @@ get_single_long_cb2 (void *cookie, int argc, char **argv, char **azColName,
If SHOW_OLD is set, the binding's old policy is displayed. */
static gpg_error_t
record_binding (tofu_dbs_t dbs, const char *fingerprint, const char *email,
- const char *user_id, enum tofu_policy policy, int show_old,
- time_t now)
+ const char *user_id, enum tofu_policy policy,
+ const char *conflict,
+ int show_old, time_t now)
{
char *fingerprint_pp = format_hexfingerprint (fingerprint, NULL, 0);
gpg_error_t rc;
@@ -850,12 +851,6 @@ record_binding (tofu_dbs_t dbs, const char *fingerprint, const char *email,
" <key: %s, user id: %s> to %s.\n",
fingerprint, show_old ? user_id : email,
tofu_policy_str (policy));
-
- if (policy_old == policy)
- {
- rc = 0;
- goto leave; /* Nothing to do. */
- }
}
if (opt.dry_run)
@@ -868,18 +863,19 @@ record_binding (tofu_dbs_t dbs, const char *fingerprint, const char *email,
rc = gpgsql_stepx
(dbs->db, &dbs->s.record_binding_update, NULL, NULL, &err,
"insert or replace into bindings\n"
- " (oid, fingerprint, email, user_id, time, policy)\n"
+ " (oid, fingerprint, email, user_id, time, policy, conflict)\n"
" values (\n"
/* If we don't explicitly reuse the OID, then SQLite will
reallocate a new one. We just need to search for the OID
based on the fingerprint and email since they are unique. */
" (select oid from bindings where fingerprint = ? and email = ?),\n"
- " ?, ?, ?, ?, ?);",
+ " ?, ?, ?, ?, ?, ?);",
GPGSQL_ARG_STRING, fingerprint, GPGSQL_ARG_STRING, email,
GPGSQL_ARG_STRING, fingerprint, GPGSQL_ARG_STRING, email,
GPGSQL_ARG_STRING, user_id,
GPGSQL_ARG_LONG_LONG, (long long) now,
GPGSQL_ARG_INT, (int) policy,
+ GPGSQL_ARG_STRING, conflict ? conflict : "",
GPGSQL_ARG_END);
if (rc)
{
@@ -1747,7 +1743,7 @@ ask_about_binding (ctrl_t ctrl,
}
if (record_binding (dbs, fingerprint, email, user_id,
- *policy, 0, now))
+ *policy, NULL, 0, now))
{
/* If there's an error registering the
* binding, don't save the signature. */
@@ -2087,7 +2083,7 @@ get_trust (ctrl_t ctrl, PKT_public_key *pk,
/* New binding. */
{
if (record_binding (dbs, fingerprint, email, user_id,
- TOFU_POLICY_GOOD, 0, now) != 0)
+ TOFU_POLICY_GOOD, NULL, 0, now) != 0)
{
log_error (_("error setting TOFU binding's trust level"
" to %s\n"), "good");
@@ -2206,7 +2202,7 @@ get_trust (ctrl_t ctrl, PKT_public_key *pk,
if (is_signed_by_utk)
{
if (record_binding (dbs, fingerprint, email, user_id,
- TOFU_POLICY_GOOD, 0, now) != 0)
+ TOFU_POLICY_GOOD, NULL, 0, now) != 0)
{
log_error (_("error setting TOFU binding's trust level"
" to %s\n"), "good");
@@ -2246,7 +2242,7 @@ get_trust (ctrl_t ctrl, PKT_public_key *pk,
fingerprint, email);
if (record_binding (dbs, fingerprint, email, user_id,
- TOFU_POLICY_AUTO, 0, now) != 0)
+ TOFU_POLICY_AUTO, NULL, 0, now) != 0)
{
log_error (_("error setting TOFU binding's trust level to %s\n"),
"auto");
@@ -2275,7 +2271,7 @@ get_trust (ctrl_t ctrl, PKT_public_key *pk,
fingerprint, email);
if (record_binding (dbs, fingerprint, email, user_id,
- TOFU_POLICY_AUTO, 0, now) != 0)
+ TOFU_POLICY_AUTO, NULL, 0, now) != 0)
log_error (_("error setting TOFU binding's trust level to %s\n"),
"auto");
@@ -2297,7 +2293,10 @@ get_trust (ctrl_t ctrl, PKT_public_key *pk,
log_assert (policy == TOFU_POLICY_NONE);
if (record_binding (dbs, fingerprint, email, user_id,
- TOFU_POLICY_ASK, 0, now) != 0)
+ TOFU_POLICY_ASK,
+ conflict_set && conflict_set->next
+ ? conflict_set->next->d : NULL,
+ 0, now) != 0)
log_error (_("error setting TOFU binding's trust level to %s\n"),
"ask");
@@ -3378,7 +3377,7 @@ tofu_set_policy (ctrl_t ctrl, kbnode_t kb, enum tofu_policy policy)
email = email_from_user_id (user_id->name);
err = record_binding (dbs, fingerprint, email, user_id->name,
- policy, 1, now);
+ policy, NULL, 1, now);
if (err)
{
log_error (_("error setting policy for key %s, user id \"%s\": %s"),
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git
More information about the Pkg-gnupg-commit
mailing list