descr |
A filter descriptor of type smfiDesc describing the filter's functions.
The structure has the following members:
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)(SMFICTX *, char *, _SOCK_ADDR *);
/* SMTP HELO command filter */
sfsistat (*xxfi_helo)(SMFICTX *, char *);
/* envelope sender filter */
sfsistat (*xxfi_envfrom)(SMFICTX *, char **);
/* envelope recipient filter */
sfsistat (*xxfi_envrcpt)(SMFICTX *, char **);
/* header filter */
sfsistat (*xxfi_header)(SMFICTX *, char *, char *);
/* end of header */
sfsistat (*xxfi_eoh)(SMFICTX *);
/* body block */
sfsistat (*xxfi_body)(SMFICTX *, unsigned char *, size_t);
/* end of message */
sfsistat (*xxfi_eom)(SMFICTX *);
/* message aborted */
sfsistat (*xxfi_abort)(SMFICTX *);
/* connection cleanup */
sfsistat (*xxfi_close)(SMFICTX *);
/* any unrecognized or unimplemented command filter */
sfsistat (*xxfi_unknown)(SMFICTX *, const char *);
/* SMTP DATA command filter */
sfsistat (*xxfi_data)(SMFICTX *);
/* negotiation callback */
sfsistat (*xxfi_negotiate)(SMFICTX *,
unsigned long, unsigned long, unsigned long, unsigned long,
unsigned long *, unsigned long *, unsigned long *, unsigned long *);
};
A NULL value for any callback function indicates that the filter
does not wish to process the given type of information,
simply returning SMFIS_CONTINUE.
|