git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix bad use of library, copying string over itself
[exim.git]
/
src
/
src
/
macros.h
diff --git
a/src/src/macros.h
b/src/src/macros.h
index ec913e24e1f7086e384dddefddac9888eb8090c3..0d979d0c8b8b62de09c0c2e2a71e115802d11b5b 100644
(file)
--- a/
src/src/macros.h
+++ b/
src/src/macros.h
@@
-24,7
+24,7
@@
a string as a text string. This is sometimes useful for debugging output. */
/* When running in the test harness, the load average is fudged. */
#define OS_GETLOADAVG() \
/* When running in the test harness, the load average is fudged. */
#define OS_GETLOADAVG() \
- (running_in_test_harness? (test_harness_load_avg += 10) : os_getloadavg())
+ (
f.
running_in_test_harness? (test_harness_load_avg += 10) : os_getloadavg())
/* The address_item structure has a struct full of 1-bit flags. These macros
/* The address_item structure has a struct full of 1-bit flags. These macros
@@
-85,7
+85,7
@@
as unsigned. */
a no-op once an SSL session is in progress. */
#ifdef SUPPORT_TLS
a no-op once an SSL session is in progress. */
#ifdef SUPPORT_TLS
-#define mac_smtp_fflush() if (tls_in.active < 0) fflush(smtp_out);
+#define mac_smtp_fflush() if (tls_in.active
.sock
< 0) fflush(smtp_out);
#else
#define mac_smtp_fflush() fflush(smtp_out);
#endif
#else
#define mac_smtp_fflush() fflush(smtp_out);
#endif
@@
-362,6
+362,7
@@
masks, alternating between sequential bit index and corresponding mask. */
/* Options bits for debugging. DEBUG_BIT() declares both a bit index and the
corresponding mask. Di_all is a special value recognized by decode_bits().
/* Options bits for debugging. DEBUG_BIT() declares both a bit index and the
corresponding mask. Di_all is a special value recognized by decode_bits().
+These must match the debug_options table in globals.c .
Exim's code assumes in a number of places that the debug_selector is one
word, and this is exposed in the local_scan ABI. The D_v and D_local_scan bit
Exim's code assumes in a number of places that the debug_selector is one
word, and this is exposed in the local_scan ABI. The D_v and D_local_scan bit
@@
-391,6
+392,7
@@
enum {
DEBUG_BIT(load),
DEBUG_BIT(lookup),
DEBUG_BIT(memory),
DEBUG_BIT(load),
DEBUG_BIT(lookup),
DEBUG_BIT(memory),
+ DEBUG_BIT(noutf8),
DEBUG_BIT(pid),
DEBUG_BIT(process_info),
DEBUG_BIT(queue_run),
DEBUG_BIT(pid),
DEBUG_BIT(process_info),
DEBUG_BIT(queue_run),
@@
-412,6
+414,7
@@
enum {
#define D_any (D_all & \
~(D_v | \
#define D_any (D_all & \
~(D_v | \
+ D_noutf8 | \
D_pid | \
D_timestamp) )
D_pid | \
D_timestamp) )
@@
-422,6
+425,7
@@
enum {
D_load | \
D_local_scan | \
D_memory | \
D_load | \
D_local_scan | \
D_memory | \
+ D_noutf8 | \
D_pid | \
D_timestamp | \
D_resolver))
D_pid | \
D_timestamp | \
D_resolver))
@@
-469,6
+473,7
@@
enum {
Li_outgoing_interface,
Li_outgoing_port,
Li_pid,
Li_outgoing_interface,
Li_outgoing_port,
Li_pid,
+ Li_pipelining,
Li_proxy,
Li_queue_time,
Li_queue_time_overall,
Li_proxy,
Li_queue_time,
Li_queue_time_overall,
@@
-550,6
+555,9
@@
table exim_errstrings[] in log.c */
#ifdef SUPPORT_I18N
# define ERRNO_UTF8_FWD (-49) /* target not supporting SMTPUTF8 */
#endif
#ifdef SUPPORT_I18N
# define ERRNO_UTF8_FWD (-49) /* target not supporting SMTPUTF8 */
#endif
+#if defined(SUPPORT_TLS) && defined(EXPERIMENTAL_REQUIRETLS)
+# define ERRNO_REQUIRETLS (-50) /* REQUIRETLS session not started */
+#endif
/* These must be last, so all retry deferments can easily be identified */
/* These must be last, so all retry deferments can easily be identified */
@@
-864,6
+872,7
@@
enum {
#define topt_use_bdat 0x100 /* prepend chunks with RFC3030 BDAT header */
#define topt_output_string 0x200 /* create string rather than write to fd */
#define topt_continuation 0x400 /* do not reset buffer */
#define topt_use_bdat 0x100 /* prepend chunks with RFC3030 BDAT header */
#define topt_output_string 0x200 /* create string rather than write to fd */
#define topt_continuation 0x400 /* do not reset buffer */
+#define topt_not_socket 0x800 /* cannot do socket-only syscalls */
/* Options for smtp_write_command */
/* Options for smtp_write_command */
@@
-1013,6
+1022,11
@@
enum { FILTER_UNSET, FILTER_FORWARD, FILTER_EXIM, FILTER_SIEVE };
#define OPTION_PIPE BIT(5)
#define OPTION_SIZE BIT(6)
#define OPTION_CHUNKING BIT(7)
#define OPTION_PIPE BIT(5)
#define OPTION_SIZE BIT(6)
#define OPTION_CHUNKING BIT(7)
+#define OPTION_REQUIRETLS BIT(8)
+
+/* Codes for tls_requiretls requests (usually by sender) */
+
+#define REQUIRETLS_MSG BIT(0) /* REQUIRETLS onward use */
/* Argument for *_getc */
/* Argument for *_getc */
@@
-1027,5
+1041,10
@@
enum { FILTER_UNSET, FILTER_FORWARD, FILTER_EXIM, FILTER_SIEVE };
#define UTF8_VERT_2DASH "\xE2\x95\x8E"
#define UTF8_VERT_2DASH "\xE2\x95\x8E"
+/* Options on tls_close */
+#define TLS_NO_SHUTDOWN 0
+#define TLS_SHUTDOWN_NOWAIT 1
+#define TLS_SHUTDOWN_WAIT 2
+
/* End of macros.h */
/* End of macros.h */