From ed0552f21417ffb90d52ac12becb03cf6a03e13c Mon Sep 17 00:00:00 2001 From: Matt Johnston Date: Sun, 27 Jul 2014 22:06:26 +0800 Subject: [PATCH] Add '-V' for version -h should exit with success Update manpages --- cli-runopts.c | 5 +++++ common-runopts.c | 5 +++++ dbclient.1 | 8 +++++--- dropbear.8 | 9 ++++++--- runopts.h | 2 ++ svr-runopts.c | 7 ++++++- 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/cli-runopts.c b/cli-runopts.c index f8e289b..5f36f7c 100644 --- a/cli-runopts.c +++ b/cli-runopts.c @@ -90,6 +90,7 @@ static void printhelp() { "-c Specify preferred ciphers ('-c help' to list options)\n" "-m Specify preferred MACs for packet verification (or '-m help')\n" #endif + "-V Version\n" #ifdef DEBUG_TRACE "-v verbose (compiled with DEBUG_TRACE)\n" #endif @@ -324,6 +325,10 @@ void cli_getopts(int argc, char ** argv) { #ifndef ENABLE_CLI_LOCALTCPFWD case 'L': #endif + case 'V': + print_version(); + exit(EXIT_SUCCESS); + break; case 'o': case 'b': next = &dummy; diff --git a/common-runopts.c b/common-runopts.c index 699ebda..cdac77e 100644 --- a/common-runopts.c +++ b/common-runopts.c @@ -106,3 +106,8 @@ parse_ciphers_macs() } #endif +void print_version(const char* name) { + fprintf(stderr, "Dropbear %s v%s\n", name, DROPBEAR_VERSION); +} + + diff --git a/dbclient.1 b/dbclient.1 index a6dff62..4502b23 100644 --- a/dbclient.1 +++ b/dbclient.1 @@ -19,8 +19,7 @@ dbclient \- lightweight SSH client .SH DESCRIPTION .B dbclient -is a SSH client designed to be small enough to be used in small memory -environments, while still being functional and secure enough for general use. +is a small SSH client .SH OPTIONS .TP .B \-p \fIport @@ -98,7 +97,7 @@ Ensure that traffic is transmitted at a certain interval in seconds. This is useful for working around firewalls or routers that drop connections after a certain period of inactivity. The trade-off is that a session may be closed if there is a temporary lapse of network connectivity. A setting -if 0 disables keepalives. +if 0 disables keepalives. If no response is received for 3 consecutive keepalives the connection will be closed. .TP .B \-I \fIidle_timeout Disconnect the session if no traffic is transmitted or received for \fIidle_timeout\fR seconds. @@ -121,6 +120,9 @@ Specify a comma separated list of authentication MACs to enable. Use \fI-m help\ .TP .B \-s The specified command will be requested as a subsystem, used for sftp. Dropbear doesn't implement sftp itself but the OpenSSH sftp client can be used eg \fIsftp -S dbclient user@host\fR +.TP +.B \-V +Print the version .SH MULTI-HOP Dropbear will also allow multiple "hops" to be specified, separated by commas. In diff --git a/dropbear.8 b/dropbear.8 index 032e4ce..42f8ddb 100644 --- a/dropbear.8 +++ b/dropbear.8 @@ -10,8 +10,7 @@ dropbear \- lightweight SSH server .IR [address:]port ] .SH DESCRIPTION .B dropbear -is a SSH server designed to be small enough to be used in small memory -environments, while still being functional and secure enough for general use. +is a small SSH server .SH OPTIONS .TP .B \-b \fIbanner @@ -88,10 +87,14 @@ Ensure that traffic is transmitted at a certain interval in seconds. This is useful for working around firewalls or routers that drop connections after a certain period of inactivity. The trade-off is that a session may be closed if there is a temporary lapse of network connectivity. A setting -if 0 disables keepalives. +if 0 disables keepalives. If no response is received for 3 consecutive keepalives the connection will be closed. .TP .B \-I \fIidle_timeout Disconnect the session if no traffic is transmitted or received for \fIidle_timeout\fR seconds. +.TP +.B \-V +Print the version + .SH FILES .TP diff --git a/runopts.h b/runopts.h index f3d784c..28a50dd 100644 --- a/runopts.h +++ b/runopts.h @@ -164,4 +164,6 @@ void cli_getopts(int argc, char ** argv); void parse_ciphers_macs(); #endif +void print_version(const char* name); + #endif /* _RUNOPTS_H_ */ diff --git a/svr-runopts.c b/svr-runopts.c index 414cb45..ad946bc 100644 --- a/svr-runopts.c +++ b/svr-runopts.c @@ -92,6 +92,7 @@ static void printhelp(const char * progname) { "-W (default %d, larger may be faster, max 1MB)\n" "-K (0 is never, default %d, in seconds)\n" "-I (0 is never, default %d, in seconds)\n" + "-V Version\n" #ifdef DEBUG_TRACE "-v verbose (compiled with DEBUG_TRACE)\n" #endif @@ -256,7 +257,7 @@ void svr_getopts(int argc, char ** argv) { #endif case 'h': printhelp(argv[0]); - exit(EXIT_FAILURE); + exit(EXIT_SUCCESS); break; case 'u': /* backwards compatibility with old urandom option */ @@ -266,6 +267,10 @@ void svr_getopts(int argc, char ** argv) { debug_trace = 1; break; #endif + case 'V': + print_version("server"); + exit(EXIT_SUCCESS); + break; default: fprintf(stderr, "Unknown argument %s\n", argv[i]); printhelp(argv[0]);