|
Adam Tkac |
2ad61df |
--- netkit-telnet-0.17/telnetd/telnetd.8.nodns 2000-07-31 01:57:10.000000000 +0200
|
|
Adam Tkac |
2ad61df |
+++ netkit-telnet-0.17/telnetd/telnetd.8 2007-04-13 10:58:27.000000000 +0200
|
|
Adam Tkac |
2ad61df |
@@ -123,6 +123,8 @@
|
|
Adam Tkac |
2ad61df |
.Xr login 1
|
|
Adam Tkac |
2ad61df |
program.
|
|
Adam Tkac |
2ad61df |
.El
|
|
Adam Tkac |
2ad61df |
+.It Fl c
|
|
Adam Tkac |
2ad61df |
+This option disables reverse dns checking. Of course that security is lower with this option
|
|
Adam Tkac |
2ad61df |
.It Fl D Ar debugmode
|
|
Adam Tkac |
2ad61df |
This option may be used for debugging purposes. This allows
|
|
Adam Tkac |
2ad61df |
.Nm telnetd
|
|
Adam Tkac |
2ad61df |
--- netkit-telnet-0.17/telnetd/telnetd.c.nodns 2007-04-13 10:49:57.000000000 +0200
|
|
Adam Tkac |
2ad61df |
+++ netkit-telnet-0.17/telnetd/telnetd.c 2007-04-13 10:49:57.000000000 +0200
|
|
Adam Tkac |
2ad61df |
@@ -83,6 +83,7 @@
|
|
Adam Tkac |
2ad61df |
|
|
Adam Tkac |
2ad61df |
int debug = 0;
|
|
Adam Tkac |
2ad61df |
int keepalive = 1;
|
|
Adam Tkac |
2ad61df |
+int nodns = 0;
|
|
Adam Tkac |
2ad61df |
char *loginprg = _PATH_LOGIN;
|
|
Adam Tkac |
2ad61df |
char *progname;
|
|
Adam Tkac |
2ad61df |
|
|
Adam Tkac |
2ad61df |
@@ -111,7 +112,7 @@
|
|
Adam Tkac |
2ad61df |
|
|
Adam Tkac |
2ad61df |
progname = *argv;
|
|
Adam Tkac |
2ad61df |
|
|
Adam Tkac |
2ad61df |
- while ((ch = getopt(argc, argv, "d:a:e:lhnr:I:D:B:sS:a:X:L:")) != EOF) {
|
|
Adam Tkac |
2ad61df |
+ while ((ch = getopt(argc, argv, "cd:a:e:lhnr:I:D:B:sS:a:X:L:")) != EOF) {
|
|
Adam Tkac |
2ad61df |
switch(ch) {
|
|
Adam Tkac |
2ad61df |
|
|
Adam Tkac |
2ad61df |
#ifdef AUTHENTICATE
|
|
Adam Tkac |
2ad61df |
@@ -147,7 +148,9 @@
|
|
Adam Tkac |
2ad61df |
bftpd++;
|
|
Adam Tkac |
2ad61df |
break;
|
|
Adam Tkac |
2ad61df |
#endif /* BFTPDAEMON */
|
|
Adam Tkac |
2ad61df |
-
|
|
Adam Tkac |
2ad61df |
+ case 'c':
|
|
Adam Tkac |
2ad61df |
+ nodns++;
|
|
Adam Tkac |
2ad61df |
+ break;
|
|
Adam Tkac |
2ad61df |
case 'd':
|
|
Adam Tkac |
2ad61df |
if (strcmp(optarg, "ebug") == 0) {
|
|
Adam Tkac |
2ad61df |
debug++;
|
|
Adam Tkac |
2ad61df |
@@ -652,6 +655,9 @@
|
|
Adam Tkac |
2ad61df |
char namebuf[255];
|
|
Adam Tkac |
2ad61df |
|
|
Adam Tkac |
2ad61df |
error = getnameinfo(who, wholen, namebuf, sizeof(namebuf), NULL, 0, 0);
|
|
Adam Tkac |
2ad61df |
+
|
|
Adam Tkac |
2ad61df |
+ if ((error == EAI_AGAIN) && nodns)
|
|
Adam Tkac |
2ad61df |
+ error = getnameinfo(who, wholen, namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST);
|
|
Adam Tkac |
2ad61df |
|
|
Adam Tkac |
2ad61df |
if (error) {
|
|
Adam Tkac |
2ad61df |
perror("getnameinfo: localhost");
|
|
Adam Tkac |
2ad61df |
@@ -688,7 +694,10 @@
|
|
Adam Tkac |
2ad61df |
hints.ai_socktype = SOCK_STREAM;
|
|
Adam Tkac |
2ad61df |
hints.ai_flags = AI_ADDRCONFIG;
|
|
Adam Tkac |
2ad61df |
|
|
Adam Tkac |
2ad61df |
- gethostname(host_name, sizeof(host_name));
|
|
Adam Tkac |
2ad61df |
+ if(nodns)
|
|
Adam Tkac |
2ad61df |
+ sprintf(host_name, "localhost", sizeof(host_name));
|
|
Adam Tkac |
2ad61df |
+ else
|
|
Adam Tkac |
2ad61df |
+ gethostname(host_name, sizeof(host_name));
|
|
Adam Tkac |
2ad61df |
if ((e = getaddrinfo(host_name, NULL, &hints, &res)) != 0) {
|
|
Adam Tkac |
2ad61df |
perror("getaddrinfo: localhost");
|
|
Adam Tkac |
2ad61df |
perror(gai_strerror(e));
|