aboutsummaryrefslogtreecommitdiffstats
path: root/src/gpgme.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpgme.c')
-rw-r--r--src/gpgme.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/gpgme.c b/src/gpgme.c
index 70f93f1a..b6c79a0d 100644
--- a/src/gpgme.c
+++ b/src/gpgme.c
@@ -265,13 +265,14 @@ gpgme_set_protocol (gpgme_ctx_t ctx, gpgme_protocol_t protocol)
{
TRACE_BEG2 (DEBUG_CTX, "gpgme_set_protocol", ctx, "protocol=%i (%s)",
protocol, gpgme_get_protocol_name (protocol)
- ? gpgme_get_protocol_name (protocol) : "unknown");
+ ? gpgme_get_protocol_name (protocol) : "invalid");
if (protocol != GPGME_PROTOCOL_OpenPGP
&& protocol != GPGME_PROTOCOL_CMS
&& protocol != GPGME_PROTOCOL_GPGCONF
&& protocol != GPGME_PROTOCOL_ASSUAN
- && protocol != GPGME_PROTOCOL_G13)
+ && protocol != GPGME_PROTOCOL_G13
+ && protocol != GPGME_PROTOCOL_UISERVER)
return TRACE_ERR (gpg_error (GPG_ERR_INV_VALUE));
if (ctx->protocol != protocol)
@@ -296,11 +297,24 @@ gpgme_get_protocol (gpgme_ctx_t ctx)
TRACE2 (DEBUG_CTX, "gpgme_get_protocol", ctx,
"ctx->protocol=%i (%s)", ctx->protocol,
gpgme_get_protocol_name (ctx->protocol)
- ? gpgme_get_protocol_name (ctx->protocol) : "unknown");
+ ? gpgme_get_protocol_name (ctx->protocol) : "invalid");
return ctx->protocol;
}
+gpgme_error_t
+gpgme_set_sub_protocol (gpgme_ctx_t ctx, gpgme_protocol_t protocol)
+{
+ gpgme_error_t err;
+ TRACE_BEG2 (DEBUG_CTX, "gpgme_set_sub_protocol", ctx, "protocol=%i (%s)",
+ protocol, gpgme_get_protocol_name (protocol)
+ ? gpgme_get_protocol_name (protocol) : "invalid");
+
+ err = _gpgme_engine_set_protocol (ctx->engine, protocol);
+ return TRACE_ERR (err);
+}
+
+
const char *
gpgme_get_protocol_name (gpgme_protocol_t protocol)
{
@@ -321,6 +335,12 @@ gpgme_get_protocol_name (gpgme_protocol_t protocol)
case GPGME_PROTOCOL_G13:
return "G13";
+ case GPGME_PROTOCOL_UISERVER:
+ return "UIServer";
+
+ case GPGME_PROTOCOL_DEFAULT:
+ return "default";
+
case GPGME_PROTOCOL_UNKNOWN:
return "unknown";