/* Codes for ESMTP facilities offered by peer */
-#define OPTION_TLS BIT(0)
-#define OPTION_IGNQ BIT(1)
-#define OPTION_PRDR BIT(2)
-#define OPTION_UTF8 BIT(3)
-#define OPTION_DSN BIT(4)
-#define OPTION_PIPE BIT(5)
-#define OPTION_SIZE BIT(6)
-#define OPTION_CHUNKING BIT(7)
-#define OPTION_REQUIRETLS BIT(8)
+#define OPTION_TLS BIT(0)
+#define OPTION_IGNQ BIT(1)
+#define OPTION_PRDR BIT(2)
+#define OPTION_UTF8 BIT(3)
+#define OPTION_DSN BIT(4)
+#define OPTION_PIPE BIT(5)
+#define OPTION_SIZE BIT(6)
+#define OPTION_CHUNKING BIT(7)
+#define OPTION_REQUIRETLS BIT(8)
+#define OPTION_EARLY_PIPE BIT(9)
/* Codes for tls_requiretls requests (usually by sender) */
#define TLS_SHUTDOWN_WAIT 2
+#ifdef COMPILE_UTILITY
+# define ALARM(seconds) alarm(seconds);
+# define ALARM_CLR(seconds) alarm(seconds);
+#else
+/* For debugging of odd alarm-signal problems, stash caller info while the
+alarm is active. Clear it down on cancelling the alarm so we can tell there
+should not be one active. */
+
+# define ALARM(seconds) \
+ debug_selector & D_any \
+ ? (sigalarm_setter = CUS __FUNCTION__, alarm(seconds)) : alarm(seconds);
+# define ALARM_CLR(seconds) \
+ debug_selector & D_any \
+ ? (sigalarm_setter = NULL, alarm(seconds)) : alarm(seconds);
+#endif
+
+#define AUTHS_REGEX US"\\n250[\\s\\-]AUTH\\s+([\\-\\w \\t]+)(?:\\n|$)"
+
+#define EARLY_PIPE_FEATURE_NAME "X_PIPE_CONNECT"
+#define EARLY_PIPE_FEATURE_LEN 14
+
+
/* End of macros.h */