From: kloczek Date: Sun, 7 Apr 2002 08:33:26 +0000 (+0000) Subject: - outdated. X-Git-Tag: sendmail-8_12_3-1~1 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fsendmail.git;a=commitdiff_plain;h=2b1b20293c2e80d2af1d2a6168ee80d4a9e92c94 - outdated. Changed files: sendmail-dtelnet.patch -> 1.8 --- diff --git a/sendmail-dtelnet.patch b/sendmail-dtelnet.patch deleted file mode 100644 index bb73d80..0000000 --- a/sendmail-dtelnet.patch +++ /dev/null @@ -1,135 +0,0 @@ -diff -Nur sendmail-8.12.0.orig/sendmail/conf.c sendmail-8.12.0/sendmail/conf.c ---- sendmail-8.12.0.orig/sendmail/conf.c Wed Sep 5 00:43:02 2001 -+++ sendmail-8.12.0/sendmail/conf.c Mon Sep 24 10:01:52 2001 -@@ -326,6 +326,8 @@ - DontLockReadFiles = true; - DontProbeInterfaces = DPI_PROBEALL; - DoubleBounceAddr = "postmaster"; -+ DetectTelnet = 0; -+ ExitOnTelnet = 1; - MaxHeadersLength = MAXHDRSLEN; - MaxForwardEntries = 0; - FastSplit = 1; -diff -Nur sendmail-8.12.0.orig/sendmail/err.c sendmail-8.12.0/sendmail/err.c ---- sendmail-8.12.0.orig/sendmail/err.c Wed Sep 5 00:43:03 2001 -+++ sendmail-8.12.0/sendmail/err.c Mon Sep 24 10:02:57 2001 -@@ -909,15 +909,17 @@ - (void) sm_strlcpyn(eb, spaceleft, 2, - shortenstring(to, MAXSHORTSTR), "... "); - spaceleft -= strlen(eb); -- while (*eb != '\0') -- *eb++ &= 0177; -+ if(!DetectTelnet) -+ while (*eb != '\0') -+ *eb++ &= 0177; - } - - /* output the message */ - (void) sm_vsnprintf(eb, spaceleft, fmt, ap); - spaceleft -= strlen(eb); -- while (*eb != '\0') -- *eb++ &= 0177; -+ if(!DetectTelnet) -+ while (*eb != '\0') -+ *eb++ &= 0177; - - /* output the error code, if any */ - if (eno != 0) -diff -Nur sendmail-8.12.0.orig/sendmail/readcf.c sendmail-8.12.0/sendmail/readcf.c ---- sendmail-8.12.0.orig/sendmail/readcf.c Wed Sep 5 00:43:05 2001 -+++ sendmail-8.12.0/sendmail/readcf.c Mon Sep 24 10:06:43 2001 -@@ -2039,6 +2039,10 @@ - # define O_SOFTBOUNCE 0xcf - { "SoftBounce", O_SOFTBOUNCE, OI_NONE }, - #endif /* _FFR_SOFT_BOUNCE */ -+#define O_DETECTTELNET 0xd0 -+ { "DetectTelnet", O_DETECTTELNET, OI_NONE }, -+#define O_EXITONTELNET 0xd1 -+ { "ExitOnTelnet", O_EXITONTELNET, OI_NONE }, - { NULL, '\0', OI_NONE } - }; - -@@ -3462,6 +3466,14 @@ - break; - #endif /* _FFR_SOFT_BOUNCE */ - -+ case O_DETECTTELNET: /* detect telnet */ -+ DetectTelnet = atobool(val); -+ break; -+ -+ case O_EXITONTELNET: /* exit if telnet detected */ -+ ExitOnTelnet = atobool(val); -+ break; -+ - default: - if (tTd(37, 1)) - { -diff -Nur sendmail-8.12.0.orig/sendmail/sendmail.h sendmail-8.12.0/sendmail/sendmail.h ---- sendmail-8.12.0.orig/sendmail/sendmail.h Wed Sep 5 00:43:05 2001 -+++ sendmail-8.12.0/sendmail/sendmail.h Mon Sep 24 10:01:52 2001 -@@ -2074,6 +2074,8 @@ - EXTERN bool WorkAroundBrokenAAAA; /* some nameservers return SERVFAIL on AAAA queries */ - EXTERN bool UseErrorsTo; /* use Errors-To: header (back compat) */ - EXTERN bool UseNameServer; /* using DNS -- interpret h_errno & MX RRs */ -+EXTERN bool DetectTelnet; /* force telnet detection on/off */ -+EXTERN bool ExitOnTelnet; /* exit if telnet detected */ - EXTERN char InetMode; /* default network for daemon mode */ - EXTERN char OpMode; /* operation mode, see below */ - EXTERN char SpaceSub; /* substitution for */ -diff -Nur sendmail-8.12.0.orig/sendmail/srvrsmtp.c sendmail-8.12.0/sendmail/srvrsmtp.c ---- sendmail-8.12.0.orig/sendmail/srvrsmtp.c Wed Sep 5 00:43:06 2001 -+++ sendmail-8.12.0/sendmail/srvrsmtp.c Mon Sep 24 10:09:38 2001 -@@ -12,6 +12,7 @@ - */ - - #include -+#include - #if MILTER - # include - #endif /* MILTER */ -@@ -369,6 +370,9 @@ - char *args[MAXSMTPARGS]; - char inp[MAXLINE]; - char cmdbuf[MAXLINE]; -+ char telnet_request[] = {IAC, DO, TELOPT_SGA, 0}; -+ char telnet_response[] = {IAC, WILL, TELOPT_SGA, 0}; -+ char *telnet_tmp; - #if SASL - sasl_conn_t *conn; - volatile bool sasl_ok; -@@ -666,12 +669,8 @@ - id = strchr(inp, ' '); - if (id == NULL) - id = &inp[strlen(inp)]; -- if (p == NULL) -- (void) sm_snprintf(cmdbuf, sizeof cmdbuf, -- "%s %%.*s ESMTP%%s", greetcode); -- else -- (void) sm_snprintf(cmdbuf, sizeof cmdbuf, -- "%s-%%.*s ESMTP%%s", greetcode); -+ sm_snprintf(cmdbuf, sizeof cmdbuf, "%s%c%%.*s ESMTP%%s%s", greetcode, -+ (p == NULL) ? ' ' : '-', DetectTelnet ? telnet_request : ""); - message(cmdbuf, (int) (id - inp), inp, id); - - /* output remaining lines */ -@@ -764,6 +763,20 @@ - goto doquit; - } - -+ if (DetectTelnet && strlen(inp) >= 3) -+ for (telnet_tmp = inp; *(telnet_tmp+2); telnet_tmp++) -+ if (!strncmp(telnet_tmp, telnet_response, 3)) -+ { -+ sm_syslog(LOG_NOTICE, e->e_id, -+ "telnet detected from %.100s (%.100s)", -+ CurSmtpClient, anynet_ntoa(&RealHostAddr)); -+ if (ExitOnTelnet) -+ { -+ message("571 Unauthorized usage prohibited"); -+ goto doquit; -+ } -+ } -+ - #if _FFR_ADAPTIVE_EOL - if (first) - {