aboutsummaryrefslogtreecommitdiffstats
path: root/g10/cpr.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2025-08-28 12:41:31 +0000
committerWerner Koch <[email protected]>2025-08-28 12:47:56 +0000
commit48e5282c86c253789e7e4f8bfc0930ce07037acc (patch)
tree4fa995020583f5b40935f3490864ded09a7daf9e /g10/cpr.c
parentgpg: Change the ADSK key binding time to the current time. (diff)
downloadgnupg-48e5282c86c253789e7e4f8bfc0930ce07037acc.tar.gz
gnupg-48e5282c86c253789e7e4f8bfc0930ce07037acc.zip
gpg: New option --auto-key-upload
* g10/options.h (opt.flags): Add member auto_key_upload. (EXPORT_NO_STATUS): New. (KEYSERVER_LDAP_ONLY): New. (KEYSERVER_WARN_ONLY): New. * g10/gpg.c (oAutoKeyUpload): New. (opts): New option --auto-key-upload. (main): Set option. * g10/keyserver.c (keyserver_export_pubkey): New. (keyserver_put): Take care of the WARN_ONLY and LDAP_ONLY options. Delay printing of the EXPORTED status. * g10/keygen.c (do_generate_keypair): Export new key if option is set. * g10/export.c (do_export_one_keyblock): Take care of the NO_STATUS option. (print_status_exported): Move function to ... * g10/cpr.c (write_status_warning): here and make public. -- This change also fixes a bug with --send-key which used to emit an EXPORTED line before actually sending the key to the dirmngr. Thus if the upload failed a EXPORTED status has already been emitted. GnuPG-bug-id: 7333 This is the first part which handles the new key case. We also need to implement an upload after key modifications.
Diffstat (limited to 'g10/cpr.c')
-rw-r--r--g10/cpr.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/g10/cpr.c b/g10/cpr.c
index 79eff3143..28cba698f 100644
--- a/g10/cpr.c
+++ b/g10/cpr.c
@@ -280,6 +280,19 @@ write_status_printf (int no, const char *format, ...)
g10_exit (0);
}
+/* Write a WARNING status line using a full gpg-error error value. */
+void
+write_status_warning (const char *where, gpg_error_t err)
+{
+ if (!statusfp || !status_currently_allowed (STATUS_WARNING))
+ return; /* Not enabled or allowed. */
+
+ es_fprintf (statusfp, "[GNUPG:] %s %s %u\n",
+ get_status_string (STATUS_WARNING), where, err);
+ if (es_fflush (statusfp) && opt.exit_on_status_write_error)
+ g10_exit (0);
+}
+
/* Write an ERROR status line using a full gpg-error error value. */
void