1 diff -Nur sendmail-8.12.0.orig/sendmail/conf.c sendmail-8.12.0/sendmail/conf.c
2 --- sendmail-8.12.0.orig/sendmail/conf.c Wed Sep 5 00:43:02 2001
3 +++ sendmail-8.12.0/sendmail/conf.c Mon Sep 24 10:01:52 2001
5 DontLockReadFiles = true;
6 DontProbeInterfaces = DPI_PROBEALL;
7 DoubleBounceAddr = "postmaster";
10 MaxHeadersLength = MAXHDRSLEN;
11 MaxForwardEntries = 0;
13 diff -Nur sendmail-8.12.0.orig/sendmail/err.c sendmail-8.12.0/sendmail/err.c
14 --- sendmail-8.12.0.orig/sendmail/err.c Wed Sep 5 00:43:03 2001
15 +++ sendmail-8.12.0/sendmail/err.c Mon Sep 24 10:02:57 2001
17 (void) sm_strlcpyn(eb, spaceleft, 2,
18 shortenstring(to, MAXSHORTSTR), "... ");
19 spaceleft -= strlen(eb);
27 /* output the message */
28 (void) sm_vsnprintf(eb, spaceleft, fmt, ap);
29 spaceleft -= strlen(eb);
36 /* output the error code, if any */
38 diff -Nur sendmail-8.12.0.orig/sendmail/readcf.c sendmail-8.12.0/sendmail/readcf.c
39 --- sendmail-8.12.0.orig/sendmail/readcf.c Wed Sep 5 00:43:05 2001
40 +++ sendmail-8.12.0/sendmail/readcf.c Mon Sep 24 10:06:43 2001
41 @@ -2039,6 +2039,10 @@
42 # define O_SOFTBOUNCE 0xcf
43 { "SoftBounce", O_SOFTBOUNCE, OI_NONE },
44 #endif /* _FFR_SOFT_BOUNCE */
45 +#define O_DETECTTELNET 0xd0
46 + { "DetectTelnet", O_DETECTTELNET, OI_NONE },
47 +#define O_EXITONTELNET 0xd1
48 + { "ExitOnTelnet", O_EXITONTELNET, OI_NONE },
49 { NULL, '\0', OI_NONE }
52 @@ -3462,6 +3466,14 @@
54 #endif /* _FFR_SOFT_BOUNCE */
56 + case O_DETECTTELNET: /* detect telnet */
57 + DetectTelnet = atobool(val);
60 + case O_EXITONTELNET: /* exit if telnet detected */
61 + ExitOnTelnet = atobool(val);
67 diff -Nur sendmail-8.12.0.orig/sendmail/sendmail.h sendmail-8.12.0/sendmail/sendmail.h
68 --- sendmail-8.12.0.orig/sendmail/sendmail.h Wed Sep 5 00:43:05 2001
69 +++ sendmail-8.12.0/sendmail/sendmail.h Mon Sep 24 10:01:52 2001
71 EXTERN bool WorkAroundBrokenAAAA; /* some nameservers return SERVFAIL on AAAA queries */
72 EXTERN bool UseErrorsTo; /* use Errors-To: header (back compat) */
73 EXTERN bool UseNameServer; /* using DNS -- interpret h_errno & MX RRs */
74 +EXTERN bool DetectTelnet; /* force telnet detection on/off */
75 +EXTERN bool ExitOnTelnet; /* exit if telnet detected */
76 EXTERN char InetMode; /* default network for daemon mode */
77 EXTERN char OpMode; /* operation mode, see below */
78 EXTERN char SpaceSub; /* substitution for <lwsp> */
79 diff -Nur sendmail-8.12.0.orig/sendmail/srvrsmtp.c sendmail-8.12.0/sendmail/srvrsmtp.c
80 --- sendmail-8.12.0.orig/sendmail/srvrsmtp.c Wed Sep 5 00:43:06 2001
81 +++ sendmail-8.12.0/sendmail/srvrsmtp.c Mon Sep 24 10:09:38 2001
86 +#include <arpa/telnet.h>
88 # include <libmilter/mfdef.h>
91 char *args[MAXSMTPARGS];
94 + char telnet_request[] = {IAC, DO, TELOPT_SGA, 0};
95 + char telnet_response[] = {IAC, WILL, TELOPT_SGA, 0};
99 volatile bool sasl_ok;
101 id = strchr(inp, ' ');
103 id = &inp[strlen(inp)];
105 - (void) sm_snprintf(cmdbuf, sizeof cmdbuf,
106 - "%s %%.*s ESMTP%%s", greetcode);
108 - (void) sm_snprintf(cmdbuf, sizeof cmdbuf,
109 - "%s-%%.*s ESMTP%%s", greetcode);
110 + sm_snprintf(cmdbuf, sizeof cmdbuf, "%s%c%%.*s ESMTP%%s%s", greetcode,
111 + (p == NULL) ? ' ' : '-', DetectTelnet ? telnet_request : "");
112 message(cmdbuf, (int) (id - inp), inp, id);
114 /* output remaining lines */
119 + if (DetectTelnet && strlen(inp) >= 3)
120 + for (telnet_tmp = inp; *(telnet_tmp+2); telnet_tmp++)
121 + if (!strncmp(telnet_tmp, telnet_response, 3))
123 + sm_syslog(LOG_NOTICE, e->e_id,
124 + "telnet detected from %.100s (%.100s)",
125 + CurSmtpClient, anynet_ntoa(&RealHostAddr));
128 + message("571 Unauthorized usage prohibited");
133 #if _FFR_ADAPTIVE_EOL