summaryrefslogtreecommitdiffstats
path: root/src/global/bounce.h
blob: e2d67bd3a86c2a44c9830fe8063efedb935065e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#ifndef _BOUNCE_H_INCLUDED_
#define _BOUNCE_H_INCLUDED_

/*++
/* NAME
/*	bounce 3h
/* SUMMARY
/*	bounce service client
/* SYNOPSIS
/*	#include <bounce.h>
/* DESCRIPTION
/* .nf

 /*
  * System library.
  */
#include <time.h>

 /*
  * Global library.
  */
#include <deliver_request.h>
#include <dsn_buf.h>

 /*
  * Client interface.
  */
extern int bounce_append(int, const char *, MSG_STATS *, RECIPIENT *,
			         const char *, DSN *);
extern int bounce_flush(int, const char *, const char *, const char *, int,
			        const char *, const char *, int);
extern int bounce_flush_verp(int, const char *, const char *, const char *, int,
		             const char *, const char *, int, const char *);
extern int bounce_one(int, const char *, const char *, const char *, int,
		              const char *, const char *,
		              int, MSG_STATS *, RECIPIENT *,
		              const char *, DSN *);
extern void bounce_client_init(const char *, const char *);

 /*
  * Bounce/defer protocol commands.
  */
#define BOUNCE_CMD_APPEND	0	/* append log */
#define BOUNCE_CMD_FLUSH	1	/* send log */
#define BOUNCE_CMD_WARN		2	/* send warning, don't delete log */
#define BOUNCE_CMD_VERP		3	/* send log, verp style */
#define BOUNCE_CMD_ONE		4	/* send one recipient notice */
#define BOUNCE_CMD_TRACE	5	/* send delivery record */

 /*
  * Macros to make obscure code more readable.
  */
#define NO_DSN_DCODE		((char *) 0)
#define NO_RELAY_AGENT		"none"
#define NO_DSN_RMTA		((char *) 0)

 /*
  * Flags.
  */
#define BOUNCE_FLAG_NONE	0	/* no flags up */
#define BOUNCE_FLAG_CLEAN	(1<<0)	/* remove log on error */
#define BOUNCE_FLAG_DELRCPT	(1<<1)	/* delete recipient from queue file */

 /*
  * Backwards compatibility.
  */
#define BOUNCE_FLAG_KEEP	BOUNCE_FLAG_NONE

 /*
  * Start of private API.
  */

#ifdef DSN_INTERN

#include <dsn_filter.h>

extern DSN_FILTER *delivery_status_filter;

extern int bounce_append_intern(int, const char *, MSG_STATS *, RECIPIENT *,
				        const char *, DSN *);
extern int bounce_one_intern(int, const char *, const char *, const char *,
			             int, const char *, const char *,
			             int, MSG_STATS *, RECIPIENT *,
			             const char *, DSN *);

#endif

/* 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
/*--*/

#endif