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