/*++ /* NAME /* dsn_buf 3 /* SUMMARY /* delivery status buffer /* SYNOPSIS /* #include <dsn_buf.h> /* /* typedef struct { /* .in +4
/* /* Convenience member */ /* DSN dsn; /* light-weight, dsn(3) */ /* /* Formal members... */ /* VSTRING *status; /* RFC 3463 */ /* VSTRING *action; /* RFC 3464 */ /* VSTRING *mtype; /* dns */ /* VSTRING *mname; /* host or domain */ /* VSTRING *dtype; /* smtp, x-unix */ /* VSTRING *dtext; /* RFC 2821, sysexits.h */ /* /* Informal members... */ /* VSTRING *reason; /* informal text */ /* .in -4 /* } DSN_BUF; /* /* DSN_BUF *dsb_create(void) /* /* DSN_BUF *dsb_update(dsb, status, action, mtype, mname, dtype, /* dtext, reason_fmt, ...) /* DSN_BUF *dsb; /* const char *status; /* const char *action; /* const char *mtype; /* const char *mname; /* const char *dtype; /* const char *dtext; /* const char *reason_fmt; /* /* DSN_BUF *dsb_simple(dsb, status, reason_fmt, ...) /* DSN_BUF *dsb; /* const char *status; /* const char *reason_fmt; /* /* DSN_BUF *dsb_unix(dsb, status, dtext, reason_fmt, ...) /* DSN_BUF *dsb; /* const char *status; /* const char *reason_fmt; /* /* DSN_BUF *dsb_formal(dsb, status, action, mtype, mname, dtype, /* dtext) /* DSN_BUF *dsb; /* const char *status; /* const char *action; /* const char *mtype; /* const char *mname; /* const char *dtype; /* const char *dtext; /* /* DSN_BUF *dsb_status(dsb, status) /* DSN_BUF *dsb; /* const char *status; /* /* void dsb_reset(dsb) /* DSN_BUF *dsb; /* /* void dsb_free(dsb) /* DSN_BUF *dsb; /* /* DSN *DSN_FROM_DSN_BUF(dsb) /* DSN_BUF *dsb; /* DESCRIPTION /* This module implements a simple to update delivery status /* buffer for Postfix-internal use. Typically it is filled in /* the course of delivery attempt, and then formatted into a /* DSN structure for external notification. /* /* dsb_create() creates initialized storage for formal RFC 3464 /* attributes, and human-readable informal text. /* /* dsb_update() updates all fields. /* /* dsb_simple() updates the status and informal text, and resets all /* other fields to defaults. /* /* dsb_unix() updates the status, diagnostic code, diagnostic /* text, and informal text, sets the diagnostic type to UNIX, /* and resets all other fields to defaults. /* /* dsb_formal() updates all fields except the informal text. /* /* dsb_status() updates the status field, and resets all /* formal fields to defaults. /* /* dsb_reset() resets all fields in a DSN_BUF structure without /* deallocating memory. /* /* dsb_free() recycles the storage that was allocated by /* dsb_create(), and so on. /* /* DSN_FROM_DSN_BUF() populates the DSN member with a shallow /* copy of the contents of the formal and informal fields, and /* returns a pointer to the DSN member. This is typically used /* for external reporting. /* /* Arguments: /* .IP dsb /* Delivery status buffer. /* .IP status /* RFC 3463 "enhanced" status code. /* .IP action /* RFC 3464 action code; specify DSB_DEF_ACTION to derive the /* action from the status value. The only values that really /* matter here are "expanded" and "relayed"; all other values /* are already implied by the context. /* .IP mtype /* The remote MTA type. /* The only valid type is DSB_MTYPE_DNS. The macro DSB_SKIP_RMTA /* conveniently expands into a null argument list for the /* remote MTA type and name. /* .IP mname /* Remote MTA name. /* .IP dtype /* The reply type. /* DSB_DTYPE_SMTP or DSB_DTYPE_UNIX. The macro DSB_SKIP_REPLY /* conveniently expands into a null argument list for the reply /* type and text. /* .IP dtext /* The reply text. The reply text is reset when dtype is /* DSB_SKIP_REPLY. /* .IP reason_fmt /* The informal reason format. /* SEE ALSO /* msg(3) diagnostics interface /* DIAGNOSTICS /* Fatal: out of memory. /* LICENSE /* .ad /* .fi /* The Secure Mailer license must be distributed with this software. /* AUTHOR(S) /* Wietse Venema /* IBM T.J. Watson Research /* P.O. Box 704 /* Yorktown Heights, NY 10598, USA
/*--*/
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.