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