]>
Commit | Line | Data |
---|---|---|
ae43c103 | 1 | #include "includes.h" |
2 | #include "xmalloc.h" | |
3 | #include "log.h" | |
4 | ||
5 | #define BINDIR "/bin" | |
6 | #define LIBEXEC "/libexec" | |
7 | #define SSHDIR "/etc/ssh" | |
d7766c89 | 8 | #define VARDIR "/var" |
ae43c103 | 9 | |
a81d7068 | 10 | #define STRINIT "init_pathnames() not called!" |
11 | ||
12 | char *SSH_PRNG_COMMAND_FILE = STRINIT; | |
13 | char *_PATH_SSH_SYSTEM_HOSTFILE = STRINIT; | |
14 | char *_PATH_SSH_SYSTEM_HOSTFILE2 = STRINIT; | |
15 | char *_PATH_SERVER_CONFIG_FILE = STRINIT; | |
16 | char *_PATH_HOST_CONFIG_FILE = STRINIT; | |
17 | char *_PATH_HOST_KEY_FILE = STRINIT; | |
18 | char *_PATH_HOST_DSA_KEY_FILE = STRINIT; | |
19 | char *_PATH_HOST_RSA_KEY_FILE = STRINIT; | |
20 | char *_PATH_DH_MODULI = STRINIT; | |
21 | char *_PATH_DH_PRIMES = STRINIT; | |
22 | char *_PATH_SSH_PROGRAM = STRINIT; | |
d7766c89 | 23 | char *_PATH_SSH_DAEMON_PID_FILE = STRINIT; |
a81d7068 | 24 | char *_PATH_SSH_SYSTEM_RC = STRINIT; |
25 | char *_PATH_SSH_HOSTS_EQUIV = STRINIT; | |
b2393c9a | 26 | char *_PATH_SSH_KEY_SIGN = STRINIT; |
a81d7068 | 27 | char *_PATH_SFTP_SERVER = STRINIT; |
28 | char *SSH_RAND_HELPER = STRINIT; | |
29 | char *_PATH_STDPATH_WITH_SCP = STRINIT; | |
ae43c103 | 30 | |
31 | static char * | |
a81d7068 | 32 | compose3(const char str1[], const char str2[], const char str3[]) |
ae43c103 | 33 | { |
34 | int len; | |
35 | char *result; | |
36 | ||
37 | len = strlen(str1) + strlen(str2) + strlen(str3) + 1; | |
38 | result = xmalloc(len); | |
39 | snprintf(result, len, "%s%s%s", str1, str2, str3); | |
40 | ||
41 | return result; | |
42 | } | |
43 | ||
a81d7068 | 44 | static char * |
45 | compose4(const char str1[], const char str2[], const char str3[], | |
46 | const char str4[]) | |
47 | { | |
48 | int len; | |
49 | char *result; | |
50 | ||
51 | len = strlen(str1) + strlen(str2) + strlen(str3) + strlen(str4) + 1; | |
52 | result = xmalloc(len); | |
53 | snprintf(result, len, "%s%s%s%s", str1, str2, str3, str4); | |
54 | ||
55 | return result; | |
56 | } | |
57 | ||
ae43c103 | 58 | void |
59 | init_pathnames() | |
60 | { | |
61 | char *gl; | |
62 | ||
63 | gl = getenv("GLOBUS_LOCATION"); | |
64 | if (gl == NULL) { | |
65 | fatal("GLOBUS_LOCATION environment variable undefined."); | |
66 | } | |
67 | ||
a81d7068 | 68 | /* lots of one time memory leaks here */ |
69 | SSH_PRNG_COMMAND_FILE = compose3(gl, SSHDIR, "/ssh_prng_cmds"); | |
70 | _PATH_SSH_SYSTEM_HOSTFILE = compose3(gl, SSHDIR, "/ssh_known_hosts"); | |
71 | _PATH_SSH_SYSTEM_HOSTFILE2 = compose3(gl, SSHDIR, "/ssh_known_hosts2"); | |
72 | _PATH_SERVER_CONFIG_FILE = compose3(gl, SSHDIR, "/sshd_config"); | |
73 | _PATH_HOST_CONFIG_FILE = compose3(gl, SSHDIR, "/ssh_config"); | |
74 | _PATH_HOST_KEY_FILE = compose3(gl, SSHDIR, "/ssh_host_key"); | |
75 | _PATH_HOST_DSA_KEY_FILE = compose3(gl, SSHDIR, "/ssh_host_dsa_key"); | |
76 | _PATH_HOST_RSA_KEY_FILE = compose3(gl, SSHDIR, "/ssh_host_rsa_key"); | |
77 | _PATH_DH_MODULI = compose3(gl, SSHDIR, "/moduli"); | |
78 | _PATH_DH_PRIMES = compose3(gl, SSHDIR, "/primes"); | |
5d0b2e48 | 79 | _PATH_SSH_PROGRAM = compose3(gl, BINDIR, "/gsissh"); |
d7766c89 | 80 | _PATH_SSH_DAEMON_PID_FILE = compose3(gl, VARDIR, "/sshd.pid"); |
a81d7068 | 81 | _PATH_SSH_SYSTEM_RC = compose3(gl, SSHDIR, "/sshrc"); |
82 | _PATH_SSH_HOSTS_EQUIV = compose3(gl, SSHDIR, "/shosts.equiv"); | |
b2393c9a | 83 | _PATH_SSH_KEY_SIGN = compose3(gl, LIBEXEC, "/ssh-keysign"); |
a81d7068 | 84 | _PATH_SFTP_SERVER = compose3(gl, LIBEXEC, "/sftp-server"); |
85 | SSH_RAND_HELPER = compose3(gl, LIBEXEC, "/ssh-rand-helper"); | |
86 | _PATH_STDPATH_WITH_SCP = compose4(_PATH_STDPATH, ":", gl, BINDIR); | |
ae43c103 | 87 | } |