diff options
Diffstat (limited to 'agent/command.c')
-rw-r--r-- | agent/command.c | 21 |
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 |