head	1.58;
access;
symbols
	milter-greylist-4-5-13:1.58
	milter-greylist-4-5-12:1.58
	milter-greylist-4-5-11:1.58
	milter-greylist-4-5-10:1.58
	milter-greylist-4-9-10:1.58
	milter-greylist-4-5-8:1.57
	milter-greylist-4-5-9:1.58
	milter-greylist-4-5-7:1.57
	milter-greylist-4-5-6:1.57
	milter-greylist-4-5:1.57
	milter-greylist-4-5-5:1.57
	milter-greylist-4-5-4:1.57
	milter-greylist-4-5-3:1.57
	milter-greylist-4-5-2:1.56
	milter-greylist-4-5-1:1.55
	milter-greylist-4-4-3:1.55
	milter-greylist-4-4-2:1.54
	milter-greylist-4-4-1:1.54
	milter-greylist-4-4:1.54
	milter-greylist-4-4-rc1:1.54
	milter-greylist-4-4-alpha4:1.54
	milter-greylist-4-4-alpha3:1.54
	milter-greylist-4-4-alpha2:1.54
	milter-greylist-4-4-alpha1:1.54
	milter-greylist-4-2-7:1.49
	milter-greylist-4-3-9:1.51
	milter-greylist-4-2-6:1.49
	milter-gresylit-4-2-6:1.49
	milter-greylist-4-3-8:1.51
	milter-greylist-4-3-7:1.51
	milter-greylist-4-2-5:1.49
	milter-greylist-4-3-6:1.51
	milter-greylist-4-2-4:1.49
	milter-greylist-4-3-5:1.51
	milter-greylist-4-3-4:1.51
	milter-greylist-4-2-3:1.49
	milter-greylist-4-3-3:1.49
	rmilter-greylist-4-2-3:1.49
	milter-greylist-4-3-2:1.49
	milter-greylist-4-3-1:1.49
	milter-greylist-2-2-2:1.49
	milter-greylist-4-2-2:1.49
	milter-greylist-4-2-1:1.49
	milter-greylist-4-2:1.49
	milter-greylist-4-2-rc1:1.49
	milter-greylist-4-2-beta1:1.49
	milter-greylist-4-2-branch:1.49.0.2
	milter-greylist-4-2-base:1.49
	milter-greylist-4-2-0-base:1.49
	milter-greylist-4-1-12:1.49
	milter-greylist-4-1-11:1.49
	milter-greylist-4-1-10:1.49
	milter-greylist-4-1-9:1.49
	milter-greylist-4-1-8:1.48
	milter-greylist-4-1-7:1.48
	milter-greylist-4-1-6:1.46
	milter-greylist-4-0-1:1.40
	milter-greylist-4-0-1-rc1:1.40
	milter-greylist-4-1-5:1.41
	milter-greylist-4-1-4:1.41
	milter-greylist-4-1-3:1.41
	milter-greylist-4-1-2:1.41
	milter-greylist-4-1-1:1.41
	milter-greylist-4-0-branch:1.40.0.2
	milter-greylist-4-0-base:1.40
	milter-greylist-4-0:1.40
	milter-greylist-4-0-rc2:1.40
	milter-greylist-4-0-rc1:1.40
	milter-greylist-4-0-beta4:1.40
	milter-greylist-4-0-beta3:1.40
	milter-greylist-4-0-beta2:1.40
	milter-greylist-4-0-beta1:1.40
	milter-greylist-4-0-alpha6:1.40
	milter-greylist-4-0-alpha5:1.40
	milter-greylist-4-0-alpha4:1.40
	milter-greylist-4-0-alpha3:1.40
	milter-greylist-4-0-alpha2:1.40
	milter-greylist-4-0-alpha1:1.40
	milter-greylist-3-1-8:1.40
	milter-greylist-3-1-7:1.40
	milter-greylist-3-1-6:1.40
	milter-greylist-3-1-5:1.40
	milter-greylist-3-1-5-alpha1:1.39
	milter-greylist-3-0-1-beta1:1.37.2.2
	milter-greylist-3-1-4:1.39
	milter-greylist-3-1-3:1.39
	milter-greylist-3-1-2:1.39
	milter-greylist-3-1-1:1.38
	milter-greylist-3-0:1.37.2.2
	milter-greylist-3-0-rc7:1.37.2.2
	milter-greylist-3-0-rc6:1.37.2.2
	milter-greylist-3-0-rc5:1.37.2.2
	milter-greylist-3-0-rc4:1.37.2.2
	milter-greylist-3-0-rc3:1.37.2.2
	milter-greylist-3-0-rc2:1.37.2.2
	milter-greylist-3-0-rc1:1.37.2.2
	milter-greylist-3-0-alpha6:1.37.2.1
	milter-greylist-3-0-branch:1.37.0.2
	milter-greylist-3-0-base:1.37
	milter-greylist-3-0-alpha5:1.37
	milter-greylist-3-0-alpha4:1.36
	milter-greylist-3-0-alpha3:1.36
	milter-greylist-3-0-alpha2:1.36
	milter-greylist-3-0-alpha1:1.36
	milter-greylist-2-1-12:1.36
	milter-greylist-2-1-11:1.36
	milter-greylist-2-1-10:1.36
	milter-greylist-2-1-9:1.36
	milter-greylist-2-1-9a1:1.36
	milter-greylist-2-1-8:1.36
	milter-greylist-2-1-7:1.36
	milter-greylist-2-1-6:1.35
	milter-greylist-2-1-5:1.35
	milter-greylist-2-1-4:1.35
	milter-greylist-2-1-3:1.34
	milter-greylist-2-1-2:1.33
	milter-greylist-2-1-1:1.33
	milter-greylist-2-0-2:1.31
	milter-greylist-2-0-1:1.31
	milter-greylist-2-0-1-b1:1.31
	milter-greylist-2-0-release:1.31
	milter-greylist-2-0-rc5:1.31
	milter-greylist-2-0-rc4:1.31
	milter-greylist-2-0-rc3:1.31
	milter-grey-list-2-0-rc3:1.31
	milter-grey-list-2-0-rc2:1.31
	milter-grey-list-2-0-rc1:1.31
	milter-greylist-2-0-beta7:1.31
	milter-greylist-2-0-beta6:1.31
	milter-gre-ylist-2-0-beta5:1.31
	milter-greylist-2-0-beta5:1.31
	milter-greylist-2-0-beta4:1.31
	milter-greylist-2-0-beta3:1.31
	milter-greylist-2-0-beta2:1.30
	milter-greylist-2-0:1.30.0.2
	milter-greylist-2-0-base:1.30
	milter-greylist-2-0-beta1:1.30
	milter-greylist-1-7-5:1.30
	before_delayed_tempfail:1.29
	milter-greylist-1-7-4:1.29
	milter-greylist-1-7-3:1.29
	milter-greylist-1-7-2:1.28
	milter-greylist-1-6-0:1.27
	milter-greylist-1-7-1:1.27
	milter-greylist-1-6rc1:1.27
	milter-greylist-1-6:1.27.0.2
	milter-greylist-1-6-base:1.27
	milter-greylist-1-5-12:1.27
	milter-greylist-1-5-11:1.27
	milter-greylist-1-5-10:1.27
	milter-greylist-1-5-9:1.27
	milter-greylist-1-5-8:1.26
	milter-greylist-1-5-7:1.26
	milter-greylist-1-5-6:1.26
	milter-greylist-1-5-5:1.25
	milter-greylist-1-5-4:1.25
	milter-greylist-1-5-3:1.23
	milter-greylist-1-5-2:1.23
	milter-greylist-1-5-1:1.23
	milter-greylist-1-4:1.23.0.2
	milter-greylist-1-4-base:1.23
	milter-greylist-1-3-9:1.23
	milter-greylist-1-3-8:1.22
	milter-greylist-1-3-7:1.22
	milter-greylist-1-3-6:1.22
	milter-greylist-1-3-5:1.22
	milter-greylist-1-3-4:1.22
	milter-greylist-1-3-3:1.21
	BDB:1.19.0.2
	BDB-base:1.19
	before_BDB:1.17
	milter-greylist-1-2-2:1.16
	milter-greylist-1-3-2:1.17
	milter-greylist-1-2-1:1.16
	milter-greylist-1-2-0:1.16
	milter-greylist-1-2:1.16.0.2
	milter-greylist-1-2-base:1.16
	milter-greylist-1-1-16:1.16
	milter-greylist-1-1-15:1.16
	milter-greylis-1-1-15:1.16
	milter-greylis-1-1-16:1.16
	milter-greylist-1-1-14:1.16
	milter-greylist-1-1-13:1.16
	milter-greylist-1-1-12:1.16
	milter-greylist-1-1-11:1.16
	milter-greylist-1-1-10:1.16
	milter-greylist-1-10rc1:1.16
	milter-greylist-1-1-9:1.15
	milter-greylist-1-1-8:1.14
	milter-greylist-1-1-7:1.10
	milter-greylist-1-1-6:1.10
	milter-greylist-1-1-5:1.10
	milter-greylist-1-1-4:1.8
	milter-greylist-1-1-3:1.4
	milter-greylist-1-1-2:1.4
	milter-greylist-1-0-2:1.4
	rmilter-greylist-1-0-1:1.4
	milter-greylist-1-0-1:1.4
	milter-greylist-1-1-1:1.4
	milter-greylist-1-0-base:1.4
	milter-greylist-1-0:1.4.0.2
	milter-greylist-1-0-0:1.4
	milter-greylist-0-27:1.4
	milter-greylist-0-26:1.4
	milter-greylist-0-25:1.4
	milter-greylist-0-24:1.4
	milter-greylist-0-23:1.4
	milter-greylist-0-22:1.4
	milter-greylist-0-21:1.4
	milter-greylist-0-20:1.4
	milter-greylist-0-19:1.2
	milter-greylist-0-18:1.1
	milter-greylist-0-17:1.1
	milter-greylist-0-16:1.1
	milter-greylist-0-15:1.1
	milter-greylist-0-14:1.1
	milter-greylist-0-13:1.1;
