1/*	$NetBSD: bounce.h,v 1.2 2017/02/14 01:16:45 christos Exp $	*/
2
3#ifndef _BOUNCE_H_INCLUDED_
4#define _BOUNCE_H_INCLUDED_
5
6/*++
7/* NAME
8/*	bounce 3h
9/* SUMMARY
10/*	bounce service client
11/* SYNOPSIS
12/*	#include <bounce.h>
13/* DESCRIPTION
14/* .nf
15
16 /*
17  * System library.
18  */
19#include <time.h>
20
21 /*
22  * Global library.
23  */
24#include <deliver_request.h>
25#include <dsn_buf.h>
26
27 /*
28  * Client interface.
29  */
30extern int bounce_append(int, const char *, MSG_STATS *, RECIPIENT *,
31			         const char *, DSN *);
32extern int bounce_flush(int, const char *, const char *, const char *, int,
33			        const char *, const char *, int);
34extern int bounce_flush_verp(int, const char *, const char *, const char *, int,
35		             const char *, const char *, int, const char *);
36extern int bounce_one(int, const char *, const char *, const char *, int,
37		              const char *, const char *,
38		              int, MSG_STATS *, RECIPIENT *,
39		              const char *, DSN *);
40extern void bounce_client_init(const char *, const char *);
41
42 /*
43  * Bounce/defer protocol commands.
44  */
45#define BOUNCE_CMD_APPEND	0	/* append log */
46#define BOUNCE_CMD_FLUSH	1	/* send log */
47#define BOUNCE_CMD_WARN		2	/* send warning, don't delete log */
48#define BOUNCE_CMD_VERP		3	/* send log, verp style */
49#define BOUNCE_CMD_ONE		4	/* send one recipient notice */
50#define BOUNCE_CMD_TRACE	5	/* send delivery record */
51
52 /*
53  * Macros to make obscure code more readable.
54  */
55#define NO_DSN_DCODE		((char *) 0)
56#define NO_RELAY_AGENT		"none"
57#define NO_DSN_RMTA		((char *) 0)
58
59 /*
60  * Flags.
61  */
62#define BOUNCE_FLAG_NONE	0	/* no flags up */
63#define BOUNCE_FLAG_CLEAN	(1<<0)	/* remove log on error */
64#define BOUNCE_FLAG_DELRCPT	(1<<1)	/* delete recipient from queue file */
65
66 /*
67  * Backwards compatibility.
68  */
69#define BOUNCE_FLAG_KEEP	BOUNCE_FLAG_NONE
70
71 /*
72  * Start of private API.
73  */
74
75#ifdef DSN_INTERN
76
77#include <dsn_filter.h>
78
79extern DSN_FILTER *delivery_status_filter;
80
81extern int bounce_append_intern(int, const char *, MSG_STATS *, RECIPIENT *,
82				        const char *, DSN *);
83extern int bounce_one_intern(int, const char *, const char *, const char *,
84			             int, const char *, const char *,
85			             int, MSG_STATS *, RECIPIENT *,
86			             const char *, DSN *);
87
88#endif
89
90/* LICENSE
91/* .ad
92/* .fi
93/*	The Secure Mailer license must be distributed with this software.
94/* AUTHOR(S)
95/*	Wietse Venema
96/*	IBM T.J. Watson Research
97/*	P.O. Box 704
98/*	Yorktown Heights, NY 10598, USA
99/*--*/
100
101#endif
102