/*
 * Copyright (c) 2005 Sendmail, Inc. and its suppliers.
 *	All rights reserved.
 *
 * By using this file, you agree to the terms and conditions set
 * forth in the LICENSE file which can be found at the top level of
 * the sendmail distribution.
 *
 *	$Id: pmfdef.h,v 1.9 2007/02/03 18:20:38 ca Exp $
 */

#ifndef PMFDEF_H
#define PMFDEF_H 1

#include "sm/generic.h"
#include "sm/smmts.h"
#include "sm/hdrmoddef.h"

/* pmilter (global) context */
typedef struct pmg_ctx_S	pmg_ctx_T, *pmg_ctx_P;

/* pmilter context per SMTP server */
typedef struct pmss_ctx_S	pmss_ctx_T, *pmss_ctx_P;

/* pmilter session context */
typedef struct pmse_ctx_S	pmse_ctx_T, *pmse_ctx_P;

/* pmilter application context */
typedef struct pmilter_S	pmilter_T, *pmilter_P;

/* macros that can be sent by the MTA to a pmilter */

#define PMM_END			0x0000	/* end of macro list */

#define PMM_SRVHOSTNAME		0x0001	/* hostname of server */

#define PMM_SEID		0x0010	/* session id */
#define PMM_CLIENT_RESOLVE	0x0011	/* result of client lookups */

#define PMM_TLS_VERSION		0x0020
#define PMM_TLS_CIPHER_SUITE	0x0021
#define PMM_TLS_CIPHER_BITS	0x0022
#define PMM_TLS_CERT_SUBJECT	0x0023
#define PMM_TLS_CERT_ISSUER	0x0024
#define PMM_TLS_ALG_BITS	0x0025
#define PMM_TLS_VRFY		0x0026
#define PMM_TLS_CN_SUBJECT	0x0027
#define PMM_TLS_CN_ISSUER	0x0028

#define PMM_AUTH_TYPE		0x0030
#define PMM_AUTH_AUTHEN		0x0031
#define PMM_AUTH_AUTHOR		0x0032

#define PMM_MAIL_TAID		0x0040	/* transaction id */

#define PMM_DOT_MSGID		0x0080
#define PMM_DOT_HOPS		0x0100	/* hop count $c */

/* stages when to send a macro */
#define PM_SMST_CONNECT		0
#define PM_SMST_EHLO		1
#define PM_SMST_MAIL		2
#define PM_SMST_RCPT		3
#define PM_SMST_DATA		4
#define PM_SMST_DOT		5
#define PM_SMST_MAX		6	/* max number of stages */
#define PM_MAX_MACROS		8	/* max. number of macro per stage */

/* recipient modification, none of these must be 0! */
#define PM_RCPT_ADD	0x01
#define PM_RCPT_DEL	0x02
/* see also smtps/pmilter.h, PM_RCPT_* */

#endif /* ! PMFDEF_H */


syntax highlighted by Code2HTML, v. 0.9.1