mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-09 18:04:25 +09:00
Move torture_setup_ssh_agent() and torture_cleanup_ssh_agent() to torture.c
Signed-off-by: salonidabgar <salonidabgar@gmail.com> Reviewed-by: Jakub Jelen <jjelen@redhat.com>
This commit is contained in:
committed by
Jakub Jelen
parent
d1c2d3db9d
commit
47db54b7c1
@@ -108,11 +108,8 @@ static int pubkey_setup(void **state)
|
||||
static int agent_setup(void **state)
|
||||
{
|
||||
struct torture_state *s = *state;
|
||||
char ssh_agent_cmd[4096];
|
||||
char ssh_agent_sock[1024];
|
||||
char ssh_agent_pidfile[1024];
|
||||
char ssh_key_add[1024];
|
||||
struct passwd *pwd;
|
||||
char ssh_key_path[1024];
|
||||
int rc;
|
||||
|
||||
rc = pubkey_setup(state);
|
||||
@@ -123,45 +120,18 @@ static int agent_setup(void **state)
|
||||
pwd = getpwnam("bob");
|
||||
assert_non_null(pwd);
|
||||
|
||||
snprintf(ssh_agent_sock,
|
||||
sizeof(ssh_agent_sock),
|
||||
"%s/agent.sock",
|
||||
s->socket_dir);
|
||||
|
||||
snprintf(ssh_agent_pidfile,
|
||||
sizeof(ssh_agent_pidfile),
|
||||
"%s/agent.pid",
|
||||
s->socket_dir);
|
||||
|
||||
/* Production ready code!!! */
|
||||
snprintf(ssh_agent_cmd,
|
||||
sizeof(ssh_agent_cmd),
|
||||
"eval `ssh-agent -a %s`; echo $SSH_AGENT_PID > %s",
|
||||
ssh_agent_sock, ssh_agent_pidfile);
|
||||
|
||||
/* run ssh-agent and ssh-add as the normal user */
|
||||
unsetenv("UID_WRAPPER_ROOT");
|
||||
|
||||
rc = system(ssh_agent_cmd);
|
||||
assert_return_code(rc, errno);
|
||||
|
||||
setenv("SSH_AUTH_SOCK", ssh_agent_sock, 1);
|
||||
setenv("TORTURE_SSH_AGENT_PIDFILE", ssh_agent_pidfile, 1);
|
||||
|
||||
snprintf(ssh_key_add,
|
||||
sizeof(ssh_key_add),
|
||||
"ssh-add %s/.ssh/id_rsa",
|
||||
pwd->pw_dir);
|
||||
|
||||
rc = system(ssh_key_add);
|
||||
assert_return_code(rc, errno);
|
||||
/* Use the common function to set up the SSH agent with Bob's key */
|
||||
snprintf(ssh_key_path, sizeof(ssh_key_path), "%s/.ssh/id_rsa", pwd->pw_dir);
|
||||
rc = torture_setup_ssh_agent(s, ssh_key_path);
|
||||
if (rc != 0) {
|
||||
return rc;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int agent_teardown(void **state)
|
||||
{
|
||||
const char *ssh_agent_pidfile;
|
||||
int rc;
|
||||
|
||||
rc = session_teardown(state);
|
||||
@@ -169,17 +139,11 @@ static int agent_teardown(void **state)
|
||||
return rc;
|
||||
}
|
||||
|
||||
ssh_agent_pidfile = getenv("TORTURE_SSH_AGENT_PIDFILE");
|
||||
assert_non_null(ssh_agent_pidfile);
|
||||
|
||||
/* kill agent pid */
|
||||
rc = torture_terminate_process(ssh_agent_pidfile);
|
||||
assert_return_code(rc, errno);
|
||||
|
||||
unlink(ssh_agent_pidfile);
|
||||
|
||||
unsetenv("TORTURE_SSH_AGENT_PIDFILE");
|
||||
unsetenv("SSH_AUTH_SOCK");
|
||||
/* Use the common function to clean up the SSH agent */
|
||||
rc = torture_cleanup_ssh_agent();
|
||||
if (rc != 0) {
|
||||
return rc;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user