aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2021-06-21 16:07:39 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2021-06-21 16:11:57 +0000
commit224c772ca59a1234b48658358a8f043e4cd09f7c (patch)
tree715dad8f0a0f145383d60cf023343eb4bfbffef3
parent06250515cff552217d14145e8932cb1a543a7e07 (diff)
downloadsrc-224c772ca59a1234b48658358a8f043e4cd09f7c.tar.gz
src-224c772ca59a1234b48658358a8f043e4cd09f7c.zip
telnet(1): add quiet mode ("telnet -Q")
Reviewed By: imp, phk Sponsored by: NetApp, Inc. Sponsored by: Klara, Inc. X-NetApp-PR: #54 Differential Revision: https://reviews.freebsd.org/D30819
-rw-r--r--contrib/telnet/telnet/commands.c18
-rw-r--r--contrib/telnet/telnet/main.c6
-rw-r--r--contrib/telnet/telnet/telnet.19
3 files changed, 25 insertions, 8 deletions
diff --git a/contrib/telnet/telnet/commands.c b/contrib/telnet/telnet/commands.c
index 21e973209d9b..c52af2a81a67 100644
--- a/contrib/telnet/telnet/commands.c
+++ b/contrib/telnet/telnet/commands.c
@@ -122,6 +122,7 @@ static char line[256];
static char saveline[256];
static int margc;
static char *margv[20];
+int quiet_mode;
#ifdef OPIE
#include <sys/wait.h>
@@ -2042,7 +2043,8 @@ static int
status(int argc, char *argv[])
{
if (connected) {
- printf("Connected to %s.\n", hostname);
+ if (!quiet_mode)
+ printf("Connected to %s.\n", hostname);
if ((argc < 2) || strcmp(argv[1], "notmuch")) {
int mode = getconnmode();
@@ -2071,7 +2073,8 @@ status(int argc, char *argv[])
} else {
printf("No connection.\n");
}
- printf("Escape character is '%s'.\n", control(escape));
+ if (!quiet_mode)
+ printf("Escape character is '%s'.\n", control(escape));
(void) fflush(stdout);
return 1;
}
@@ -2264,7 +2267,8 @@ tn(int argc, char *argv[])
memset(&su, 0, sizeof su);
su.sun_family = AF_UNIX;
strncpy(su.sun_path, hostp, sizeof su.sun_path);
- printf("Trying %s...\n", hostp);
+ if (!quiet_mode)
+ printf("Trying %s...\n", hostp);
net = socket(PF_UNIX, SOCK_STREAM, 0);
if ( net < 0) {
perror("socket");
@@ -2373,7 +2377,8 @@ tn(int argc, char *argv[])
}
}
do {
- printf("Trying %s...\n", sockaddr_ntop(res->ai_addr));
+ if (!quiet_mode)
+ printf("Trying %s...\n", sockaddr_ntop(res->ai_addr));
net = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
setuid(getuid());
if (net < 0) {
@@ -2491,7 +2496,10 @@ tn(int argc, char *argv[])
(void) call(status, "status", "notmuch", 0);
telnet(user);
(void) NetClose(net);
- ExitString("Connection closed by foreign host.\n",1);
+ if (quiet_mode)
+ ExitString("",1);
+ else
+ ExitString("Connection closed by foreign host.\n",1);
/*NOTREACHED*/
fail:
if (res0 != NULL)
diff --git a/contrib/telnet/telnet/main.c b/contrib/telnet/telnet/main.c
index befb3eecee66..8ebcc0a86259 100644
--- a/contrib/telnet/telnet/main.c
+++ b/contrib/telnet/telnet/main.c
@@ -63,6 +63,7 @@ char *ipsec_policy_out = NULL;
#endif
extern int tos;
+extern int quiet_mode;
int family = AF_UNSPEC;
@@ -152,7 +153,7 @@ main(int argc, char *argv[])
#define IPSECOPT
#endif
while ((ch = getopt(argc, argv,
- "468B:EKLNS:X:acde:fFk:l:n:rs:uxy" IPSECOPT)) != -1)
+ "468B:EKLNQS:X:acde:fFk:l:n:rs:uxy" IPSECOPT)) != -1)
#undef IPSECOPT
{
switch(ch) {
@@ -184,6 +185,9 @@ main(int argc, char *argv[])
case 'N':
doaddrlookup = 0;
break;
+ case 'Q':
+ quiet_mode = 1;
+ break;
case 'S':
#ifdef HAS_GETTOS
diff --git a/contrib/telnet/telnet/telnet.1 b/contrib/telnet/telnet/telnet.1
index b7004ee94a5d..015401030f23 100644
--- a/contrib/telnet/telnet/telnet.1
+++ b/contrib/telnet/telnet/telnet.1
@@ -28,7 +28,7 @@
.\" @(#)telnet.1 8.6 (Berkeley) 6/1/94
.\" $FreeBSD$
.\"
-.Dd August 7, 2020
+.Dd June 21, 2021
.Dt TELNET 1
.Os
.Sh NAME
@@ -38,7 +38,7 @@
protocol
.Sh SYNOPSIS
.Nm
-.Op Fl 468EFKLNacdfruxy
+.Op Fl 468EFKLNQacdfruxy
.Op Fl B Ar baudrate
.Op Fl S Ar tos
.Op Fl X Ar authtype
@@ -108,6 +108,11 @@ option to be negotiated on output.
.It Fl N
Prevents IP address to name lookup when destination host is given
as an IP address.
+.It Fl Q
+Quiet mode.
+This suppresses the messages
+.Nm
+would normally output upon connecting or disconnecting.
.It Fl S Ar tos
Sets the IP type-of-service (TOS) option for the telnet
connection to the value