diff --git a/g10/call-dirmngr.c b/g10/call-dirmngr.c index e452c971e..df19e4c00 100644 --- a/g10/call-dirmngr.c +++ b/g10/call-dirmngr.c @@ -176,6 +176,22 @@ create_context (ctrl_t ctrl, assuan_context_t *r_ctx) xfree (line); } } + + if (err) + ; + else if ((opt.keyserver_options.options & KEYSERVER_HONOR_KEYSERVER_URL)) + { + /* Tell the dirmngr that this possibly privacy invading + option is in use. If Dirmngr is running in TOR mode, it + will return an error. */ + err = assuan_transact (ctx, "OPTION honor-keyserver-url-used", + NULL, NULL, NULL, NULL, NULL, NULL); + if (gpg_err_code (err) == GPG_ERR_FORBIDDEN) + log_error (_("keyserver option \"honor-keyserver-url\"" + " may not be used in TOR mode\n")); + else if (gpg_err_code (err) == GPG_ERR_UNKNOWN_OPTION) + err = 0; /* Old dirmngr versions do not support this option. */ + } } if (err)