locks; strict;
comment	@ * @;


1.58
date	2014.02.04.15.19.25;	author manu;	state Exp;
branches;
next	1.57;

1.57
date	2013.08.16.03.02.34;	author manu;	state Exp;
branches;
next	1.56;

1.56
date	2013.08.13.03.45.35;	author manu;	state Exp;
branches;
next	1.55;

1.55
date	2013.01.19.16.01.15;	author manu;	state Exp;
branches;
next	1.54;

1.54
date	2012.02.21.05.53.43;	author manu;	state Exp;
branches;
next	1.53;

1.53
date	2012.02.20.13.49.52;	author manu;	state Exp;
branches;
next	1.52;

1.52
date	2011.08.17.01.06.49;	author manu;	state Exp;
branches;
next	1.51;

1.51
date	2009.09.09.12.19.17;	author manu;	state Exp;
branches;
next	1.50;

1.50
date	2009.09.07.12.56.54;	author manu;	state Exp;
branches;
next	1.49;

1.49
date	2009.01.17.04.32.55;	author manu;	state Exp;
branches;
next	1.48;

1.48
date	2008.11.06.11.23.53;	author manu;	state Exp;
branches;
next	1.47;

1.47
date	2008.10.30.04.39.39;	author manu;	state Exp;
branches;
next	1.46;

