Added log selector +smtp_no_mail to log when no MAIL is issued (for
[exim.git] / src / src / macros.h
index 59c05e6978f5553437501e8384e5c1b07b942679..7b317e42d3fc25200adc19fdaf9cc7622e438bfd 100644 (file)
@@ -1,10 +1,10 @@
-/* $Cambridge: exim/src/src/macros.h,v 1.26 2006/06/28 16:00:24 ph10 Exp $ */
+/* $Cambridge: exim/src/src/macros.h,v 1.30 2007/01/15 15:59:22 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2006 */
+/* Copyright (c) University of Cambridge 1995 - 2007 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 
@@ -127,6 +127,10 @@ enough to hold all the headers from a normal kind of message. */
 
 #define LOG_BUFFER_SIZE 8192
 
+/* The size of the circular buffer that remembers recent SMTP commands */
+
+#define SMTP_HBUFF_SIZE 20
+
 /* The initial size of a big buffer for use in various places. It gets put
 into big_buffer_size and in some circumstances increased. It should be at least
 as long as the maximum path length. */
@@ -383,11 +387,12 @@ set all the bits in a multi-word selector. */
 #define LX_sender_on_delivery          0x80004000
 #define LX_sender_verify_fail          0x80008000
 #define LX_smtp_confirmation           0x80010000
-#define LX_subject                     0x80020000
-#define LX_tls_certificate_verified    0x80040000
-#define LX_tls_cipher                  0x80080000
-#define LX_tls_peerdn                  0x80100000
-#define LX_unknown_in_list             0x80200000
+#define LX_smtp_no_mail                0x80020000
+#define LX_subject                     0x80040000
+#define LX_tls_certificate_verified    0x80080000
+#define LX_tls_cipher                  0x80100000
+#define LX_tls_peerdn                  0x80200000
+#define LX_unknown_in_list             0x80400000
 
 #define L_default     (L_connection_reject        | \
                        L_delay_delivery           | \
@@ -626,7 +631,8 @@ enum { v_none, v_sender, v_recipient, v_expn };
 
 #define ccache_unknown         0       /* test hasn't been done */
 #define ccache_accept          1
-#define ccache_reject          2
+#define ccache_reject          2       /* All rejections except */
+#define ccache_reject_mfnull   3       /* MAIL FROM:<> was rejected */
 
 /* Options for lookup functions */
 
@@ -690,6 +696,15 @@ local_scan.h */
 #define LOG_CONFIG_FOR  (256+128) /* Add " for" instead of ":\n" */
 #define LOG_CONFIG_IN   (512+128) /* Add " in line x[ of file y]" */
 
+/* SMTP command identifiers for the smtp_connection_had field that records the
+most recent SMTP commands. Must be kept in step with the list of names in
+smtp_in.c that is used for creating the smtp_no_mail logging action. SCH_NONE
+is "empty". */
+
+enum { SCH_NONE, SCH_AUTH, SCH_DATA, SCH_EHLO, SCH_ETRN, SCH_EXPN, SCH_HELO,
+       SCH_HELP, SCH_MAIL, SCH_NOOP, SCH_QUIT, SCH_RCPT, SCH_RSET, SCH_STARTTLS,
+       SCH_VRFY };
+
 /* Returns from host_find_by{name,dns}() */
 
 enum {
@@ -712,7 +727,7 @@ enum {
 
 enum { MSG_DELIVER, MSG_FREEZE, MSG_REMOVE, MSG_THAW, MSG_ADD_RECIPIENT,
        MSG_MARK_ALL_DELIVERED, MSG_MARK_DELIVERED, MSG_EDIT_SENDER,
-       MSG_SHOW_BODY, MSG_SHOW_HEADER, MSG_SHOW_LOG };
+       MSG_SHOW_BODY, MSG_SHOW_HEADER, MSG_SHOW_LOG, MSG_LOAD };
 
 /* Returns from the spool_read_header() function */