version 1.90, 2002/06/09 13:32:01 |
version 1.91, 2002/06/11 05:46:20 |
|
|
format = c_flag ? "unsetenv %s;\n" : "unset %s;\n"; |
format = c_flag ? "unsetenv %s;\n" : "unset %s;\n"; |
printf(format, SSH_AUTHSOCKET_ENV_NAME); |
printf(format, SSH_AUTHSOCKET_ENV_NAME); |
printf(format, SSH_AGENTPID_ENV_NAME); |
printf(format, SSH_AGENTPID_ENV_NAME); |
printf("echo Agent pid %d killed;\n", pid); |
printf("echo Agent pid %ld killed;\n", (long)pid); |
exit(0); |
exit(0); |
} |
} |
parent_pid = getpid(); |
parent_pid = getpid(); |
|
|
perror("mkdtemp: private socket dir"); |
perror("mkdtemp: private socket dir"); |
exit(1); |
exit(1); |
} |
} |
snprintf(socket_name, sizeof socket_name, "%s/agent.%d", socket_dir, |
snprintf(socket_name, sizeof socket_name, "%s/agent.%ld", socket_dir, |
parent_pid); |
(long)parent_pid); |
} else { |
} else { |
/* Try to use specified agent socket */ |
/* Try to use specified agent socket */ |
socket_dir[0] = '\0'; |
socket_dir[0] = '\0'; |
|
|
format = c_flag ? "setenv %s %s;\n" : "%s=%s; export %s;\n"; |
format = c_flag ? "setenv %s %s;\n" : "%s=%s; export %s;\n"; |
printf(format, SSH_AUTHSOCKET_ENV_NAME, socket_name, |
printf(format, SSH_AUTHSOCKET_ENV_NAME, socket_name, |
SSH_AUTHSOCKET_ENV_NAME); |
SSH_AUTHSOCKET_ENV_NAME); |
printf("echo Agent pid %d;\n", parent_pid); |
printf("echo Agent pid %ld;\n", (long)parent_pid); |
goto skip; |
goto skip; |
} |
} |
pid = fork(); |
pid = fork(); |
|
|
} |
} |
if (pid != 0) { /* Parent - execute the given command. */ |
if (pid != 0) { /* Parent - execute the given command. */ |
close(sock); |
close(sock); |
snprintf(pidstrbuf, sizeof pidstrbuf, "%d", pid); |
snprintf(pidstrbuf, sizeof pidstrbuf, "%ld", (long)pid); |
if (ac == 0) { |
if (ac == 0) { |
format = c_flag ? "setenv %s %s;\n" : "%s=%s; export %s;\n"; |
format = c_flag ? "setenv %s %s;\n" : "%s=%s; export %s;\n"; |
printf(format, SSH_AUTHSOCKET_ENV_NAME, socket_name, |
printf(format, SSH_AUTHSOCKET_ENV_NAME, socket_name, |
SSH_AUTHSOCKET_ENV_NAME); |
SSH_AUTHSOCKET_ENV_NAME); |
printf(format, SSH_AGENTPID_ENV_NAME, pidstrbuf, |
printf(format, SSH_AGENTPID_ENV_NAME, pidstrbuf, |
SSH_AGENTPID_ENV_NAME); |
SSH_AGENTPID_ENV_NAME); |
printf("echo Agent pid %d;\n", pid); |
printf("echo Agent pid %ld;\n", (long)pid); |
exit(0); |
exit(0); |
} |
} |
if (setenv(SSH_AUTHSOCKET_ENV_NAME, socket_name, 1) == -1 || |
if (setenv(SSH_AUTHSOCKET_ENV_NAME, socket_name, 1) == -1 || |