mirror of
git://git.gnupg.org/gnupg.git
synced 2025-02-08 17:43:04 +01:00
agent,dirmngr: Add "getenv" to the getinfo command.
* agent/command.c (cmd_getinfo): Add sub-command getenv. * dirmngr/server.c (cmd_getinfo): Ditto. -- It is sometimes helpful to be able to inspect certain envvars in a running agent. For example "http_proxy". Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
327fece0ae
commit
bbb5bfacc0
@ -2825,6 +2825,7 @@ static const char hlp_getinfo[] =
|
|||||||
" std_env_names - List the names of the standard environment.\n"
|
" std_env_names - List the names of the standard environment.\n"
|
||||||
" std_session_env - List the standard session environment.\n"
|
" std_session_env - List the standard session environment.\n"
|
||||||
" std_startup_env - List the standard startup environment.\n"
|
" std_startup_env - List the standard startup environment.\n"
|
||||||
|
" getenv NAME - Return value of envvar NAME.\n"
|
||||||
" connections - Return number of active connections.\n"
|
" connections - Return number of active connections.\n"
|
||||||
" jent_active - Returns OK if Libgcrypt's JENT is active.\n"
|
" jent_active - Returns OK if Libgcrypt's JENT is active.\n"
|
||||||
" restricted - Returns OK if the connection is in restricted mode.\n"
|
" restricted - Returns OK if the connection is in restricted mode.\n"
|
||||||
@ -2961,6 +2962,23 @@ cmd_getinfo (assuan_context_t ctx, char *line)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (!strncmp (line, "getenv", 6)
|
||||||
|
&& (line[6] == ' ' || line[6] == '\t' || !line[6]))
|
||||||
|
{
|
||||||
|
line += 6;
|
||||||
|
while (*line == ' ' || *line == '\t')
|
||||||
|
line++;
|
||||||
|
if (!*line)
|
||||||
|
rc = gpg_error (GPG_ERR_MISSING_VALUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const char *s = getenv (line);
|
||||||
|
if (!s)
|
||||||
|
rc = set_error (GPG_ERR_NOT_FOUND, "No such envvar");
|
||||||
|
else
|
||||||
|
rc = assuan_send_data (ctx, s, strlen (s));
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (!strcmp (line, "connections"))
|
else if (!strcmp (line, "connections"))
|
||||||
{
|
{
|
||||||
char numbuf[20];
|
char numbuf[20];
|
||||||
|
@ -2489,7 +2489,8 @@ static const char hlp_getinfo[] =
|
|||||||
"dnsinfo - Return info about the DNS resolver\n"
|
"dnsinfo - Return info about the DNS resolver\n"
|
||||||
"socket_name - Return the name of the socket.\n"
|
"socket_name - Return the name of the socket.\n"
|
||||||
"session_id - Return the current session_id.\n"
|
"session_id - Return the current session_id.\n"
|
||||||
"workqueue - Inspect the work queue\n";
|
"workqueue - Inspect the work queue\n"
|
||||||
|
"getenv NAME - Return value of envvar NAME\n";
|
||||||
static gpg_error_t
|
static gpg_error_t
|
||||||
cmd_getinfo (assuan_context_t ctx, char *line)
|
cmd_getinfo (assuan_context_t ctx, char *line)
|
||||||
{
|
{
|
||||||
@ -2557,6 +2558,23 @@ cmd_getinfo (assuan_context_t ctx, char *line)
|
|||||||
workqueue_dump_queue (ctrl);
|
workqueue_dump_queue (ctrl);
|
||||||
err = 0;
|
err = 0;
|
||||||
}
|
}
|
||||||
|
else if (!strncmp (line, "getenv", 6)
|
||||||
|
&& (line[6] == ' ' || line[6] == '\t' || !line[6]))
|
||||||
|
{
|
||||||
|
line += 6;
|
||||||
|
while (*line == ' ' || *line == '\t')
|
||||||
|
line++;
|
||||||
|
if (!*line)
|
||||||
|
err = gpg_error (GPG_ERR_MISSING_VALUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const char *s = getenv (line);
|
||||||
|
if (!s)
|
||||||
|
err = set_error (GPG_ERR_NOT_FOUND, "No such envvar");
|
||||||
|
else
|
||||||
|
err = assuan_send_data (ctx, s, strlen (s));
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
err = set_error (GPG_ERR_ASS_PARAMETER, "unknown value for WHAT");
|
err = set_error (GPG_ERR_ASS_PARAMETER, "unknown value for WHAT");
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user