1.46
date	2008.09.26.23.35.44;	author manu;	state Exp;
branches;
next	1.45;

1.45
date	2008.09.26.17.00.51;	author manu;	state Exp;
branches;
next	1.44;

1.44
date	2008.09.07.00.13.34;	author manu;	state Exp;
branches;
next	1.43;

1.43
date	2008.09.02.04.15.33;	author manu;	state Exp;
branches;
next	1.42;

1.42
date	2008.08.21.21.05.35;	author manu;	state Exp;
branches;
next	1.41;

1.41
date	2007.12.29.19.06.49;	author manu;	state Exp;
branches;
next	1.40;

1.40
date	2007.02.06.14.29.55;	author manu;	state Exp;
branches;
next	1.39;

1.39
date	2006.12.26.21.21.52;	author manu;	state Exp;
branches;
next	1.38;

1.38
date	2006.09.20.07.50.09;	author manu;	state Exp;
branches;
next	1.37;

1.37
date	2006.08.30.04.57.58;	author manu;	state Exp;
branches
	1.37.2.1;
next	1.36;

1.36
date	2006.07.26.13.03.11;	author manu;	state Exp;
branches;
next	1.35;

1.35
date	2006.02.17.19.46.13;	author manu;	state Exp;
branches;
next	1.34;

1.34
date	2006.01.11.06.40.39;	author manu;	state Exp;
branches;
next	1.33;

1.33
date	2006.01.08.00.38.25;	author manu;	state Exp;
branches;
next	1.32;

1.32
date	2005.11.30.23.32.12;	author manu;	state Exp;
branches;
next	1.31;

1.31
date	2005.03.19.07.38.53;	author manu;	state Exp;
branches;
next	1.30;

1.30
date	2005.01.29.18.42.53;	author manu;	state Exp;
branches;
next	1.29;

1.29
date	2004.12.16.23.08.13;	author manu;	state Exp;
branches;
next	1.28;

1.28
date	2004.12.08.22.23.09;	author manu;	state Exp;
branches;
next	1.27;

1.27
date	2004.10.11.20.57.42;	author manu;	state Exp;
branches;
next	1.26;

1.26
date	2004.08.08.21.24.20;	author manu;	state Exp;
branches;
next	1.25;

1.25
date	2004.08.01.09.27.03;	author manu;	state Exp;
branches;
next	1.24;

1.24
date	2004.06.25.22.28.08;	author manu;	state Exp;
branches;
next	1.23;

1.23
date	2004.06.08.12.04.21;	author manu;	state Exp;
branches;
next	1.22;

