summaryrefslogtreecommitdiff
path: root/debian/patches/8.13/8.13.7/client_helo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/8.13/8.13.7/client_helo.patch')
-rw-r--r--debian/patches/8.13/8.13.7/client_helo.patch152
1 files changed, 0 insertions, 152 deletions
diff --git a/debian/patches/8.13/8.13.7/client_helo.patch b/debian/patches/8.13/8.13.7/client_helo.patch
deleted file mode 100644
index 7bf5cc2..0000000
--- a/debian/patches/8.13/8.13.7/client_helo.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-#------------------------------------------------------------------------------
-# Who:
-# Richard Nelson <cowboy@{cavein,debian}.org>
-# What:
-# 1) New macro ${client_helo} containing the EHLO/HELO text (or null)
-# 2) New ruleset check_helo called after the EHLO/HELO and before the
-# milter callout. This ruleset invocation and handling are modeled
-# after the existing check_* rulesets
-# Why:
-# 0) $s is transient, and not set until MAIL FROM: is seen - I want the
-# ability to check the EHLO/HELO string elsewere (like check_vrfy).
-# ${client_helo} is set upon seeing the EHLO/HELO command and
-# remains valid forever.
-# 1) There is an IBM internal system check routine for AIX and Linux that
-# I'm thinking will soon be a requirement to pass its audit... Like
-# all such tools, it is limited - it requires that vrfy,expn are
-# disabled... well, I don't do that... if you can relay through the
-# box, then you can query it. If you can't relay, you get 5.7.1 !
-# using the new macro - I can specifically deny the scanner - even
-# though other traffic is unaffected.
-# 2) It can provide the same function as -DPICKY_HELO_CHECK, dynamically
-# by making those checks in the new check_helo ruleset - as outlined
-# below (NOT RECOMMENDED)
-# 3) It can be passed to the milters, if they choose (like mimedefang)
-# to apparently not support the helo callout
-# 4) I was bored stiff being in the bowels of a COBOL compiler and
-# needed a sanity break :)
-# Design questions:
-# Testing:
-# 1) Running on three boxes, two of which make use of the macro and
-# ruleset to block. The new function works great - and no ill
-# affects seen on any of the boxes.
-# Documentation:
-# See below for the new macro and ruleset
-# TODO:
-# add to milter macro specifications
-# Changes:
-# 1) deliver.c -- remove client_helo from the envelope like all the
-# other client_* macros
-# 2) srvrsmtp.c
-# A) A new boolean variable indicating that the helo string is valid
-# gothelo is not sufficient here... the new scope is very small...
-# B) A new character pointer holding the helo string address
-# C) After obtaining a valid helo string, or accepting an invalid
-# one, create a copy of the string for permanence
-# D) Update the client_helo macro variable with the helo string
-#------------------------------------------------------------------------------
-#5.2. D -- Define Macro
-# ...
-# ${client_helo}
-# The string specified by the SMTP client on the EHLO/HELO
-# command, or null if no EHLO/HELO was seen. Defined in the
-# SMTP server only. Unlike the $s macro, which is transient
-# and not available in all rulesets, the {client_helo} macro
-# is available to all rulesets after the EHLO/HELO greeting.
-# ...
-#------------------------------------------------------------------------------
-#5.1.4.?. check_helo
-#
-# The check_helo ruleset is passed the address
-# or name parameter of the SMTP EHLO/HELO command. It can
-# accept or reject the address. Note that rejecting mail
-# based upon this check is a violation of the standards!
-#
-# One could impliment an improved -PICKY_HELO_CHECK test
-# here by checking the values of {client_name}, {client_addr},
-# against {client_helo} and {daemon_addr}.
-#------------------------------------------------------------------------------
-diff -c 'deliver.orig' 'deliver.c'
-Index: ./deliver.orig
-Prereq: 8.1003.2.1
-*** ./sendmail-8.13.7/sendmail/deliver.c Tue Aug 10 17:50:11 2004
---- ./deliver.c Tue Aug 10 17:44:04 2004
-***************
-*** 1363,1368 ****
---- 1363,1369 ----
- macdefine(&e->e_macro, A_PERM, macid("{client_addr}"), "");
- macdefine(&e->e_macro, A_PERM, macid("{client_port}"), "");
- macdefine(&e->e_macro, A_PERM, macid("{client_resolve}"), "");
-+ macdefine(&e->e_macro, A_PERM, macid("{client_helo}"), "");
- }
-
- SM_TRY
-diff -c 'srvrsmtp.orig' 'srvrsmtp.c'
-Index: ./srvrsmtp.orig
-Prereq: 8.924.2.2
-*** ./sendmail-8.13.7/sendmail/srvrsmtp.c Tue Aug 10 17:50:23 2004
---- ./srvrsmtp.c Tue Aug 10 17:42:54 2004
-***************
-*** 444,449 ****
---- 444,451 ----
- char *volatile protocol; /* sending protocol */
- char *volatile sendinghost; /* sending hostname */
- char *volatile peerhostname; /* name of SMTP peer or "localhost" */
-+ char *volatile helo_name; /* client_helo string */
-+ bool helo_accept = false; /* helo/ehlo command accepted */
- auto char *delimptr;
- char *id;
- volatile unsigned int n_badcmds = 0; /* count of bad commands */
-***************
-*** 1976,1981 ****
---- 1978,1987 ----
- {
- q = "pleased to meet you";
- sendinghost = sm_strdup_x(p);
-+ helo_accept = true;
-+ helo_name = sm_strdup_x(p);
-+ macdefine(&e->e_macro, A_PERM, macid("{client_helo}"),
-+ helo_name);
- }
- else if (!AllowBogusHELO)
- {
-***************
-*** 1989,1994 ****
---- 1995,2004 ----
- else
- {
- q = "accepting invalid domain name";
-+ helo_accept = true;
-+ helo_name = sm_strdup_x(p);
-+ macdefine(&e->e_macro, A_PERM, macid("{client_helo}"),
-+ helo_name);
- }
-
- if (gothelo)
-***************
-*** 1996,2001 ****
---- 2006,2028 ----
- CLEAR_STATE(cmdbuf);
- }
-
-+ if (helo_accept) {
-+ if (rscheck("check_helo", helo_name,
-+ NULL, e, RSF_RMCOMM|RSF_COUNT, 3,
-+ NULL, e->e_id) != EX_OK ||
-+ Errors > 0)
-+ sm_exc_raisenew_x(&EtypeQuickAbort, 1);
-+
-+ if (MaxMessageSize > 0 &&
-+ (e->e_msgsize > MaxMessageSize ||
-+ e->e_msgsize < 0))
-+ {
-+ usrerr("552 5.2.3 Message size exceeds fixed maximum message size (%ld)",
-+ MaxMessageSize);
-+ sm_exc_raisenew_x(&EtypeQuickAbort, 1);
-+ }
-+ }
-+
- #if MILTER
- if (smtp.sm_milterlist && smtp.sm_milterize &&
- !bitset(EF_DISCARD, e->e_flags))
-