aboutsummaryrefslogtreecommitdiffstats
path: root/dirmngr/ks-action.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2023-04-04 06:49:55 +0000
committerWerner Koch <[email protected]>2023-04-04 06:49:55 +0000
commit56d309133f0e54ac5e2f95871fb74f8cb97e2636 (patch)
tree79624645582e9dbe72b16287b553b37abfcfc724 /dirmngr/ks-action.c
parentagent: Add trustlist flag "de-vs". (diff)
downloadgnupg-56d309133f0e54ac5e2f95871fb74f8cb97e2636.tar.gz
gnupg-56d309133f0e54ac5e2f95871fb74f8cb97e2636.zip
dirmngr: Return modifyTimestamp and add server option --newer.
* dirmngr/server.c (cmd_ks_get): Add option --newer. (cmd_ad_query): Ditto. * dirmngr/ldap-misc.c (isotime2rfc4517): New. (rfc4517toisotime): New. * dirmngr/ks-action.c (ks_action_get): Add arg newer and pass on. (ks_action_query): Ditto. * dirmngr/ks-engine-ldap.c (extract_keys): Print new "chg" record. (ks_ldap_get): Add arg newer. Modify filter with newer arg. (ks_ldap_search): Print the modifyTimestamp. (ks_ldap_query): Add arg newer. Modify filter with newer arg. -- Note that the modifyTimestamp is also available on Windows, where its value is more commonly known as whenChanged. Both are constructed attributes. Note that the --newer option is a bit of a misnomer because LDAP has only a greater-or-equal and no greater-than operator.
Diffstat (limited to 'dirmngr/ks-action.c')
-rw-r--r--dirmngr/ks-action.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/dirmngr/ks-action.c b/dirmngr/ks-action.c
index 6b5f78f49..002f1a7a5 100644
--- a/dirmngr/ks-action.c
+++ b/dirmngr/ks-action.c
@@ -337,7 +337,8 @@ ks_action_search (ctrl_t ctrl, uri_item_t keyservers,
keyservers and write the result to the provided output stream. */
gpg_error_t
ks_action_get (ctrl_t ctrl, uri_item_t keyservers,
- strlist_t patterns, unsigned int ks_get_flags, estream_t outfp)
+ strlist_t patterns, unsigned int ks_get_flags,
+ gnupg_isotime_t newer, estream_t outfp)
{
gpg_error_t err = 0;
gpg_error_t first_err = 0;
@@ -382,7 +383,7 @@ ks_action_get (ctrl_t ctrl, uri_item_t keyservers,
#if USE_LDAP
if (is_ldap)
err = ks_ldap_get (ctrl, uri->parsed_uri, sl->d, ks_get_flags,
- &infp);
+ newer, &infp);
else
#endif
if (is_hkp_s)
@@ -549,7 +550,8 @@ ks_action_put (ctrl_t ctrl, uri_item_t keyservers,
* the filter expression FILTER. Write the result to OUTFP. */
gpg_error_t
ks_action_query (ctrl_t ctrl, const char *url, unsigned int ks_get_flags,
- const char *filter, char **attrs, estream_t outfp)
+ const char *filter, char **attrs,
+ gnupg_isotime_t newer, estream_t outfp)
{
#if USE_LDAP
gpg_error_t err;
@@ -576,7 +578,7 @@ ks_action_query (ctrl_t ctrl, const char *url, unsigned int ks_get_flags,
|| puri->parsed_uri->opaque)
{
err = ks_ldap_query (ctrl, puri->parsed_uri, ks_get_flags, filter,
- attrs, &infp);
+ attrs, newer, &infp);
if (!err)
err = copy_stream (infp, outfp);
}