Date: 15 Nov 1998 16:56:52 +0000 (GMT) From: sthaug@nethelp.no To: FreeBSD-gnats-submit@FreeBSD.ORG Cc: sthaug@nethelp.no Subject: bin/8698: telnet enhancement: option to prevent IP address to name lookup Message-ID: <19981115165652.21227.qmail@verdi.nethelp.no>
next in thread | raw e-mail | index | archive | help
>Number: 8698 >Category: bin >Synopsis: add telnet option to prevent IP address to name lookup >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sun Nov 15 09:00:00 PST 1998 >Last-Modified: >Originator: Steinar Haug >Organization: Nethelp Consulting >Release: FreeBSD 3.0-CURRENT i386 >Environment: FreeBSD 3.0-CURRENT i386 (from around 24. october 1998) >Description: If a telnet destination host is given by IP address, telnet will attempt a gethostbyaddr() to lookup the corresponding host name. If the relevant name servers take a long time to answer (e.g. if they are lame), the telnet connection attempt will take a long time due to the name lookup. This patch adds a -N option to prevent IP address to name lookup when the destination host is given by IP address. The option really should have been -n (for similarity with route, arp, netstat etc), but the -n option is already taken. So use -N. >How-To-Repeat: telnet (using IP address) to a site where the relevant name servers aren't fully functional. Observe how long the connection attempt takes. >Fix: Below is a patch relative to telnet in FreeBSD 3.0-CURRENT. Steinar Haug, Nethelp consulting, sthaug@nethelp.no *** commands.c.orig Fri Jun 12 14:54:53 1998 --- commands.c Sun Nov 15 16:58:10 1998 *************** *** 2186,2192 **** if (temp != INADDR_NONE) { sin.sin_addr.s_addr = temp; sin.sin_family = AF_INET; ! host = gethostbyaddr((char *)&temp, sizeof(temp), AF_INET); if (host) (void) strncpy(_hostname, host->h_name, sizeof(_hostname)); else --- 2186,2193 ---- if (temp != INADDR_NONE) { sin.sin_addr.s_addr = temp; sin.sin_family = AF_INET; ! if (doaddrlookup) ! host = gethostbyaddr((char *)&temp, sizeof(temp), AF_INET); if (host) (void) strncpy(_hostname, host->h_name, sizeof(_hostname)); else *** main.c.orig Sat Mar 29 05:32:57 1997 --- main.c Sun Nov 15 17:03:33 1998 *************** *** 135,141 **** rlogin = (strncmp(prompt, "rlog", 4) == 0) ? '~' : _POSIX_VDISABLE; autologin = -1; ! while ((ch = getopt(argc, argv, "8EKLS:X:acde:fFk:l:n:rt:x")) != -1) { switch(ch) { case '8': eight = 3; /* binary output and input */ --- 135,141 ---- rlogin = (strncmp(prompt, "rlog", 4) == 0) ? '~' : _POSIX_VDISABLE; autologin = -1; ! while ((ch = getopt(argc, argv, "8EKLNS:X:acde:fFk:l:n:rt:x")) != -1) { switch(ch) { case '8': eight = 3; /* binary output and input */ *************** *** 150,155 **** --- 150,158 ---- break; case 'L': eight |= 2; /* binary output only */ + break; + case 'N': + doaddrlookup = 0; break; case 'S': { *** telnet.c.orig Mon Jul 6 23:01:42 1998 --- telnet.c Sun Nov 15 17:03:22 1998 *************** *** 106,111 **** --- 106,112 ---- donebinarytoggle, /* the user has put us in binary */ dontlecho, /* do we suppress local echoing right now? */ globalmode, + doaddrlookup = 1, /* Should we do IP address to name lookup? */ clienteof = 0; char *prompt = 0; *** externs.h.orig Tue Jan 7 20:47:56 1997 --- externs.h Sun Nov 15 16:56:14 1998 *************** *** 145,150 **** --- 145,151 ---- termdata, /* Print out terminal data flow */ #endif /* defined(unix) */ debug, /* Debug level */ + doaddrlookup, /* Should we do IP address to name lookup? */ clienteof; /* Client received EOF */ extern cc_t escape; /* Escape to command mode */ *** telnet.1.orig Sat Dec 27 19:58:27 1997 --- telnet.1 Sun Nov 15 17:30:04 1998 *************** *** 93,98 **** --- 93,101 ---- Specifies an 8-bit data path on output. This causes the .Dv BINARY 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 S Ar tos Sets the IP type-of-service (TOS) option for the telnet connection to the value >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19981115165652.21227.qmail>