X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Flocal_scan.h;h=206a843eccc25480b109d07aa15856599ae2ad5b;hb=b5695709aa5d65a2b6825eef3bf3ed556c66220d;hp=00a45bd4f49cf67c8f2d942980bffd3b9f8a6d58;hpb=a73f05479a4bed3bf77d21a75da9515c4ae83a62;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/local_scan.h b/src/src/local_scan.h index 00a45bd4f..206a843ec 100644 --- a/src/src/local_scan.h +++ b/src/src/local_scan.h @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2019 */ +/* Copyright (c) University of Cambridge 1995 - 2020 */ /* See the file NOTICE for conditions of use and distribution. */ /* This file is the header that is the only Exim header to be included in the @@ -10,6 +10,10 @@ source for the local_scan.c() function. It contains definitions that are made available for use in that function, and which are documented. That source should first #define LOCAL_SCAN +Not every definition that becomes available to the compiler by the inclusion +of this file is part of the local_scan API. The "Adding a local scan function +to Exim" chapter in the documentation is definitive. + This API is also used for functions called by the ${dlfunc expansion item. Source for those should first #define DLFUNC_IMPL and then include this file. Coders of dlfunc routines should read the notes on tainting at the start of @@ -103,8 +107,8 @@ ABI is changed in a non backward compatible way. The minor number is increased each time a new feature is added (in a way that doesn't break backward compatibility). */ -#define LOCAL_SCAN_ABI_VERSION_MAJOR 3 -#define LOCAL_SCAN_ABI_VERSION_MINOR 1 +#define LOCAL_SCAN_ABI_VERSION_MAJOR 4 +#define LOCAL_SCAN_ABI_VERSION_MINOR 0 #define LOCAL_SCAN_ABI_VERSION \ LOCAL_SCAN_ABI_VERSION_MAJOR.LOCAL_SCAN_ABI_VERSION_MINOR @@ -124,9 +128,11 @@ typedef struct { int type; union { void * value; + long offset; void (* fn)(); } v; } optionlist; +#define OPT_OFF(s, field) {.offset = offsetof(s, field)} /* Structure for holding information about an envelope address. The errors_to field is always NULL except for one_time aliases that had errors_to on the