xref: /netbsd-src/external/ibm-public/postfix/dist/src/global/rcpt_buf.h (revision 67b9b338a7386232ac596b5fd0cd5a9cc8a03c71)
1 /*	$NetBSD: rcpt_buf.h,v 1.2 2022/10/08 16:12:45 christos Exp $	*/
2 
3 #ifndef _RCPT_BUF_H_INCLUDED_
4 #define _RCPT_BUF_H_INCLUDED_
5 
6 /*++
7 /* NAME
8 /*	rcpt_buf 3h
9 /* SUMMARY
10 /*	recipient buffer manager
11 /* SYNOPSIS
12 /*	#include <rcpt_buf.h>
13 /* DESCRIPTION
14 /* .nf
15 
16  /*
17   * Utility library.
18   */
19 #include <vstream.h>
20 #include <vstring.h>
21 #include <attr.h>
22 
23  /*
24   * Global library.
25   */
26 #include <recipient_list.h>
27 
28  /*
29   * External interface.
30   */
31 typedef struct {
32     RECIPIENT rcpt;			/* convenience */
33     VSTRING *address;			/* final recipient */
34     VSTRING *orig_addr;			/* original recipient */
35     VSTRING *dsn_orcpt;			/* dsn original recipient */
36     int     dsn_notify;			/* DSN notify flags */
37     long    offset;			/* REC_TYPE_RCPT byte */
38 } RCPT_BUF;
39 
40 extern RCPT_BUF *rcpb_create(void);
41 extern void rcpb_reset(RCPT_BUF *);
42 extern void rcpb_free(RCPT_BUF *);
43 extern int rcpb_scan(ATTR_SCAN_COMMON_FN, VSTREAM *, int, void *);
44 
45 #define RECIPIENT_FROM_RCPT_BUF(buf) \
46     ((buf)->rcpt.address = vstring_str((buf)->address), \
47      (buf)->rcpt.orig_addr = vstring_str((buf)->orig_addr), \
48      (buf)->rcpt.dsn_orcpt = vstring_str((buf)->dsn_orcpt), \
49      (buf)->rcpt.dsn_notify = (buf)->dsn_notify, \
50      (buf)->rcpt.offset = (buf)->offset, \
51      &(buf)->rcpt)
52 
53 /* LICENSE
54 /* .ad
55 /* .fi
56 /*	The Secure Mailer license must be distributed with this software.
57 /* AUTHOR(S)
58 /*	Wietse Venema
59 /*	IBM T.J. Watson Research
60 /*	P.O. Box 704
61 /*	Yorktown Heights, NY 10598, USA
62 /*
63 /*	Wietse Venema
64 /*	Google, Inc.
65 /*	111 8th Avenue
66 /*	New York, NY 10011, USA
67 /*--*/
68 
69 #endif
70