1.22
date	2004.05.26.09.14.29;	author manu;	state Exp;
branches;
next	1.21;

1.21
date	2004.05.24.21.57.36;	author manu;	state Exp;
branches;
next	1.20;

1.20
date	2004.05.24.21.22.02;	author manu;	state Exp;
branches;
next	1.19;

1.19
date	2004.05.23.13.03.41;	author manu;	state Exp;
branches;
next	1.18;

1.18
date	2004.05.15.08.41.54;	author manu;	state Exp;
branches;
next	1.17;

1.17
date	2004.04.22.23.27.57;	author manu;	state Exp;
branches;
next	1.16;

1.16
date	2004.04.02.15.06.52;	author manu;	state Exp;
branches;
next	1.15;

1.15
date	2004.04.02.08.57.18;	author manu;	state Exp;
branches;
next	1.14;

1.14
date	2004.04.01.21.03.58;	author manu;	state Exp;
branches;
next	1.13;

1.13
date	2004.04.01.20.49.16;	author manu;	state Exp;
branches;
next	1.12;

1.12
date	2004.04.01.20.46.34;	author manu;	state Exp;
branches;
next	1.11;

1.11
date	2004.04.01.20.36.00;	author manu;	state Exp;
branches;
next	1.10;

1.10
date	2004.03.31.17.02.08;	author manu;	state Exp;
branches;
next	1.9;

1.9
date	2004.03.31.15.31.59;	author manu;	state Exp;
branches;
next	1.8;

1.8
date	2004.03.31.12.10.16;	author manu;	state Exp;
branches;
next	1.7;

1.7
date	2004.03.31.11.39.26;	author manu;	state Exp;
branches;
next	1.6;

1.6
date	2004.03.31.10.07.17;	author manu;	state Exp;
branches;
next	1.5;

1.5
date	2004.03.31.09.49.16;	author manu;	state Exp;
branches;
next	1.4;

1.4
date	2004.03.19.10.16.38;	author manu;	state Exp;
branches;
next	1.3;

1.3
date	2004.03.18.22.37.21;	author manu;	state Exp;
branches;
next	1.2;

1.2
date	2004.03.18.09.55.14;	author manu;	state Exp;
branches;
next	1.1;

1.1
date	2004.03.10.21.11.45;	author manu;	state Exp;
branches;
next	;

1.37.2.1
date	2006.09.04.22.05.58;	author manu;	state Exp;
branches;
next	1.37.2.2;

1.37.2.2
date	2006.09.20.07.38.24;	author manu;	state Exp;
branches;
next	;


desc
@@


1.58
log
@multiracl option to disable sticky whitelisting among recipients
@
text
@/* $Id: conf.h,v 1.57 2013/08/16 03:02:34 manu Exp $ */

