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
|
#ifndef _HBC_H_INCLUDED_
#define _HBC_H_INCLUDED_
/*++
/* NAME
/* header_body_checks 3h
/* SUMMARY
/* delivery agent header/body checks
/* SYNOPSIS
/* #include <header_body_checks.h>
/* DESCRIPTION
/* .nf
/*
* Global library.
*/
#include <mime_state.h>
#include <maps.h>
/*
* Postfix < 2.5 compatibility.
*/
#ifndef MIME_HDR_FIRST
#define MIME_HDR_FIRST (1)
#define MIME_HDR_LAST (3)
#endif
/*
* External interface.
*/
typedef struct {
const char *map_class; /* parameter name */
MAPS *maps; /* map handle */
} HBC_MAP_INFO;
typedef struct {
void (*logger) (void *, const char *, const char *, const char *, const char *);
void (*prepend) (void *, int, const char *, ssize_t, off_t);
char *(*extend) (void *, const char *, ssize_t, const char *, const char *, const char *, ssize_t, off_t);
} HBC_CALL_BACKS;
typedef struct {
HBC_CALL_BACKS *call_backs;
HBC_MAP_INFO map_info[1]; /* actually, a bunch */
} HBC_CHECKS;
#define HBC_CHECKS_STAT_IGNORE ((char *) 0)
#define HBC_CHECKS_STAT_ERROR (&hbc_checks_error)
#define HBC_CHECKS_STAT_UNKNOWN (&hbc_checks_unknown)
extern HBC_CHECKS *hbc_header_checks_create(const char *, const char *,
const char *, const char *,
const char *, const char *,
HBC_CALL_BACKS *);
extern HBC_CHECKS *hbc_body_checks_create(const char *, const char *,
HBC_CALL_BACKS *);
extern char *hbc_header_checks(void *, HBC_CHECKS *, int, const HEADER_OPTS *,
VSTRING *, off_t);
extern char *hbc_body_checks(void *, HBC_CHECKS *, const char *, ssize_t, off_t);
#define hbc_header_checks_free(hbc) _hbc_checks_free((hbc), HBC_HEADER_SIZE)
#define hbc_body_checks_free(hbc) _hbc_checks_free((hbc), 1)
/*
* The following are NOT part of the external API.
*/
#define HBC_HEADER_SIZE (MIME_HDR_LAST - MIME_HDR_FIRST + 1)
extern void _hbc_checks_free(HBC_CHECKS *, ssize_t);
extern char hbc_checks_error;
extern const char hbc_checks_unknown;
/* 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
/*
/* Wietse Venema
/* Google, Inc.
/* 111 8th Avenue
/* New York, NY 10011, USA
/*--*/
#endif
|