summaryrefslogtreecommitdiffstats
path: root/g10
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2017-03-03 09:22:40 +0100
committerWerner Koch <wk@gnupg.org>2017-03-03 09:22:40 +0100
commit1813f3be23bdab5a42070424c47cb8daa9d9e6b7 (patch)
treec0b5dff0ef9852ffa5bbed318bbc81765cee3396 /g10
parenttools: Fix compile error with older gcc versions. (diff)
downloadgnupg2-1813f3be23bdab5a42070424c47cb8daa9d9e6b7.tar.xz
gnupg2-1813f3be23bdab5a42070424c47cb8daa9d9e6b7.zip
gpg: Add new variables to the import and export filters.
* g10/import.c (impex_filter_getval): Add new variables "expired", "revoked", and "disabled". Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'g10')
-rw-r--r--g10/export.c2
-rw-r--r--g10/import.c41
2 files changed, 35 insertions, 8 deletions
diff --git a/g10/export.c b/g10/export.c
index 413826153..323bf1742 100644
--- a/g10/export.c
+++ b/g10/export.c
@@ -1377,7 +1377,7 @@ apply_drop_subkey_filter (kbnode_t keyblock, recsel_expr_t selector)
{
if (recsel_select (selector, impex_filter_getval, node))
{
- log_debug ("drop-subkey: deleting a key\n");
+ /*log_debug ("drop-subkey: deleting a key\n");*/
/* The subkey packet and all following packets up to the
* next subkey. */
delete_kbnode (node);
diff --git a/g10/import.c b/g10/import.c
index 45ec07a49..9fd16c87f 100644
--- a/g10/import.c
+++ b/g10/import.c
@@ -1164,7 +1164,7 @@ check_prefs (ctrl_t ctrl, kbnode_t keyblock)
}
-/* Helper for apply_*_filter in im,port.c and export.c. */
+/* Helper for apply_*_filter in import.c and export.c. */
const char *
impex_filter_getval (void *cookie, const char *propname)
{
@@ -1175,19 +1175,30 @@ impex_filter_getval (void *cookie, const char *propname)
if (node->pkt->pkttype == PKT_USER_ID)
{
+ PKT_user_id *uid = node->pkt->pkt.user_id;
+
if (!strcmp (propname, "uid"))
- result = node->pkt->pkt.user_id->name;
+ result = uid->name;
else if (!strcmp (propname, "mbox"))
{
- if (!node->pkt->pkt.user_id->mbox)
+ if (!uid->mbox)
{
- node->pkt->pkt.user_id->mbox
- = mailbox_from_userid (node->pkt->pkt.user_id->name);
+ uid->mbox = mailbox_from_userid (uid->name);
}
- result = node->pkt->pkt.user_id->mbox;
+ result = uid->mbox;
}
else if (!strcmp (propname, "primary"))
- result = node->pkt->pkt.user_id->is_primary? "1":"0";
+ {
+ result = uid->is_primary? "1":"0";
+ }
+ else if (!strcmp (propname, "expired"))
+ {
+ result = uid->is_expired? "1":"0";
+ }
+ else if (!strcmp (propname, "revoked"))
+ {
+ result = uid->is_revoked? "1":"0";
+ }
else
result = NULL;
}
@@ -1215,6 +1226,10 @@ impex_filter_getval (void *cookie, const char *propname)
snprintf (numbuf, sizeof numbuf, "%d", sig->digest_algo);
result = numbuf;
}
+ else if (!strcmp (propname, "expired"))
+ {
+ result = sig->flags.expired? "1":"0";
+ }
else
result = NULL;
}
@@ -1244,6 +1259,18 @@ impex_filter_getval (void *cookie, const char *propname)
{
result = datestr_from_pk (pk);
}
+ else if (!strcmp (propname, "expired"))
+ {
+ result = pk->has_expired? "1":"0";
+ }
+ else if (!strcmp (propname, "revoked"))
+ {
+ result = pk->flags.revoked? "1":"0";
+ }
+ else if (!strcmp (propname, "disabled"))
+ {
+ result = pk_is_disabled (pk)? "1":"0";
+ }
else
result = NULL;
}