/*
 * Copyright (c) 2004 Emmanuel Dreyfus
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *        This product includes software developed by Emmanuel Dreyfus
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,  
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef _CONF_H_
#define _CONF_H_

#include "config.h"
#if defined(HAVE_OLD_QUEUE_H) || !defined(HAVE_SYS_QUEUE_H)
#include "queue.h"
#else 
#include <sys/queue.h>
#endif

#include <stdio.h>
#include <pthread.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#include "pending.h"

#ifndef CONFFILE
#define CONFFILE "/etc/mail/greylist.conf"
#endif

#ifndef DRACDB
#define DRACDB "/usr/local/etc/dracdb.db"
#endif

TAILQ_HEAD(conf_list, conf_rec);
struct conf_rec {
	int c_refcount;
	time_t c_timestamp;
	TAILQ_ENTRY(conf_rec) c_chain;

	int c_forced;
	int c_debug;
	int c_acldebug;
	int c_quiet;
	int c_noauth;
	int c_multiracl;
	int c_noaccessdb;
	int c_nospf;
	int c_delayedreject;
	int c_testmode;
	int c_delay;
	int c_autowhite_validity;
	int c_tarpit;
	tarpit_scope_t c_tarpit_scope;
	char *c_pidfile;
	char *c_dumpfile;
	int c_dumpfile_mode;
	struct in_addr c_match_mask;
#ifdef AF_INET6
	struct in6_addr c_match_mask6;
#endif
	char *c_socket;
	int c_socket_mode;
	char *c_user;
	char *c_syncaddr;
	char *c_syncport;
	char *c_syncsrcaddr;
	char *c_syncsrcport;
	int c_syncmaxqlen;
	int c_nodetach;
	int c_report;
	int c_lazyaw;
	int c_dumpfreq;
	int c_timeout;
	int c_extendedregex;
	int c_unbracket;
	char *c_dracdb;
	int c_nodrac;
	int c_dump_no_time_translation;
	int c_logexpired;
	int c_logfac;
	char c_pidfile_storage[QSTRLEN + 1];
	char c_dumpfile_storage[QSTRLEN + 1];
	char c_socket_storage[QSTRLEN + 1];
	char c_user_storage[QSTRLEN + 1];
	char c_syncaddr_storage[IPADDRSTRLEN + 1];
	char c_syncport_storage[NUMLEN + 1];
	char c_syncsrcaddr_storage[IPADDRSTRLEN + 1];
	char c_syncsrcport_storage[NUMLEN + 1];
	char c_dracdb_storage[QSTRLEN + 1];
	size_t c_maxpeek;
	int c_domainexact;
#ifdef USE_P0F
	char c_p0fsock[QSTRLEN + 1];
#endif
#ifdef USE_SPAMD
	char c_spamdsock[QSTRLEN + 1];
	char c_spamdsocktype[QSTRLEN + 1];
#endif
	struct sockaddr_storage c_localaddr;
	char c_localaddr_string[IPADDRSTRLEN];
	int c_fixldapcheck;
};

/* c_forced flags */
#define C_GLNONE	0x00000
#define C_DEBUG		0x00001
#define C_QUIET		0x00002
#define C_NOAUTH	0x00004
#define C_NOSPF		0x00008 
#define C_TESTMODE	0x00010
#define C_DELAY		0x00020
#define C_AUTOWHITE	0x00040
#define C_PIDFILE	0x00080
#define C_DUMPFILE	0x00100
#define C_MATCHMASK	0x00200
#define C_SOCKET	0x00400
#define C_USER		0x00800
#define C_NODETACH	0x01000
#define C_LAZYAW	0x02000
#define C_MATCHMASK6	0x04000
#define C_ACLDEBUG	0x08000
#define C_DOMAINEXACT	0x10000
#define C_TARPIT	0x20000
#define C_TARPIT_SCOPE	0x40000
#define C_NOTFORCED(x) 	((conf.c_forced & (x)) == 0) 

/* c_report */
#define C_NOTHING	0x0
#define C_DELAYS	0x1
#define C_NODELAYS	0x2
#define C_ALL		0x3

extern struct conf_rec defconf;
extern pthread_key_t conf_key;
#define GET_CONF() ((struct conf_rec *)pthread_getspecific(conf_key))
#define conf (*GET_CONF())
extern char *conffile;
extern int conf_cold;
extern int conf_specified;

void conf_init(void);
void conf_load(void);
void conf_update(void);
void conf_retain(void);
void conf_release(void);

extern FILE *conf_in;
extern int conf_line;
extern int conf_acl_end;
extern int conf_racl_end;
extern int conf_dacl_end;

int conf_parse(void);
void conf_dispose_input_file(void);
char *quotepath(char *, char *, size_t);
char *quotepath_alloc(const char *);
void conf_defaults(struct conf_rec *);

#endif /* _CONF_H_ */
@


1.57
log
@unbracket option to resolved MTA-passed bracketed unresolved IP
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.56 2013/08/13 03:45:35 manu Exp $ */
d69 1
@


1.56
log
@Use localaddr for p0f and %V format string (Jim Klimov)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.55 2013/01/19 16:01:15 manu Exp $ */
d98 1
@


1.55
log
@More Solaris build fixes (Jim Klimov)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.54 2012/02/21 05:53:43 manu Exp $ */
d122 1
@


1.54
log
@p0f v3 support
bump to 4.4a1
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.52 2011/08/17 01:06:49 manu Exp $ */
d36 1
a36 1
#ifdef HAVE_OLD_QUEUE_H
@


1.53
log
@Add continue type AC
@
text
@@


1.52
log
@localaddr option so that Postifix user can use spf self
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.51 2009/09/09 12:19:17 manu Exp $ */
d122 1
@


1.51
log
@Fix Debian startup script
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.50 2009/09/07 12:56:54 manu Exp $ */
d121 1
@


1.50
log
@New tarpit feature (Kouhei Sutou)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.49 2009/01/17 04:32:55 manu Exp $ */
d158 1
@


1.49
log
@Workaround "peer queue overflow" bugs (Laurence Moindrot, Jean Benoit)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.48 2008/11/06 11:23:53 manu Exp $ */
d75 2
d142 2
@


1.48
log
@Add option to match exact domain instead of substrings (Rick Adams)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.47 2008/10/30 04:39:39 manu Exp $ */
d89 1
@


1.47
log
@Make sure DKIM code does not use invalid pointer on a not yet initialized config
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.46 2008/09/26 23:35:44 manu Exp $ */
d110 1
d138 1
@


