=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/servconf.c,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- src/usr.bin/ssh/servconf.c 2000/04/26 22:43:15 1.35 +++ src/usr.bin/ssh/servconf.c 2000/05/01 18:50:58 1.36 @@ -12,7 +12,7 @@ */ #include "includes.h" -RCSID("$Id: servconf.c,v 1.35 2000/04/26 22:43:15 markus Exp $"); +RCSID("$Id: servconf.c,v 1.36 2000/05/01 18:50:58 markus Exp $"); #include "ssh.h" #include "servconf.h" @@ -33,6 +33,7 @@ options->listen_addrs = NULL; options->host_key_file = NULL; options->dsa_key_file = NULL; + options->pid_file = NULL; options->server_key_bits = -1; options->login_grace_time = -1; options->key_regeneration_time = -1; @@ -84,6 +85,8 @@ options->host_key_file = HOST_KEY_FILE; if (options->dsa_key_file == NULL) options->dsa_key_file = DSA_KEY_FILE; + if (options->pid_file == NULL) + options->pid_file = SSH_DAEMON_PID_FILE; if (options->server_key_bits == -1) options->server_key_bits = 768; if (options->login_grace_time == -1) @@ -167,7 +170,7 @@ sPrintMotd, sIgnoreRhosts, sX11Forwarding, sX11DisplayOffset, sStrictModes, sEmptyPasswd, sRandomSeedFile, sKeepAlives, sCheckMail, sUseLogin, sAllowUsers, sDenyUsers, sAllowGroups, sDenyGroups, - sIgnoreUserKnownHosts, sDSAKeyFile, sCiphers, sProtocol + sIgnoreUserKnownHosts, sDSAKeyFile, sCiphers, sProtocol, sPidFile } ServerOpCodes; /* Textual representation of the tokens. */ @@ -178,6 +181,7 @@ { "port", sPort }, { "hostkey", sHostKeyFile }, { "dsakey", sDSAKeyFile }, + { "pidfile", sPidFile }, { "serverkeybits", sServerKeyBits }, { "logingracetime", sLoginGraceTime }, { "keyregenerationinterval", sKeyRegenerationTime }, @@ -355,7 +359,19 @@ cp = strtok(NULL, WHITESPACE); if (!cp) { fprintf(stderr, "%s line %d: missing file name.\n", - filename, linenum); + filename, linenum); + exit(1); + } + if (*charptr == NULL) + *charptr = tilde_expand_filename(cp, getuid()); + break; + + case sPidFile: + charptr = &options->pid_file; + cp = strtok(NULL, WHITESPACE); + if (!cp) { + fprintf(stderr, "%s line %d: missing file name.\n", + filename, linenum); exit(1); } if (*charptr == NULL)