Copyright updates:
[exim.git] / src / src / globals.h
index 9dfa4a7689e6af2f9d4a98f4d82b35c7e224edd9..039aaf3d18989c5db3e0eb7e96d11e394437f1c9 100644 (file)
@@ -3,6 +3,7 @@
 *************************************************/
 
 /* Copyright (c) University of Cambridge 1995 - 2018 */
+/* Copyright (c) The Exim Maintainers 2020 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 /* Almost all the global variables are defined together in this one header, so
@@ -68,6 +69,7 @@ extern uschar *redis_servers;          /* List of servers and connect info */
 #endif
 
 #ifdef LOOKUP_SQLITE
+extern uschar *sqlite_dbfile;         /* Filname for database */
 extern int     sqlite_lock_timeout;    /* Internal lock waiting timeout */
 #endif
 
@@ -274,6 +276,8 @@ extern struct global_flags {
  BOOL   synchronous_delivery           :1; /* TRUE if -odi is set */
  BOOL   system_filtering               :1; /* TRUE when running system filter */
 
+ BOOL   taint_check_slow               :1; /* malloc/mmap are not returning distinct ranges */
+ BOOL  testsuite_delays                :1; /* interprocess sequencing delays, under testsuite */
  BOOL   tcp_fastopen_ok                        :1; /* appears to be supported by kernel */
  BOOL   tcp_in_fastopen                        :1; /* conn usefully used fastopen */
  BOOL   tcp_in_fastopen_data           :1; /* fastopen carried data */
@@ -341,7 +345,7 @@ extern gid_t  *admin_groups;           /* List of admin groups */
 extern BOOL    allow_domain_literals;  /* As it says */
 extern BOOL    allow_mx_to_ip;         /* Allow MX records to -> ip address */
 #ifdef EXPERIMENTAL_ARC
-struct arc_set *arc_received;         /* highest ARC instance evaluation struct */
+extern struct arc_set *arc_received;   /* highest ARC instance evaluation struct */
 extern int     arc_received_instance;  /* highest ARC instance number in headers */
 extern int     arc_oldest_pass;        /* lowest passing instance number in headers */
 extern const uschar *arc_state;               /* verification state */
@@ -445,6 +449,7 @@ typedef struct {
 } cut_t;
 extern cut_t cutthrough;               /* Deliver-concurrently */
 
+extern int     daemon_notifier_fd;     /* Unix socket for notifications */
 extern uschar *daemon_smtp_port;       /* Can be a list of ports */
 extern int     daemon_startup_retries; /* Number of times to retry */
 extern int     daemon_startup_sleep;   /* Sleep between retries */
@@ -487,7 +492,9 @@ extern uschar *deliver_localpart_data; /* From local part lookup */
 extern uschar *deliver_localpart_orig; /* The original local part for delivery */
 extern uschar *deliver_localpart_parent; /* The parent local part for delivery */
 extern uschar *deliver_localpart_prefix; /* The stripped prefix, if any */
+extern uschar *deliver_localpart_prefix_v; /* The stripped-prefix variable portion, if any */
 extern uschar *deliver_localpart_suffix; /* The stripped suffix, if any */
+extern uschar *deliver_localpart_suffix_v; /* The stripped-suffix variable portion, if any */
 extern uschar *deliver_localpart_verified; /* de-tainted by check_local_part */
 extern uschar *deliver_out_buffer;     /* Buffer for copying file */
 extern int     deliver_queue_load_max; /* Different value for queue running */
@@ -509,6 +516,7 @@ extern uschar *dkim_signing_domain;    /* Expansion variable, domain used for si
 extern uschar *dkim_signing_selector;  /* Expansion variable, selector used for signing a message. */
 extern uschar *dkim_verify_hashes;     /* Preference order for signatures */
 extern uschar *dkim_verify_keytypes;   /* Preference order for signatures */
+extern uschar *dkim_verify_min_keysizes; /* list of minimum key sizes, keyed by algo */
 extern BOOL    dkim_verify_minimal;    /* Shortcircuit signture verification */
 extern uschar *dkim_verify_overall;    /* First successful domain verified, or null */
 extern uschar *dkim_verify_signers;    /* Colon-separated list of domains for each of which we call the DKIM ACL */
@@ -730,8 +738,7 @@ extern int     mime_part_count;
 extern BOOL    mua_wrapper;            /* TRUE when Exim is wrapping an MUA */
 
 extern uid_t  *never_users;            /* List of uids never to be used */
-#ifdef WITH_CONTENT_SCAN
-#endif
+extern uschar *notifier_socket;        /* Name for daemon notifier unix-socket */
 
 extern const int on;                   /* For setsockopt */
 extern const int off;
@@ -767,6 +774,7 @@ extern BOOL    print_topbitchars;      /* Topbit chars are printing chars */
 extern uschar *process_info;           /* For SIGUSR1 output */
 extern int     process_info_len;
 extern uschar *process_log_path;       /* Alternate path */
+extern const uschar *process_purpose;  /* for debug output */
 extern BOOL    prod_requires_admin;    /* TRUE if prodding requires admin */
 
 #if defined(SUPPORT_PROXY) || defined(SUPPORT_SOCKS)
@@ -785,6 +793,9 @@ extern uschar *prvscheck_result;       /* Set during prvscheck expansion item */
 extern const uschar *qualify_domain_recipient; /* Domain to qualify recipients with */
 extern uschar *qualify_domain_sender;  /* Domain to qualify senders with */
 extern uschar *queue_domains;          /* Queue these domains */
+#ifdef EXPERIMENTAL_QUEUE_RAMP
+extern BOOL    queue_fast_ramp;        /* 2-phase queue-run overlap */
+#endif
 extern BOOL    queue_list_requires_admin; /* TRUE if -bp requires admin */
                                        /*   immediate children */
 extern pid_t   queue_run_pid;          /* PID of the queue running process or 0 */
@@ -799,6 +810,8 @@ extern uschar *queue_only_file;        /* Queue if file exists/not-exists */
 extern BOOL    queue_only_override;    /* Allow override from command line */
 extern BOOL    queue_run_in_order;     /* As opposed to random */
 extern uschar *queue_run_max;          /* Max queue runners */
+extern unsigned queue_size;            /* items in queue */
+extern time_t  queue_size_next;        /* next time to evaluate queue_size */
 extern uschar *queue_smtp_domains;     /* Ditto, for these domains */
 
 extern unsigned int random_seed;       /* Seed for random numbers */