1.46
log
@Spamassassin support and DATA-stage greylisting (Manuel Badzong)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.45 2008/09/26 17:00:51 manu Exp $ */
a109 3
#ifdef USE_DKIM	
	DKIM_LIB *c_dkim;
#endif
@


1.45
log
@        Allow syslog facility to be configured (Joe Pruett)
	Allow logging to be disabled on a per-ACL basis (Joe Pruett)v
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.44 2008/09/07 00:13:34 manu Exp $ */
d116 4
@


1.44
log
@Experimental p0f support
Fix a memory leak in GeoIP code
Fix a memory leak in DKIM code
Bump to revision to 4.1.6 (but no tag yet)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.43 2008/09/02 04:15:33 manu Exp $ */
d99 1
@


1.43
log
@Build again without DKIM
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.42 2008/08/21 21:05:35 manu Exp $ */
d112 3
@


1.42
log
@Exprimental DKIM support
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.41 2007/12/29 19:06:49 manu Exp $ */
d109 1
d111 1
@


1.41
log
@Add configurable dumpfile permissions
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.40 2007/02/06 14:29:55 manu Exp $ */
d109 1
@


1.40
log
@Allow specifying socket mode in config file
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.39 2006/12/26 21:21:52 manu Exp $ */
d77 1
@


1.39
log
@Allow header and body searches in DATA-stage ACL
Allow CIDR match for DNSRBL (not tested)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.38 2006/09/20 07:50:09 manu Exp $ */
d82 1
@


1.38
log
@Warn about ignored ACL lines after acl default rule
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.37 2006/08/30 04:57:58 manu Exp $ */
d106 1
d151 2
@


1.37
log
@Fix various race conditions (AIDA Shinra)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.36 2006/07/26 13:03:11 manu Exp $ */
d149 1
@


1.37.2.1
log
@Back out race conditions fixes (too intrusive, will be back in 3.1.x)
@
text
@a44 1
#include <sys/time.h>
d58 5
a62 3
#define CONF_WRLOCK WRLOCK(conf_lock) 
#define CONF_RDLOCK RDLOCK(conf_lock) 
#define CONF_UNLOCK UNLOCK(conf_lock)
a63 4
extern int conf_cold;
extern int conf_nodetach;

