Add -N "no remote command" dbclient option.

Document -N in dbclient.1 and -P in dropbear.8

--HG--
extra : convert_revision : 7cada79bf8f61e09a72e5d492170bd10ab0acee3
This commit is contained in:
Matt Johnston 2006-06-07 15:01:20 +00:00
parent 1428c01a5f
commit be2b7d9725
6 changed files with 19 additions and 5 deletions

View File

@ -50,6 +50,7 @@ static void printhelp() {
"-l <username>\n" "-l <username>\n"
"-t Allocate a pty\n" "-t Allocate a pty\n"
"-T Don't allocate a pty\n" "-T Don't allocate a pty\n"
"-N Don't run a remote command\n"
#ifdef ENABLE_CLI_PUBKEY_AUTH #ifdef ENABLE_CLI_PUBKEY_AUTH
"-i <identityfile> (multiple allowed)\n" "-i <identityfile> (multiple allowed)\n"
#endif #endif
@ -88,6 +89,7 @@ void cli_getopts(int argc, char ** argv) {
cli_opts.remoteport = NULL; cli_opts.remoteport = NULL;
cli_opts.username = NULL; cli_opts.username = NULL;
cli_opts.cmd = NULL; cli_opts.cmd = NULL;
cli_opts.no_cmd = 0;
cli_opts.wantpty = 9; /* 9 means "it hasn't been touched", gets set later */ cli_opts.wantpty = 9; /* 9 means "it hasn't been touched", gets set later */
#ifdef ENABLE_CLI_PUBKEY_AUTH #ifdef ENABLE_CLI_PUBKEY_AUTH
cli_opts.privkeys = NULL; cli_opts.privkeys = NULL;
@ -163,6 +165,9 @@ void cli_getopts(int argc, char ** argv) {
case 'T': /* don't want a pty */ case 'T': /* don't want a pty */
cli_opts.wantpty = 0; cli_opts.wantpty = 0;
break; break;
case 'N':
cli_opts.no_cmd = 1;
break;
#ifdef ENABLE_CLI_LOCALTCPFWD #ifdef ENABLE_CLI_LOCALTCPFWD
case 'L': case 'L':
nextislocal = 1; nextislocal = 1;

View File

@ -218,13 +218,15 @@ static void cli_sessionloop() {
#ifdef ENABLE_CLI_REMOTETCPFWD #ifdef ENABLE_CLI_REMOTETCPFWD
setup_remotetcp(); setup_remotetcp();
#endif #endif
cli_send_chansess_request(); if (!cli_opts.no_cmd) {
TRACE(("leave cli_sessionloop: cli_send_chansess_request")) cli_send_chansess_request();
}
TRACE(("leave cli_sessionloop: running"))
cli_ses.state = SESSION_RUNNING; cli_ses.state = SESSION_RUNNING;
return; return;
case SESSION_RUNNING: case SESSION_RUNNING:
if (ses.chancount < 1) { if (ses.chancount < 1 && !cli_opts.no_cmd) {
cli_finished(); cli_finished();
} }

View File

@ -60,6 +60,9 @@ Allocate a pty.
.B \-T .B \-T
Don't allocate a pty. Don't allocate a pty.
.TP .TP
.B \-N
Don't request a remote shell or run any commands. Any command arguments are ignored.
.TP
.B \-g .B \-g
Allow non-local hosts to connect to forwarded ports. Applies to -L and -R Allow non-local hosts to connect to forwarded ports. Applies to -L and -R
forwarded ports, though remote connections to -R forwarded ports may be limited forwarded ports, though remote connections to -R forwarded ports may be limited

View File

@ -72,6 +72,10 @@ Use this option to run
under TCP/IP servers like inetd, tcpsvd, or tcpserver. under TCP/IP servers like inetd, tcpsvd, or tcpserver.
In program mode the \-F option is implied, and \-p options are ignored. In program mode the \-F option is implied, and \-p options are ignored.
.TP .TP
.B \-P \fIpidfile
Specify a pidfile to create when running as a daemon. If not specified, the
default is /var/run/dropbear.pid
.TP
.B \-a .B \-a
Allow remote hosts to connect to forwarded ports. Allow remote hosts to connect to forwarded ports.
.SH AUTHOR .SH AUTHOR

View File

@ -321,8 +321,7 @@ static void printpubkey(sign_key * key, int keytype) {
/* a user@host comment is informative */ /* a user@host comment is informative */
username = ""; username = "";
pw = getpwuid(getuid()); pw = getpwuid(getuid());
if (pw) if (pw) {
{
username = pw->pw_name; username = pw->pw_name;
} }

View File

@ -102,6 +102,7 @@ typedef struct cli_runopts {
char *cmd; char *cmd;
int wantpty; int wantpty;
int no_cmd;
#ifdef ENABLE_CLI_PUBKEY_AUTH #ifdef ENABLE_CLI_PUBKEY_AUTH
struct SignKeyList *privkeys; /* Keys to use for public-key auth */ struct SignKeyList *privkeys; /* Keys to use for public-key auth */
#endif #endif