Mercurial > dnsbl
annotate src/context.h @ 92:505e77188317
optimize verification step, cleanup documentation
author | carl |
---|---|
date | Wed, 21 Sep 2005 08:00:08 -0700 |
parents | 962a1f8f1d9f |
children | e107ade3b1c0 |
rev | line source |
---|---|
90
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
1 #ifndef context_include |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
2 #define context_include |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
3 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
4 #include "tokenizer.h" |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
5 #include <map> |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
6 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
7 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
8 enum status {oksofar, // not rejected yet |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
9 white, // whitelisted |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
10 black, // blacklisted |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
11 reject}; // rejected by a dns list |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
12 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
13 class DNSBL; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
14 class CONTEXT; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
15 class VERIFY; |
92 | 16 class SMTP; |
90
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
17 class recorder; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
18 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
19 typedef map<char *, char *, ltstr> string_map; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
20 typedef set<int> int_set; |
92 | 21 typedef list<SMTP *> smtp_list; |
90
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
22 typedef list<char *> string_list; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
23 typedef DNSBL * DNSBLP; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
24 typedef VERIFY * VERIFYP; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
25 typedef list<DNSBLP> dnsblp_list; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
26 typedef map<char *, DNSBLP, ltstr> dnsblp_map; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
27 typedef CONTEXT * CONTEXTP; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
28 typedef list<CONTEXTP> context_list; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
29 typedef map<char *, CONTEXTP, ltstr> context_map; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
30 typedef map<char *, int, ltstr> ns_mapper; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
31 typedef map<char *, VERIFYP, ltstr> verify_map; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
32 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
33 class SMTP { |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
34 static const int maxlen = 1000; |
92 | 35 int fd; |
36 bool error; | |
37 time_t stamp; | |
38 char efrom[maxlen]; // last envelope from sent on this socket | |
39 int pending; // unread bytes in buffer, not including the null terminator | |
40 char buffer[maxlen]; | |
90
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
41 public: |
92 | 42 SMTP(int f) {fd = f; error = false; efrom[0] = '\0';}; |
43 ~SMTP() {if (!error) quit(); closefd();}; | |
44 void init() {pending = 0; buffer[0] = '\0';}; | |
45 void append(char *c) {strncat(buffer, c, max(0, maxlen-1-(int)strlen(c)));}; | |
46 bool err() {return error;}; | |
47 void now() {stamp = time(NULL);}; | |
48 time_t get_stamp() {return stamp;}; | |
49 int get_fd() {return fd;}; | |
50 int writer(); | |
51 int reader(); | |
52 int read_line(); | |
53 int read_response(); | |
54 int flush_line(int r); | |
55 int cmd(char *c); | |
56 int helo(); | |
57 int rset(); | |
58 int from(char *f); | |
59 int rcpt(char *t); | |
60 int quit(); | |
61 void closefd(); | |
62 #ifdef VERIFY_DEBUG | |
63 static void log(char *m, int v); | |
64 static void log(char *m, char *v); | |
65 #endif | |
90
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
66 }; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
67 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
68 class VERIFY { |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
69 char *host; // host to be used to verify recipient addresses |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
70 time_t last_err; // time of last socket error |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
71 pthread_mutex_t mutex; // protect the lists of sockets and timestamps |
92 | 72 smtp_list connections;// open sockets, ready to be used |
90
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
73 public: |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
74 VERIFY(char *h); |
92 | 75 void closer(); // if the oldest socket is ancient, close it |
76 SMTP *get_connection(); | |
77 void put_connection(SMTP *conn); | |
78 bool ok(char *from, char *to); | |
90
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
79 }; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
80 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
81 struct DNSBL { |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
82 char *name; // nickname for this dns based list |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
83 char *suffix; // blacklist suffix like blackholes.five-ten-sg.com |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
84 char *message; // error message with one or two %s operators for the ip address replacement |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
85 DNSBL(char *n, char *s, char *m); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
86 bool operator==(const DNSBL &rhs); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
87 }; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
88 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
89 class CONTEXT { |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
90 CONTEXTP parent; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
91 char * name; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
92 context_map children; // map child context names to their contexts |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
93 string_set env_to; // this context applies to these envelope recipients |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
94 char * verify_host; // use this smtp host to verify email addresses |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
95 string_map env_from; // map senders to white/black/unknown |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
96 context_map env_from_context; // map senders to a child context |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
97 char * env_from_default; // default value for senders that are not found in the map white/black/unknown/inherit |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
98 bool content_filtering; // |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
99 char * content_suffix; // for sbl url body filtering |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
100 char * content_message; // "" |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
101 string_set content_host_ignore;// hosts to ignore for content sbl checking |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
102 string_set content_tlds; // |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
103 string_set html_tags; // set of valid html tags |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
104 int host_limit; // limit on host names |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
105 char * host_limit_message; // error message for excessive host names |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
106 bool host_random; // pick a random selection of host names rather than error for excessive hosts |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
107 int tag_limit; // limit on bad html tags |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
108 char * tag_limit_message; // error message for excessive bad html tags |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
109 dnsblp_map dnsbl_names; // name to dnsbl mapping for lists that are available in this context and children |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
110 dnsblp_list dnsbl_list; // list of dnsbls to be used in this context |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
111 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
112 public: |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
113 CONTEXT(CONTEXTP parent_, char *name_); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
114 ~CONTEXT(); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
115 CONTEXTP get_parent() {return parent;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
116 bool is_parent(CONTEXTP p); // is p a parent of this? |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
117 char* get_full_name(char *buf, int size); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
118 void add_context(CONTEXTP child) {children[child->name] = child;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
119 bool allow_env_to(char *to) {return (parent) ? parent->cover_env_to(to) : true;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
120 bool cover_env_to(char *to); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
121 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
122 void set_verify(char *host) {verify_host = host;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
123 char* get_verify() {return verify_host;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
124 VERIFYP find_verify(char *to); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
125 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
126 void add_to(char *to) {env_to.insert(to);}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
127 void add_from(char *from, char *status) {env_from[from] = status;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
128 void add_from_context(char *from, CONTEXTP con) {env_from_context[from] = con;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
129 void set_from_default(char *status) {env_from_default = status;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
130 char* find_from(char *from); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
131 CONTEXTP find_context(char *from); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
132 CONTEXTP find_from_context_name(char *name); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
133 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
134 void set_content_filtering(bool filter) {content_filtering = filter;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
135 void set_content_suffix(char *suffix) {content_suffix = suffix;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
136 void set_content_message(char *message) {content_message = message;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
137 void add_ignore(char *host) {content_host_ignore.insert(host);}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
138 void add_tld(char *tld) {content_tlds.insert(tld);}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
139 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
140 void set_host_limit(int limit) {host_limit = limit;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
141 void set_host_message(char *message) {host_limit_message = message;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
142 void set_host_random(bool random) {host_random = random;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
143 void set_tag_limit(int limit) {tag_limit = limit;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
144 void set_tag_message(char *message) {tag_limit_message = message;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
145 void add_tag(char *tag) {html_tags.insert(tag);}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
146 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
147 void add_dnsbl(char *name, DNSBLP dns) {dnsbl_names[name] = dns;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
148 void add_dnsbl(DNSBLP dns) {dnsbl_list.push_back(dns);}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
149 DNSBLP find_dnsbl(char *name); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
150 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
151 bool get_content_filtering() {return content_filtering;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
152 int get_host_limit() {return host_limit;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
153 bool get_host_random() {return host_random;}; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
154 char* get_content_suffix(); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
155 char* get_content_message(); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
156 string_set& get_content_host_ignore(); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
157 string_set& get_content_tlds(); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
158 string_set& get_html_tags(); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
159 dnsblp_list& get_dnsbl_list(); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
160 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
161 bool acceptable_content(recorder &memory, char *&msg); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
162 bool ignore_host(char *host); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
163 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
164 void dump(int level = 0); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
165 }; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
166 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
167 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
168 struct CONFIG { |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
169 // the only mutable stuff once it has been loaded from the config file |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
170 int reference_count; // protected by the global config_mutex |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
171 // all the rest is constant after loading from the config file |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
172 int generation; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
173 time_t load_time; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
174 string_set config_files; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
175 context_list contexts; // owns all the contexts, not just top level contexts |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
176 context_map env_to; // map recipient to a filtering context |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
177 CONTEXTP default_context;// for env_to values that don't have their own specific filtering context |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
178 // the default context is also used for some of the content filtering values |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
179 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
180 CONFIG(); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
181 ~CONFIG(); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
182 void add_context(CONTEXTP con); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
183 void add_to(char *to, CONTEXTP con); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
184 CONTEXTP find_context(char *to); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
185 void dump(); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
186 }; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
187 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
188 extern char *token_black; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
189 extern char *token_content; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
190 extern char *token_context; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
191 extern char *token_dccfrom; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
192 extern char *token_dccto; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
193 extern char *token_default; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
194 extern char *token_dnsbl; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
195 extern char *token_dnsbll; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
196 extern char *token_envfrom; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
197 extern char *token_envto; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
198 extern char *token_filter; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
199 extern char *token_host_limit; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
200 extern char *token_html_limit; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
201 extern char *token_html_tags; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
202 extern char *token_ignore; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
203 extern char *token_include; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
204 extern char *token_inherit; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
205 extern char *token_lbrace; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
206 extern char *token_mailhost; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
207 extern char *token_many; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
208 extern char *token_off; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
209 extern char *token_ok; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
210 extern char *token_ok2; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
211 extern char *token_on; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
212 extern char *token_rbrace; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
213 extern char *token_semi; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
214 extern char *token_soft; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
215 extern char *token_substitute; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
216 extern char *token_tld; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
217 extern char *token_unknown; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
218 extern char *token_white; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
219 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
220 extern char *token_myhostname; |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
221 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
222 extern verify_map verifiers; // map of smtp hosts to verify structures, owns all the verify structures |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
223 extern string_set all_strings; // owns all the strings, only modified by the config loader thread |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
224 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
225 void discard(string_set &s); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
226 char* register_string(string_set &s, char *name); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
227 char* register_string(char *name); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
228 CONFIG *parse_config(char *fn); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
229 bool load_conf(CONFIG &dc, char *fn); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
230 void add_verify_host(char *host); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
231 void* verify_closer(void *arg); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
232 void token_init(); |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
233 |
962a1f8f1d9f
add verify statement to verify addresses with better mx host
carl
parents:
86
diff
changeset
|
234 #endif |