aboutsummaryrefslogtreecommitdiff
path: root/contrib/sendmail/include/libmilter/mfapi.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/sendmail/include/libmilter/mfapi.h')
-rw-r--r--contrib/sendmail/include/libmilter/mfapi.h493
1 files changed, 0 insertions, 493 deletions
diff --git a/contrib/sendmail/include/libmilter/mfapi.h b/contrib/sendmail/include/libmilter/mfapi.h
deleted file mode 100644
index d4a02f991963..000000000000
--- a/contrib/sendmail/include/libmilter/mfapi.h
+++ /dev/null
@@ -1,493 +0,0 @@
-/*
- * Copyright (c) 1999-2004 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: mfapi.h,v 8.60 2004/08/20 21:24:14 ca Exp $
- */
-
-/*
-** MFAPI.H -- Global definitions for mail filter library and mail filters.
-*/
-
-#ifndef _LIBMILTER_MFAPI_H
-# define _LIBMILTER_MFAPI_H 1
-
-#ifndef SMFI_VERSION
-# define SMFI_VERSION 2 /* version number */
-#endif /* ! SMFI_VERSION */
-
-# include <sys/types.h>
-# include <sys/socket.h>
-
-#include "libmilter/mfdef.h"
-
-# define LIBMILTER_API extern
-
-
-/* Only need to export C interface if used by C++ source code */
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#ifndef _SOCK_ADDR
-# define _SOCK_ADDR struct sockaddr
-#endif /* ! _SOCK_ADDR */
-
-/*
-** libmilter functions return one of the following to indicate
-** success/failure:
-*/
-
-#define MI_SUCCESS 0
-#define MI_FAILURE (-1)
-
-/* "forward" declarations */
-typedef struct smfi_str SMFICTX;
-typedef struct smfi_str *SMFICTX_PTR;
-
-typedef struct smfiDesc smfiDesc_str;
-typedef struct smfiDesc *smfiDesc_ptr;
-
-/*
-** Type which callbacks should return to indicate message status.
-** This may take on one of the SMFIS_* values listed below.
-*/
-
-typedef int sfsistat;
-
-#if defined(__linux__) && defined(__GNUC__) && defined(__cplusplus) && __GNUC_MINOR__ >= 8
-# define SM__P(X) __PMT(X)
-#else /* __linux__ && __GNUC__ && __cplusplus && _GNUC_MINOR__ >= 8 */
-# define SM__P(X) __P(X)
-#endif /* __linux__ && __GNUC__ && __cplusplus && _GNUC_MINOR__ >= 8 */
-
-/* Some platforms don't define __P -- do it for them here: */
-#ifndef __P
-# ifdef __STDC__
-# define __P(X) X
-# else /* __STDC__ */
-# define __P(X) ()
-# endif /* __STDC__ */
-#endif /* __P */
-
-#if SM_CONF_STDBOOL_H
-# include <stdbool.h>
-#else /* SM_CONF_STDBOOL_H */
-# ifndef __cplusplus
-# ifndef bool
-# ifndef __bool_true_false_are_defined
-typedef int bool;
-# define __bool_true_false_are_defined 1
-# endif /* ! __bool_true_false_are_defined */
-# endif /* bool */
-# endif /* ! __cplusplus */
-#endif /* SM_CONF_STDBOOL_H */
-
-/*
-** structure describing one milter
-*/
-
-struct smfiDesc
-{
- char *xxfi_name; /* filter name */
- int xxfi_version; /* version code -- do not change */
- unsigned long xxfi_flags; /* flags */
-
- /* connection info filter */
- sfsistat (*xxfi_connect) SM__P((SMFICTX *, char *, _SOCK_ADDR *));
-
- /* SMTP HELO command filter */
- sfsistat (*xxfi_helo) SM__P((SMFICTX *, char *));
-
- /* envelope sender filter */
- sfsistat (*xxfi_envfrom) SM__P((SMFICTX *, char **));
-
- /* envelope recipient filter */
- sfsistat (*xxfi_envrcpt) SM__P((SMFICTX *, char **));
-
- /* header filter */
- sfsistat (*xxfi_header) SM__P((SMFICTX *, char *, char *));
-
- /* end of header */
- sfsistat (*xxfi_eoh) SM__P((SMFICTX *));
-
- /* body block */
- sfsistat (*xxfi_body) SM__P((SMFICTX *, unsigned char *, size_t));
-
- /* end of message */
- sfsistat (*xxfi_eom) SM__P((SMFICTX *));
-
- /* message aborted */
- sfsistat (*xxfi_abort) SM__P((SMFICTX *));
-
- /* connection cleanup */
- sfsistat (*xxfi_close) SM__P((SMFICTX *));
-
-#if SMFI_VERSION > 2
- /* any unrecognized or unimplemented command filter */
- sfsistat (*xxfi_unknown) SM__P((SMFICTX *, char *));
-#endif /* SMFI_VERSION > 2 */
-
-#if SMFI_VERSION > 3
- /* any unrecognized or unimplemented command filter */
- sfsistat (*xxfi_data) SM__P((SMFICTX *));
-#endif /* SMFI_VERSION > 3 */
-};
-
-LIBMILTER_API int smfi_opensocket __P((bool));
-LIBMILTER_API int smfi_register __P((struct smfiDesc));
-LIBMILTER_API int smfi_main __P((void));
-LIBMILTER_API int smfi_setbacklog __P((int));
-LIBMILTER_API int smfi_setdbg __P((int));
-LIBMILTER_API int smfi_settimeout __P((int));
-LIBMILTER_API int smfi_setconn __P((char *));
-LIBMILTER_API int smfi_stop __P((void));
-#if _FFR_MAXDATASIZE
-LIBMILTER_API size_t smfi_setmaxdatasize __P((size_t));
-#endif /* _FFR_MAXDATASIZE */
-
-/*
-** What the filter might do -- values to be ORed together for
-** smfiDesc.xxfi_flags.
-*/
-
-#define SMFIF_NONE 0x00000000L /* no flags */
-#define SMFIF_ADDHDRS 0x00000001L /* filter may add headers */
-#define SMFIF_CHGBODY 0x00000002L /* filter may replace body */
-#define SMFIF_MODBODY SMFIF_CHGBODY /* backwards compatible */
-#define SMFIF_ADDRCPT 0x00000004L /* filter may add recipients */
-#define SMFIF_DELRCPT 0x00000008L /* filter may delete recipients */
-#define SMFIF_CHGHDRS 0x00000010L /* filter may change/delete headers */
-#define SMFIF_QUARANTINE 0x00000020L /* filter may quarantine envelope */
-
-/*
-** Continue processing message/connection.
-*/
-
-#define SMFIS_CONTINUE 0
-
-/*
-** Reject the message/connection.
-** No further routines will be called for this message
-** (or connection, if returned from a connection-oriented routine).
-*/
-
-#define SMFIS_REJECT 1
-
-/*
-** Accept the message,
-** but silently discard the message.
-** No further routines will be called for this message.
-** This is only meaningful from message-oriented routines.
-*/
-
-#define SMFIS_DISCARD 2
-
-/*
-** Accept the message/connection.
-** No further routines will be called for this message
-** (or connection, if returned from a connection-oriented routine;
-** in this case, it causes all messages on this connection
-** to be accepted without filtering).
-*/
-
-#define SMFIS_ACCEPT 3
-
-/*
-** Return a temporary failure, i.e.,
-** the corresponding SMTP command will return a 4xx status code.
-** In some cases this may prevent further routines from
-** being called on this message or connection,
-** although in other cases (e.g., when processing an envelope
-** recipient) processing of the message will continue.
-*/
-
-#define SMFIS_TEMPFAIL 4
-
-#if 0
-/*
-** Filter Routine Details
-*/
-
-/* connection info filter */
-extern sfsistat xxfi_connect __P((SMFICTX *, char *, _SOCK_ADDR *));
-
-/*
-** xxfi_connect(ctx, hostname, hostaddr) Invoked on each connection
-**
-** char *hostname; Host domain name, as determined by a reverse lookup
-** on the host address.
-** _SOCK_ADDR *hostaddr; Host address, as determined by a getpeername
-** call on the SMTP socket.
-*/
-
-/* SMTP HELO command filter */
-extern sfsistat xxfi_helo __P((SMFICTX *, char *));
-
-/*
-** xxfi_helo(ctx, helohost) Invoked on SMTP HELO/EHLO command
-**
-** char *helohost; Value passed to HELO/EHLO command, which should be
-** the domain name of the sending host (but is, in practice,
-** anything the sending host wants to send).
-*/
-
-/* envelope sender filter */
-extern sfsistat xxfi_envfrom __P((SMFICTX *, char **));
-
-/*
-** xxfi_envfrom(ctx, argv) Invoked on envelope from
-**
-** char **argv; Null-terminated SMTP command arguments;
-** argv[0] is guaranteed to be the sender address.
-** Later arguments are the ESMTP arguments.
-*/
-
-/* envelope recipient filter */
-extern sfsistat xxfi_envrcpt __P((SMFICTX *, char **));
-
-/*
-** xxfi_envrcpt(ctx, argv) Invoked on each envelope recipient
-**
-** char **argv; Null-terminated SMTP command arguments;
-** argv[0] is guaranteed to be the recipient address.
-** Later arguments are the ESMTP arguments.
-*/
-
-/* unknown command filter */
-
-extern sfsistat *xxfi_unknown __P((SMFICTX *, char *));
-
-/*
-** xxfi_unknown(ctx, arg) Invoked when SMTP command is not recognized or not
-** implemented.
-** char *arg; Null-terminated SMTP command
-*/
-
-/* header filter */
-extern sfsistat xxfi_header __P((SMFICTX *, char *, char *));
-
-/*
-** xxfi_header(ctx, headerf, headerv) Invoked on each message header. The
-** content of the header may have folded white space (that is, multiple
-** lines with following white space) included.
-**
-** char *headerf; Header field name
-** char *headerv; Header field value
-*/
-
-/* end of header */
-extern sfsistat xxfi_eoh __P((SMFICTX *));
-
-/*
-** xxfi_eoh(ctx) Invoked at end of header
-*/
-
-/* body block */
-extern sfsistat xxfi_body __P((SMFICTX *, unsigned char *, size_t));
-
-/*
-** xxfi_body(ctx, bodyp, bodylen) Invoked for each body chunk. There may
-** be multiple body chunks passed to the filter. End-of-lines are
-** represented as received from SMTP (normally Carriage-Return/Line-Feed).
-**
-** unsigned char *bodyp; Pointer to body data
-** size_t bodylen; Length of body data
-*/
-
-/* end of message */
-extern sfsistat xxfi_eom __P((SMFICTX *));
-
-/*
-** xxfi_eom(ctx) Invoked at end of message. This routine can perform
-** special operations such as modifying the message header, body, or
-** envelope.
-*/
-
-/* message aborted */
-extern sfsistat xxfi_abort __P((SMFICTX *));
-
-/*
-** xxfi_abort(ctx) Invoked if message is aborted outside of the control of
-** the filter, for example, if the SMTP sender issues an RSET command. If
-** xxfi_abort is called, xxfi_eom will not be called and vice versa.
-*/
-
-/* connection cleanup */
-extern sfsistat xxfi_close __P((SMFICTX *));
-
-/*
-** xxfi_close(ctx) Invoked at end of the connection. This is called on
-** close even if the previous mail transaction was aborted.
-*/
-#endif /* 0 */
-
-/*
-** Additional information is passed in to the vendor filter routines using
-** symbols. Symbols correspond closely to sendmail macros. The symbols
-** defined depend on the context. The value of a symbol is accessed using:
-*/
-
-/* Return the value of a symbol. */
-LIBMILTER_API char * smfi_getsymval __P((SMFICTX *, char *));
-
-/*
-** Return the value of a symbol.
-**
-** SMFICTX *ctx; Opaque context structure
-** char *symname; The name of the symbol to access.
-*/
-
-/*
-** Vendor filter routines that want to pass additional information back to
-** the MTA for use in SMTP replies may call smfi_setreply before returning.
-*/
-
-LIBMILTER_API int smfi_setreply __P((SMFICTX *, char *, char *, char *));
-
-/*
-** Alternatively, smfi_setmlreply can be called if a multi-line SMTP reply
-** is needed.
-*/
-
-LIBMILTER_API int smfi_setmlreply __P((SMFICTX *, const char *, const char *, ...));
-
-/*
-** Set the specific reply code to be used in response to the active
-** command. If not specified, a generic reply code is used.
-**
-** SMFICTX *ctx; Opaque context structure
-** char *rcode; The three-digit (RFC 821) SMTP reply code to be
-** returned, e.g., ``551''.
-** char *xcode; The extended (RFC 2034) reply code, e.g., ``5.7.6''.
-** char *message; The text part of the SMTP reply.
-*/
-
-/*
-** The xxfi_eom routine is called at the end of a message (essentially,
-** after the final DATA dot). This routine can call some special routines
-** to modify the envelope, header, or body of the message before the
-** message is enqueued. These routines must not be called from any vendor
-** routine other than xxfi_eom.
-*/
-
-LIBMILTER_API int smfi_addheader __P((SMFICTX *, char *, char *));
-
-/*
-** Add a header to the message. It is not checked for standards
-** compliance; the mail filter must ensure that no protocols are violated
-** as a result of adding this header.
-**
-** SMFICTX *ctx; Opaque context structure
-** char *headerf; Header field name
-** char *headerv; Header field value
-*/
-
-LIBMILTER_API int smfi_chgheader __P((SMFICTX *, char *, int, char *));
-
-/*
-** Change/delete a header in the message. It is not checked for standards
-** compliance; the mail filter must ensure that no protocols are violated
-** as a result of adding this header.
-**
-** SMFICTX *ctx; Opaque context structure
-** char *headerf; Header field name
-** int index; The Nth occurence of header field name
-** char *headerv; New header field value (empty for delete header)
-*/
-
-LIBMILTER_API int smfi_insheader __P((SMFICTX *, int, char *, char *));
-
-/*
-** Insert a header into the message. It is not checked for standards
-** compliance; the mail filter must ensure that no protocols are violated
-** as a result of adding this header.
-**
-** SMFICTX *ctx; Opaque context structure
-** int idx; index into the header list where the insertion should happen
-** char *headerh; Header field name
-** char *headerv; Header field value
-*/
-
-LIBMILTER_API int smfi_addrcpt __P((SMFICTX *, char *));
-
-/*
-** Add a recipient to the envelope
-**
-** SMFICTX *ctx; Opaque context structure
-** char *rcpt; Recipient to be added
-*/
-
-LIBMILTER_API int smfi_delrcpt __P((SMFICTX *, char *));
-
-/*
-** Send a "no-op" up to the MTA to tell it we're still alive, so long
-** milter-side operations don't time out.
-**
-** SMFICTX *ctx; Opaque context structure
-*/
-
-LIBMILTER_API int smfi_progress __P((SMFICTX *));
-
-/*
-** Delete a recipient from the envelope
-**
-** SMFICTX *ctx; Opaque context structure
-** char *rcpt; Envelope recipient to be deleted. This should be in
-** exactly the form passed to xxfi_envrcpt or the address may
-** not be deleted.
-*/
-
-LIBMILTER_API int smfi_replacebody __P((SMFICTX *, unsigned char *, int));
-
-/*
-** Replace the body of the message. This routine may be called multiple
-** times if the body is longer than convenient to send in one call. End of
-** line should be represented as Carriage-Return/Line Feed.
-**
-** char *bodyp; Pointer to block of body information to insert
-** int bodylen; Length of data pointed at by bodyp
-*/
-
-/*
-** If the message is aborted (for example, if the SMTP sender sends the
-** envelope but then does a QUIT or RSET before the data is sent),
-** xxfi_abort is called. This can be used to reset state.
-*/
-
-/*
-** Quarantine an envelope
-**
-** SMFICTX *ctx; Opaque context structure
-** char *reason: explanation
-*/
-
-LIBMILTER_API int smfi_quarantine __P((SMFICTX *ctx, char *reason));
-
-/*
-** Connection-private data (specific to an SMTP connection) can be
-** allocated using the smfi_setpriv routine; routines can access private
-** data using smfi_getpriv.
-*/
-
-LIBMILTER_API int smfi_setpriv __P((SMFICTX *, void *));
-
-/*
-** Set the private data pointer
-**
-** SMFICTX *ctx; Opaque context structure
-** void *privatedata; Pointer to private data area
-*/
-
-LIBMILTER_API void *smfi_getpriv __P((SMFICTX *));
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* ! _LIBMILTER_MFAPI_H */