struct conf {
d87 1
d96 10
a105 1
      int c_logexpired;
d134 4
a137 2
extern struct conf defconf;
extern struct conf conf;
d139 1
a139 11
extern char c_pidfile[QSTRLEN + 1];
extern char c_dumpfile[QSTRLEN + 1];
extern char c_socket[QSTRLEN + 1];
extern char c_user[QSTRLEN + 1];
extern char c_syncaddr[IPADDRSTRLEN + 1];
extern char c_syncport[NUMLEN + 1];
extern char c_syncsrcaddr[IPADDRSTRLEN + 1];
extern char c_syncsrcport[NUMLEN + 1];
extern char c_dracdb[QSTRLEN + 1];

extern pthread_rwlock_t conf_lock;
d144 2
d149 1
d151 1
d153 2
a154 1
void conf_defaults(struct conf *);
@


1.37.2.2
log
@Warn about ignored ACL lines after acl default rule
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.37.2.1 2006/09/04 22:05:58 manu Exp $ */
a147 1
extern int conf_acl_end;
@


1.36
log
@Rename PATH -> QSTRING
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.35 2006/02/17 19:46:13 manu Exp $ */
a44 1
#include <sys/time.h>
d58 5
a62 3
#define CONF_WRLOCK WRLOCK(conf_lock) 
#define CONF_RDLOCK RDLOCK(conf_lock) 
#define CONF_UNLOCK UNLOCK(conf_lock)
a63 2
struct conf {
	int c_cold;
d96 10
a105 1
      int c_logexpired;
d134 4
a137 2
extern struct conf defconf;
extern struct conf conf;
d139 1
a139 11
extern char c_pidfile[QSTRLEN + 1];
extern char c_dumpfile[QSTRLEN + 1];
extern char c_socket[QSTRLEN + 1];
extern char c_user[QSTRLEN + 1];
extern char c_syncaddr[IPADDRSTRLEN + 1];
extern char c_syncport[NUMLEN + 1];
extern char c_syncsrcaddr[IPADDRSTRLEN + 1];
extern char c_syncsrcport[NUMLEN + 1];
extern char c_dracdb[QSTRLEN + 1];

extern pthread_rwlock_t conf_lock;
d144 2
d149 1
d151 1
d153 2
a154 1
void conf_defaults(struct conf *);
@


1.35
log
@Option to log expired entries (Jeff Rife)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.34 2006/01/11 06:40:39 manu Exp $ */
d129 4
a132 4
extern char c_pidfile[PATHLEN + 1];
extern char c_dumpfile[PATHLEN + 1];
extern char c_socket[PATHLEN + 1];
extern char c_user[PATHLEN + 1];
d137 1
a137 1
extern char c_dracdb[PATHLEN + 1];
@


1.34
log
@Selectable MX sync source address
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.33 2006/01/08 00:38:25 manu Exp $ */
d97 1
@


1.33
log
@From Ranko Zivojnovic <ranko@@spidernet.net>:
      * Bucketed search of autowhitelisted and pending entries rather
        than write-locked only-one-at-the-time search
      * Large buffer for writing the dump file
      * Disabled having the time comment by default next to each line in
        the dump (improves dump performance by order of magnitude on my
        Solaris). If "verbose" enabled - behavior will be as before
      * 'mxsync' client connection is set non-blocking, but there were
        no checks if fprintf actually delivers the complete sync message
        to the peer or just the part of it.
      * Also, when reading the 'mxsync' client connection, being non-
        blocking, fgets() can bail out with NULL and EAGAIN which is not
        fatal error for the connection.
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.32 2005/11/30 23:32:12 manu Exp $ */
d86 2
d134 2
@


1.32
log
@DRAC support
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.31 2005/03/19 07:38:53 manu Exp $ */
d94 1
@


1.31
log
@extendedregex for using extended regex instead of basic regex.
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.30 2005/01/29 18:42:53 manu Exp $ */
d55 4
d92 2
d131 1
@


1.30
log
@Delayed reject for <> sender to cope better with sender callback (Moritz Both)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.29 2004/12/16 23:08:13 manu Exp $ */
d87 1
@


1.29
log
@Use Sendmail DB as a whitelist source: if ${greylist} is defined as WHITE,
assume whitelist.
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.28 2004/12/08 22:23:09 manu Exp $ */
d68 1
@


1.28
log
@New ACL framework for whitelist and greylist (Remy Card)
Tell MX peers about autowhitelist prolongation (Remy Card)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.27 2004/10/11 20:57:42 manu Exp $ */
d66 1
d89 17
a105 17
#define C_GLNONE		0x0000
#define C_DEBUG		0x0001
#define C_QUIET		0x0002
#define C_NOAUTH	0x0004
#define C_NOSPF		0x0008 
#define C_TESTMODE	0x0010
#define C_DELAY		0x0020
#define C_AUTOWHITE	0x0040
#define C_PIDFILE	0x0080
#define C_DUMPFILE	0x0100
#define C_MATCHMASK	0x0200
#define C_SOCKET	0x0400
#define C_USER		0x0800
#define C_NODETACH	0x1000
#define C_LAZYAW	0x2000
#define C_MATCHMASK6	0x4000
#define C_ACLDEBUG	0x8000
@


1.27
log
@Namespace conflicts on Tru64 Unix with IPv6
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.26 2004/08/08 21:24:20 manu Exp $ */
d63 1
d104 1
@


1.26
log
@Configurable MX sync bind port and address (Cyril Guibourg)
Bump to 1.5.6
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.25 2004/08/01 09:27:03 manu Exp $ */
d87 1
a87 1
#define C_NONE		0x0000
@


1.25
log
@Full blown IPv6 support, from Hajimu Umemoto
Correctly clean rc-debian.sh
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.24 2004/06/25 22:28:08 manu Exp $ */
d77 2
d118 3
@


1.24
log
@Avoid race conditions when reloading the config (Attila Bruncsak)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.23 2004/06/08 12:04:21 manu Exp $ */
d72 3
d100 1
@


1.23
log
@Don't use the thread trick on config reload for the first reload.
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.22 2004/05/26 09:14:29 manu Exp $ */
d55 4
d112 1
d114 1
@


1.22
log
@timeout option
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.21 2004/05/24 21:57:36 manu Exp $ */
d56 1
@


1.21
log
@dumpfreq option
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.20 2004/05/24 21:22:02 manu Exp $ */
d73 1
@


1.20
log
@Back out Berkeley DB stuff, it will now live on the BDB branch.
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.17 2004/04/22 23:27:57 manu Exp $ */
d72 1
@


1.19
log
@Don't use an external lockfile, use a field in the database instead
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.18 2004/05/15 08:41:54 manu Exp $ */
a42 1
#include <unistd.h>
a54 20
#ifndef AUTOWHITEDB 
#define AUTOWHITEDB "/var/milter-greylist/autowhite2.db"
#endif

#ifndef GREYLISTDB
#define GREYLISTDB "/var/milter-greylist/greylist2.db"
#endif

#ifndef DUMPFILE
#define DUMPFILE "/var/milter-greylist/dump2.txt"
#endif

struct db_options {
	struct in_addr dbo_match_mask;
	int dbo_lazyaw;
	pid_t dbo_busy;
};

#define DB_OPTIONS "options"

a71 4
	int c_dumpfreq;
	char *c_greylistdb;
	char *c_autowhitedb;
	char *c_lockfile;
a104 3
extern char c_greylistdb[PATHLEN + 1];
extern char c_autowhitedb[PATHLEN + 1];
extern char c_lockfile[PATHLEN + 1];
@


1.18
log
@First attempt with Berkeley DB. Some remaining bugs on dynamic modification
of options.
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.17 2004/04/22 23:27:57 manu Exp $ */
d43 1
a63 4
#ifndef LOCKFILE
#define LOCKFILE "/var/milter-greylist/milter-greylist.lock"
#endif

d71 1
@


1.17
log
@lazyaw option to get a lazy match in autowhitelist: only on the IP address.
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.16 2004/04/02 15:06:52 manu Exp $ */
d55 23
d95 4
d132 3
@


1.16
log
@Add a config option to suprress X-Greylist header
Bump to 1.10
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.15 2004/04/02 08:57:18 manu Exp $ */
d71 1
d89 1
@


1.15
log
@Fix build troubles by removing any reference to in_addr_t
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.14 2004/04/01 21:03:58 manu Exp $ */
d70 1
d89 6
@


1.14
log
@Darwin build problems
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.13 2004/04/01 20:49:16 manu Exp $ */
a54 7
/* 
 * This is missing on some systems
 */
#ifndef in_addr_t
#define in_addr_t unsigned int
#endif

d66 1
a66 1
	in_addr_t c_match_mask;
d104 1
@


1.13
log
@More build problems
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.12 2004/04/01 20:46:34 manu Exp $ */
d56 1
a56 1
 * Some heavily brain-damaged systems have no in_addr_t
d59 1
a59 1
typedef unsigned int in_addr_t;
@


1.12
log
@Build problem
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.11 2004/04/01 20:36:00 manu Exp $ */
d59 1
a59 1
typedef __uint32_t in_addr_t;
@


1.11
log
@Use regex for from and rcpt config lines
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.10 2004/03/31 17:02:08 manu Exp $ */
d59 1
a59 1
typedef __uint32_t in_addr_t
@


1.10
log
@Bug fix: dumpfile was not really set in the new conf framework
plus really reset the conf to default before reloading it
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.9 2004/03/31 15:31:59 manu Exp $ */
d53 7
@


1.9
log
@Attempt to fix a warning on Solaris
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.8 2004/03/31 12:10:16 manu Exp $ */
d89 1
@


1.8
log
@More documentation, nodetach option in config
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.7 2004/03/31 11:39:26 manu Exp $ */
d66 1
a66 1
	struct in_addr c_match_mask;
@


1.7
log
@socket can now be given in the config file.
Documentation on the config file options
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.6 2004/03/31 10:07:17 manu Exp $ */
d68 2
d73 14
a86 12
#define C_NONE		0x000
#define C_DEBUG		0x001
#define C_QUIET		0x002
#define C_NOAUTH	0x004
#define C_NOSPF		0x008 
#define C_TESTMODE	0x010
#define C_DELAY		0x020
#define C_AUTOWHITE	0x040
#define C_PIDFILE	0x080
#define C_DUMPFILE	0x100
#define C_MATCHMASK	0x200
#define C_SOCKET	0x400
d94 1
@


1.6
log
@Added an option for subnet mask
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.5 2004/03/31 09:49:16 manu Exp $ */
d67 1
a67 1

d82 1
d89 1
@


1.5
log
@Add flag equivalents to the config file
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.4 2004/03/19 10:16:38 manu Exp $ */
d66 1
d81 1
@


1.4
log
@Fix includes order and wrong ifdef for old queue.h
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.3 2004/03/18 22:37:21 manu Exp $ */
d55 28
d84 2
d93 1
@


1.3
log
@Inlude config.h before using HAVE_OLD_QUEUE_H
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.2 2004/03/18 09:55:14 manu Exp $ */
d35 7
a47 7

#include "config.h"
#ifndef HAVE_OLD_QUEUE_H
#include "queue.h"
#else 
#include <sys/queue.h>
#endif
@


1.2
log
@Use a modern queue.h if it is missing from the system (Linux...)
@
text
@d1 1
a1 1
/* $Id: conf.h,v 1.1 2004/03/10 21:11:45 manu Exp $ */
d42 1
a49 1
#include "config.h"
@


1.1
log
@Renamed except.greylist as except.conf, split the cde between exception
list management and config management
@
text
@d1 1
a1 1
/* $Id$ */
a38 1
#include <sys/queue.h>
d41 6
@

