1 /* 2 ** Copyright (c) 2005-2009 Sendmail, Inc. and its suppliers. 3 ** All rights reserved. 4 ** 5 ** Copyright (c) 2009-2014, 2016, The Trusted Domain Project. 6 ** All rights reserved. 7 */ 8 9 #ifndef _OPENARC_H_ 10 #define _OPENARC_H_ 11 12 #define ARCF_PRODUCT "OpenARC Filter" 13 #define ARCF_PRODUCTNS "OpenARC-Filter" 14 15 #include "build-config.h" 16 17 /* system includes */ 18 #include <sys/types.h> 19 #ifdef HAVE_STDBOOL_H 20 # include <stdbool.h> 21 #endif /* HAVE_STDBOOL_H */ 22 23 /* libmilter */ 24 #ifdef ARCF_MILTER_PROTOTYPES 25 # include <libmilter/mfapi.h> 26 #endif /* ARCF_MILTER_PROTOTYPES */ 27 28 /* libopenarc */ 29 #include "arc.h" 30 31 /* libjansson */ 32 #ifdef USE_JANSSON 33 # include <jansson.h> 34 #endif /* USE_JANSSON */ 35 36 /* make sure we have TRUE and FALSE */ 37 #ifndef FALSE 38 # define FALSE 0 39 #endif /* !FALSE */ 40 #ifndef TRUE 41 # define TRUE 1 42 #endif /* !TRUE */ 43 44 /* defaults, limits, etc. */ 45 #define BUFRSZ 1024 46 #define CONFIGOPTS "Ac:flnp:P:rt:u:vV" 47 #define DEFCONFFILE CONFIG_BASE "/openarc.conf" 48 #define DEFINTERNAL "csl:127.0.0.1,::1" 49 #define DEFMAXHDRSZ 65536 50 #define HOSTUNKNOWN "unknown-host" 51 #define JOBIDUNKNOWN "(unknown-jobid)" 52 #define LOCALHOST "127.0.0.1" 53 #define LOCALHOST6 "::1" 54 #define MAXADDRESS 256 55 #define MAXARGV 65536 56 #define MAXBUFRSZ 65536 57 #define MAXHDRCNT 64 58 #define MAXHDRLEN 78 59 #define MAXSIGNATURE 1024 60 #define MTAMARGIN 78 61 #define NULLDOMAIN "(invalid)" 62 #define UNKNOWN "unknown" 63 64 #define AUTHRESULTSHDR "Authentication-Results" 65 #define SWHEADERNAME "ARC-Filter" 66 67 /* 68 ** HEADER -- a handle referring to a header 69 */ 70 71 typedef struct Header * Header; 72 struct Header 73 { 74 char * hdr_hdr; 75 char * hdr_val; 76 struct Header * hdr_next; 77 struct Header * hdr_prev; 78 }; 79 80 /* externs */ 81 extern _Bool dolog; 82 extern char *progname; 83 84 /* prototypes, exported for test.c */ 85 extern ARC_MESSAGE *arcf_getarc __P((void *)); 86 87 #ifdef ARCF_MILTER_PROTOTYPES 88 extern sfsistat mlfi_connect __P((SMFICTX *, char *, _SOCK_ADDR *)); 89 extern sfsistat mlfi_envfrom __P((SMFICTX *, char **)); 90 extern sfsistat mlfi_envrcpt __P((SMFICTX *, char **)); 91 extern sfsistat mlfi_header __P((SMFICTX *, char *, char *)); 92 extern sfsistat mlfi_eoh __P((SMFICTX *)); 93 extern sfsistat mlfi_body __P((SMFICTX *, u_char *, size_t)); 94 extern sfsistat mlfi_eom __P((SMFICTX *)); 95 extern sfsistat mlfi_abort __P((SMFICTX *)); 96 extern sfsistat mlfi_close __P((SMFICTX *)); 97 #endif /* ARCF_MILTER_PROTOTYPES */ 98 99 #endif /* _OPENARC_H_ */ 100