diff options
author | Matt Johnston <matt@ucc.asn.au> | 2006-06-07 14:10:21 +0000 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2006-06-07 14:10:21 +0000 |
commit | 4aafeb0da2462faa3e4b191cd56ed6bba362e0fa (patch) | |
tree | b7e2bc2e6e97881090ace578e1d3acb173f37cdd | |
parent | 32af5c267e44c5edb20e02b6de066021e4c58b30 (diff) |
Add -P pidfile patch from Swen Schillig
--HG--
extra : convert_revision : 2dd1bf9162d8fc4c14b33c5b3c6ca3cbe2ecd587
-rw-r--r-- | runopts.h | 1 | ||||
-rw-r--r-- | svr-main.c | 4 | ||||
-rw-r--r-- | svr-runopts.c | 8 |
3 files changed, 10 insertions, 3 deletions
@@ -83,6 +83,7 @@ typedef struct svr_runopts { sign_key *hostkey; buffer * banner; + char * pidfile; } svr_runopts; @@ -146,7 +146,7 @@ void main_noinetd() { } /* create a PID file so that we can be killed easily */ - pidfile = fopen(DROPBEAR_PIDFILE, "w"); + pidfile = fopen(svr_opts.pidfile, "w"); if (pidfile) { fprintf(pidfile, "%d\n", getpid()); fclose(pidfile); @@ -189,7 +189,7 @@ void main_noinetd() { val = select(maxsock+1, &fds, NULL, NULL, &seltimeout); if (exitflag) { - unlink(DROPBEAR_PIDFILE); + unlink(svr_opts.pidfile); dropbear_exit("Terminated by signal"); } diff --git a/svr-runopts.c b/svr-runopts.c index 8d8b8df..784e0ca 100644 --- a/svr-runopts.c +++ b/svr-runopts.c @@ -72,6 +72,8 @@ static void printhelp(const char * progname) { #endif "-p port Listen on specified tcp port, up to %d can be specified\n" " (default %s if none specified)\n" + "-P PidFile Create pid file PidFile\n" + " (default %s)\n" #ifdef INETD_MODE "-i Start for inetd\n" #endif @@ -85,7 +87,7 @@ static void printhelp(const char * progname) { #ifdef DROPBEAR_RSA RSA_PRIV_FILENAME, #endif - DROPBEAR_MAX_PORTS, DROPBEAR_DEFPORT); + DROPBEAR_MAX_PORTS, DROPBEAR_DEFPORT, DROPBEAR_PIDFILE); } void svr_getopts(int argc, char ** argv) { @@ -105,6 +107,7 @@ void svr_getopts(int argc, char ** argv) { svr_opts.inetdmode = 0; svr_opts.portcount = 0; svr_opts.hostkey = NULL; + svr_opts.pidfile = DROPBEAR_PIDFILE; #ifdef ENABLE_SVR_LOCALTCPFWD svr_opts.nolocaltcp = 0; #endif @@ -185,6 +188,9 @@ void svr_getopts(int argc, char ** argv) { svr_opts.portcount++; } break; + case 'P': + next = &svr_opts.pidfile; + break; #ifdef DO_MOTD /* motd is displayed by default, -m turns it off */ case 'm': |