X-Git-Url: https://vcs.fsf.org/?p=exim.git;a=blobdiff_plain;f=src%2Fsrc%2Fstructs.h;h=9b51d0b7c113b8e257e34260c3421236a8542625;hp=791e11c698eb563fe689539335b8adef76ff5d23;hb=53947857fdb3c00bb673f6d2ac326dc4ccf01c6e;hpb=8e669ac162fe3b1040297f1d021de10778dce9d9 diff --git a/src/src/structs.h b/src/src/structs.h index 791e11c69..9b51d0b7c 100644 --- a/src/src/structs.h +++ b/src/src/structs.h @@ -1,10 +1,8 @@ -/* $Cambridge: exim/src/src/structs.h,v 1.4 2005/02/17 11:58:26 ph10 Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2005 */ +/* Copyright (c) University of Cambridge 1995 - 2009 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -67,7 +65,6 @@ typedef struct host_item { int status; /* Usable, unusable, or unknown */ int why; /* Why host is unusable */ int last_try; /* Time of last try if known */ - BOOL update_waiting; /* Turned off if wait db not to be updated */ } host_item; /* Chain of rewrite rules, read from the rewrite config, or parsed from the @@ -89,6 +86,7 @@ typedef struct transport_feedback { uschar *port; uschar *protocol; uschar *hosts; + uschar *helo_data; BOOL hosts_override; BOOL hosts_randomize; BOOL gethostbyname; @@ -138,6 +136,8 @@ typedef struct transport_instance { struct transport_instance *, struct address_item *, struct transport_feedback *, /* For passing back config data */ + uid_t, /* The uid that will be used */ + gid_t, /* The gid that will be used */ uschar **); /* For an error message */ /**************************************/ int batch_max; /* ) */ @@ -307,7 +307,7 @@ typedef struct router_info { router_instance *, struct address_item *, struct passwd *, - BOOL, + int, struct address_item **, struct address_item **, struct address_item **, @@ -320,34 +320,7 @@ typedef struct router_info { /* Structure for holding information about a lookup type. */ -typedef struct lookup_info { - uschar *name; /* e.g. "lsearch" */ - int type; /* query/singlekey/abs-file */ - void *(*open)( /* open function */ - uschar *, /* file name for those that have one */ - uschar **); /* for error message */ - BOOL (*check)( /* file checking function */ - void *, /* handle */ - uschar *, /* file name */ - int, /* modemask for file checking */ - uid_t *, /* owners for file checking */ - gid_t *, /* owngroups for file checking */ - uschar **); /* for error messages */ - int (*find)( /* find function */ - void *, /* handle */ - uschar *, /* file name or NULL */ - uschar *, /* key or query */ - int, /* length of key or query */ - uschar **, /* for returning answer */ - uschar **, /* for error message */ - BOOL *); /* to request cache cleanup */ - void (*close)( /* close function */ - void *); /* handle */ - void (*tidy)(void); /* tidy function */ - uschar *(*quote)( /* quoting function */ - uschar *, /* string to quote */ - uschar *); /* additional data from quote name */ -} lookup_info; +#include "lookupapi.h" /* Structure for holding information about the configured authentication @@ -360,10 +333,12 @@ typedef struct auth_instance { void *options_block; /* Pointer to private options */ uschar *driver_name; /* Must be first */ uschar *advertise_condition; /* Are we going to advertise this?*/ + uschar *client_condition; /* Should the client try this? */ uschar *public_name; /* Advertised name */ uschar *set_id; /* String to set as authenticated id */ uschar *mail_auth_condition; /* Condition for AUTH on MAIL command */ uschar *server_debug_string; /* Debugging output */ + uschar *server_condition; /* Authorization condition */ BOOL client; /* TRUE if client option(s) set */ BOOL server; /* TRUE if server options(s) set */ BOOL advertised; /* Set TRUE when advertised */ @@ -392,6 +367,8 @@ typedef struct auth_info { int, /* command timeout */ uschar *, /* buffer for reading response */ int); /* sizeof buffer */ + void (*version_report)( /* diagnostic version reporting */ + FILE *); /* I/O stream to print to */ } auth_info; @@ -469,6 +446,10 @@ typedef struct address_item_propagated { uschar *errors_address; /* where to send errors (NULL => sender) */ header_line *extra_headers; /* additional headers */ uschar *remove_headers; /* list of those to remove */ + + #ifdef EXPERIMENTAL_SRS + uschar *srs_sender; /* Change return path when delivering */ + #endif } address_item_propagated; /* Bits for the flags field below */ @@ -498,6 +479,8 @@ typedef struct address_item_propagated { #define af_verify_callout 0x00400000 /* for cached sender verify: callout was specified */ #define af_include_affixes 0x00800000 /* delivered with affixes in RCPT */ #define af_cert_verified 0x01000000 /* delivered with verified TLS cert */ +#define af_pass_message 0x02000000 /* pass message in bounces */ +#define af_bad_reply 0x04000000 /* filter could not generate autoreply */ /* These flags must be propagated when a child is created */ @@ -771,7 +754,7 @@ typedef struct acl_condition_block { int type; union { BOOL negated; - int varnumber; + uschar *varname; } u; } acl_condition_block;