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
Overhaul the debug_selector and log_selector machinery to support variable-length...
[exim.git]
/
src
/
src
/
structs.h
diff --git
a/src/src/structs.h
b/src/src/structs.h
index 71ac5d8e3b54a32e97b13f0ad40ce3ff48b1d4dd..438b52168561ac822b56e1ca86e91428fb03f06a 100644
(file)
--- a/
src/src/structs.h
+++ b/
src/src/structs.h
@@
-2,7
+2,7
@@
* Exim - an Internet mail transport agent *
*************************************************/
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 201
4
*/
+/* Copyright (c) University of Cambridge 1995 - 201
5
*/
/* See the file NOTICE for conditions of use and distribution. */
/* See the file NOTICE for conditions of use and distribution. */
@@
-38,7
+38,7
@@
typedef struct macro_item {
typedef struct bit_table {
uschar *name;
typedef struct bit_table {
uschar *name;
-
unsigned
int bit;
+ int bit;
} bit_table;
/* Block for holding a uid and gid, possibly unset, and an initgroups flag. */
} bit_table;
/* Block for holding a uid and gid, possibly unset, and an initgroups flag. */
@@
-59,8
+59,8
@@
typedef enum {DS_UNK=-1, DS_NO, DS_YES} dnssec_status_t;
typedef struct host_item {
struct host_item *next;
typedef struct host_item {
struct host_item *next;
-
uschar *name;
/* Host name */
-
uschar *address;
/* IP address in text form */
+
const uschar *name;
/* Host name */
+
const uschar *address;
/* IP address in text form */
int port; /* port value in host order (if SRV lookup) */
int mx; /* MX value if found via MX records */
int sort_key; /* MX*1000 plus random "fraction" */
int port; /* port value in host order (if SRV lookup) */
int mx; /* MX value if found via MX records */
int sort_key; /* MX*1000 plus random "fraction" */
@@
-148,6
+148,7
@@
typedef struct transport_instance {
uschar *home_dir; /* ) Used only for local transports */
uschar *current_dir; /* ) */
/**************************************/
uschar *home_dir; /* ) Used only for local transports */
uschar *current_dir; /* ) */
/**************************************/
+ uschar *expand_multi_domain; /* ) */
BOOL multi_domain; /* ) */
BOOL overrides_hosts; /* ) Used only for remote transports */
int max_addresses; /* ) */
BOOL multi_domain; /* ) */
BOOL overrides_hosts; /* ) Used only for remote transports */
int max_addresses; /* ) */
@@
-187,8
+188,8
@@
typedef struct transport_instance {
BOOL log_fail_output;
BOOL log_defer_output;
BOOL retry_use_local_part; /* Defaults true for local, false for remote */
BOOL log_fail_output;
BOOL log_defer_output;
BOOL retry_use_local_part; /* Defaults true for local, false for remote */
-#ifdef EXPERIMENTAL_
TPDA
- uschar *
tpda_delivery_action; /* String to expand on succes
s */
+#ifdef EXPERIMENTAL_
EVENT
+ uschar *
event_action; /* String to expand on notable event
s */
#endif
} transport_instance;
#endif
} transport_instance;
@@
-217,6
+218,11
@@
typedef struct transport_info {
+typedef struct {
+ uschar *request;
+ uschar *require;
+} dnssec_domains;
+
/* Structure for holding information about the configured routers. */
typedef struct router_instance {
/* Structure for holding information about the configured routers. */
typedef struct router_instance {
@@
-285,9
+291,7
@@
typedef struct router_instance {
BOOL verify_sender; /* Use this router when verifying a sender */
BOOL uid_set; /* Flag to indicate uid is set */
BOOL unseen; /* If TRUE carry on, even after success */
BOOL verify_sender; /* Use this router when verifying a sender */
BOOL uid_set; /* Flag to indicate uid is set */
BOOL unseen; /* If TRUE carry on, even after success */
-#ifdef EXPERIMENTAL_DSN
BOOL dsn_lasthop; /* If TRUE, this router is a DSN endpoint */
BOOL dsn_lasthop; /* If TRUE, this router is a DSN endpoint */
-#endif
int self_code; /* Encoded version of "self" */
uid_t uid; /* Fixed uid value */
int self_code; /* Encoded version of "self" */
uid_t uid; /* Fixed uid value */
@@
-297,6
+301,8
@@
typedef struct router_instance {
transport_instance *transport; /* Transport block (when found) */
struct router_instance *pass_router; /* Actual router for passed address */
struct router_instance *redirect_router; /* Actual router for generated address */
transport_instance *transport; /* Transport block (when found) */
struct router_instance *pass_router; /* Actual router for passed address */
struct router_instance *redirect_router; /* Actual router for generated address */
+
+ dnssec_domains dnssec;
} router_instance;
} router_instance;
@@
-460,6
+466,11
@@
typedef struct address_item_propagated {
#ifdef EXPERIMENTAL_SRS
uschar *srs_sender; /* Change return path when delivering */
#endif
#ifdef EXPERIMENTAL_SRS
uschar *srs_sender; /* Change return path when delivering */
#endif
+ #ifdef EXPERIMENTAL_INTERNATIONAL
+ BOOL utf8_msg:1; /* requires SMTPUTF8 processing */
+ BOOL utf8_downcvt:1; /* mandatory downconvert on delivery */
+ BOOL utf8_downcvt_maybe:1; /* optional downconvert on delivery */
+ #endif
} address_item_propagated;
/* Bits for the flags field below */
} address_item_propagated;
/* Bits for the flags field below */
@@
-495,6
+506,12
@@
typedef struct address_item_propagated {
# define af_prdr_used 0x08000000 /* delivery used SMTP PRDR */
#endif
#define af_force_command 0x10000000 /* force_command in pipe transport */
# define af_prdr_used 0x08000000 /* delivery used SMTP PRDR */
#endif
#define af_force_command 0x10000000 /* force_command in pipe transport */
+#ifdef EXPERIMENTAL_DANE
+# define af_dane_verified 0x20000000 /* TLS cert verify done with DANE */
+#endif
+#ifdef EXPERIMENTAL_INTERNATIONAL
+# define af_utf8_downcvt 0x40000000 /* downconvert was done for delivery */
+#endif
/* These flags must be propagated when a child is created */
/* These flags must be propagated when a child is created */
@@
-528,7
+545,7
@@
typedef struct address_item {
uschar *local_part; /* points to cc or lc version */
uschar *prefix; /* stripped prefix of local part */
uschar *suffix; /* stripped suffix of local part */
uschar *local_part; /* points to cc or lc version */
uschar *prefix; /* stripped prefix of local part */
uschar *suffix; /* stripped suffix of local part */
-
uschar *domain;
/* working domain (lower cased) */
+
const uschar *domain;
/* working domain (lower cased) */
uschar *address_retry_key; /* retry key including full address */
uschar *domain_retry_key; /* retry key for domain only */
uschar *address_retry_key; /* retry key including full address */
uschar *domain_retry_key; /* retry key for domain only */
@@
-556,11
+573,9
@@
typedef struct address_item {
uschar *auth_id; /* auth "login" name used by transport */
uschar *auth_sndr; /* AUTH arg to SMTP MAIL, used by transport */
uschar *auth_id; /* auth "login" name used by transport */
uschar *auth_sndr; /* AUTH arg to SMTP MAIL, used by transport */
- #ifdef EXPERIMENTAL_DSN
uschar *dsn_orcpt; /* DSN orcpt value */
int dsn_flags; /* DSN flags */
int dsn_aware; /* DSN aware flag */
uschar *dsn_orcpt; /* DSN orcpt value */
int dsn_flags; /* DSN flags */
int dsn_aware; /* DSN aware flag */
- #endif
uid_t uid; /* uid for transporting */
gid_t gid; /* gid for transporting */
uid_t uid; /* uid for transporting */
gid_t gid; /* gid for transporting */
@@
-581,7
+596,7
@@
typedef struct address_item {
/* ( also */
/* ( contains verify rc in sender verify cache */
short int transport_return; /* result of delivery attempt */
/* ( also */
/* ( contains verify rc in sender verify cache */
short int transport_return; /* result of delivery attempt */
- address_item_propagated p
;
/* fields that are propagated to children */
+ address_item_propagated p
rop;
/* fields that are propagated to children */
} address_item;
/* The table of header names consists of items of this type */
} address_item;
/* The table of header names consists of items of this type */
@@
-597,7
+612,7
@@
typedef struct {
typedef struct error_block {
struct error_block *next;
typedef struct error_block {
struct error_block *next;
- uschar *text1;
+
const
uschar *text1;
uschar *text2;
} error_block;
uschar *text2;
} error_block;
@@
-750,9
+765,9
@@
typedef struct redirect_block {
/* Structure for passing arguments to check_host() */
typedef struct check_host_block {
/* Structure for passing arguments to check_host() */
typedef struct check_host_block {
- uschar *host_name;
- uschar *host_address;
- uschar *host_ipv4;
+
const
uschar *host_name;
+
const
uschar *host_address;
+
const
uschar *host_ipv4;
BOOL negative;
} check_host_block;
BOOL negative;
} check_host_block;
@@
-768,7
+783,7
@@
typedef struct namedlist_cacheblock {
/* Structure for holding data for an entry in a named list */
typedef struct namedlist_block {
/* Structure for holding data for an entry in a named list */
typedef struct namedlist_block {
-
uschar *string;
/* the list string */
+
const uschar *string;
/* the list string */
namedlist_cacheblock *cache_data; /* cached domain_data or localpart_data */
int number; /* the number of the list for caching */
} namedlist_block;
namedlist_cacheblock *cache_data; /* cached domain_data or localpart_data */
int number; /* the number of the list for caching */
} namedlist_block;
@@
-791,4
+806,7
@@
typedef struct acl_block {
int verb;
} acl_block;
int verb;
} acl_block;
+/* smtp transport calc outbound_ip */
+typedef BOOL (*oicf) (uschar *message_id, void *data);
+
/* End of structs.h */
/* End of structs.h */