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  */
31typedef 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
40extern RCPT_BUF *rcpb_create(void);
41extern void rcpb_reset(RCPT_BUF *);
42extern void rcpb_free(RCPT_BUF *);
43extern 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