summaryrefslogtreecommitdiffstats
path: root/agent/command.c
diff options
context:
space:
mode:
Diffstat (limited to 'agent/command.c')
-rw-r--r--agent/command.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/agent/command.c b/agent/command.c
index 9be814880..c0c21bf79 100644
--- a/agent/command.c
+++ b/agent/command.c
@@ -1294,6 +1294,7 @@ cmd_updatestartuptty (assuan_context_t ctx, char *line)
xfree (opt.startup_ttytype); opt.startup_ttytype = NULL;
xfree (opt.startup_lc_ctype); opt.startup_lc_ctype = NULL;
xfree (opt.startup_lc_messages); opt.startup_lc_messages = NULL;
+ xfree (opt.startup_xauthority); opt.startup_xauthority = NULL;
if (ctrl->display)
opt.startup_display = xtrystrdup (ctrl->display);
@@ -1305,6 +1306,10 @@ cmd_updatestartuptty (assuan_context_t ctx, char *line)
opt.startup_lc_ctype = xtrystrdup (ctrl->lc_ctype);
if (ctrl->lc_messages)
opt.startup_lc_messages = xtrystrdup (ctrl->lc_messages);
+ if (ctrl->xauthority)
+ opt.startup_xauthority = xtrystrdup (ctrl->xauthority);
+ if (ctrl->pinentry_user_data)
+ opt.startup_pinentry_user_data = xtrystrdup (ctrl->pinentry_user_data);
return 0;
}
@@ -1442,6 +1447,22 @@ option_handler (assuan_context_t ctx, const char *key, const char *value)
if (!ctrl->lc_messages)
return out_of_core ();
}
+ else if (!strcmp (key, "xauthority"))
+ {
+ if (ctrl->xauthority)
+ free (ctrl->xauthority);
+ ctrl->xauthority = strdup (value);
+ if (!ctrl->xauthority)
+ return out_of_core ();
+ }
+ else if (!strcmp (key, "pinentry-user-data"))
+ {
+ if (ctrl->pinentry_user_data)
+ free (ctrl->pinentry_user_data);
+ ctrl->pinentry_user_data = strdup (value);
+ if (!ctrl->pinentry_user_data)
+ return out_of_core ();
+ }
else if (!strcmp (key, "use-cache-for-signing"))
ctrl->server_local->use_cache_for_signing = *value? atoi (value) : 0;
else