bin/94547: [PATCH] Make telnet accept host:port on the commandline
Volker Stolz
vs at FreeBSD.org
Thu Mar 16 15:10:53 UTC 2006
>Number: 94547
>Category: bin
>Synopsis: [PATCH] Make telnet accept host:port on the commandline
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Mar 16 15:09:37 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Volker Stolz
>Release: FreeBSD 6.0-STABLE i386
>Organization:
>Environment:
System: FreeBSD freefall.freebsd.org 6.0-STABLE FreeBSD 6.0-STABLE #0: Sat Dec 10 03:18:20 UTC 2005 kensmith at freefall.freebsd.org:/usr/obj/usr/src/sys/FREEFALL i386
>Description:
Almost every network application allows sepcifying the remote end through
'host:port'. Only telnet seems to be stuck in the last millenium and requires you to
specify both arguments separately, which hinders cut'n'pasting
(sorry, yeah, I do use the mouse occasionaly :).
This patch alleviates this and handles errors gracefully:
- accept 'host:port' on command-line
- handle IPv6 addresses which also may contain colons: only accept the old syntax
- fail gracefully when somebody specified "host:port1 port2" or "host:"
>How-To-Repeat:
>Fix:
--- telnet.patch begins here ---
--- /usr/src/contrib/telnet/telnet/commands.c Mon Feb 28 13:46:52 2005
+++ src/telnet/telnet/commands.c Thu Mar 16 10:52:06 2006
@@ -2291,8 +2291,26 @@
hostname++;
srcroute = 1;
}
- } else
- hostname = hostp;
+ } else {
+ char *colon;
+ /* Did we get host:port? */
+ colon = strrchr(hostp,':');
+ /* Maybe, make sure it's not an IPv6 address */
+ if ((colon != NULL) && (colon == strchr(hostp,':'))) {
+ if (portp) {
+ fprintf(stderr, "Destination port already set.\n");
+ goto fail;
+ } else { /* Patch \0 into argument */
+ *colon = '\0';
+ /* Check if colon was last char in argument: */
+ colon++;
+ if ((*colon) != '\0')
+ portp = colon;
+ }
+ }
+ hostname = hostp;
+
+ }
if (!portp) {
telnetport = 1;
portp = strdup("telnet");
--- telnet.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list