00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "spf_sys_config.h"
00017
00018 #ifdef STDC_HEADERS
00019 # include <stdlib.h>
00020 #endif
00021
00022 #ifdef HAVE_STRING_H
00023 # include <string.h>
00024 #else
00025 # ifdef HAVE_STRINGS_H
00026 # include <strings.h>
00027 # endif
00028 #endif
00029
00030 #ifdef HAVE_NETDB_H
00031 #include <netdb.h>
00032 #endif
00033
00034 #include "spf.h"
00035 #include "spf_dns.h"
00036 #include "spf_internal.h"
00037 #include "spf_dns_internal.h"
00038 #include "spf_dns_test.h"
00039 #include "spf_dns_zone.h"
00040
00041
00042
00043 #define USE_SPF_SPEC_ZONE
00044 #define USE_MAILZONE_ZONE
00045 #define USE_EXT_MAILZONE_ZONE
00046
00047
00048 typedef struct
00049 {
00050 const char *domain;
00051 int rr_type;
00052 SPF_dns_stat_t herrno;
00053 const char *data;
00054 } SPF_dns_test_data_t;
00055
00056
00057
00058
00059 static const SPF_dns_test_data_t SPF_dns_db[] = {
00060 { "localhost",
00061 ns_t_a, NETDB_SUCCESS, "127.0.0.1" },
00062
00063 #ifdef USE_SPF_SPEC_ZONE
00064 { "example.com",
00065 ns_t_a, NETDB_SUCCESS, "192.0.2.3" },
00066 { "example.com",
00067 ns_t_mx, NETDB_SUCCESS, "mx.example.org" },
00068 { "example.com",
00069 ns_t_txt, NETDB_SUCCESS, "v=spf1 mx -all" },
00070 { "3.2.0.192.in-addr.arpa",
00071 ns_t_ptr, NETDB_SUCCESS, "mx.example.org" },
00072 { "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.5.d.a.0.8.0.0.0.2.5.0.f.5.in6.arpa",
00073 ns_t_ptr, NETDB_SUCCESS, "mx.example.org" },
00074
00075 { "noexist.example.com",
00076 ns_t_a, HOST_NOT_FOUND, NULL },
00077 { "mx.example.org",
00078 ns_t_a, NETDB_SUCCESS, "192.0.2.3" },
00079 { "mx.example.org",
00080 ns_t_aaaa, NETDB_SUCCESS, "5f05:2000:80ad:5800::1" },
00081 { "email.example.com",
00082 ns_t_txt, NETDB_SUCCESS, "v=spf1 -all" },
00083 { "*.example.com",
00084 ns_t_any, HOST_NOT_FOUND, NULL },
00085 { "*.example.org",
00086 ns_t_any, HOST_NOT_FOUND, NULL },
00087 { "*.example.net",
00088 ns_t_any, HOST_NOT_FOUND, NULL },
00089 #endif
00090
00091 #ifdef USE_MAILZONE_ZONE
00092 { "01.spf1-test.mailzone.com",
00093 ns_t_txt, NETDB_SUCCESS, "v=spf1 " },
00094 { "02.spf1-test.mailzone.com",
00095 ns_t_txt, NETDB_SUCCESS, "v=spf1 -all " },
00096 { "03.spf1-test.mailzone.com",
00097 ns_t_txt, NETDB_SUCCESS, "v=spf1 ~all" },
00098 { "05.spf1-test.mailzone.com",
00099 ns_t_txt, NETDB_SUCCESS, "v=spf1 default=deny " },
00100 { "06.spf1-test.mailzone.com",
00101 ns_t_txt, NETDB_SUCCESS, "v=spf1 ?all " },
00102 { "07.spf1-test.mailzone.com",
00103 ns_t_txt, NETDB_SUCCESS, "v=spf2 default=bogus " },
00104 { "08.spf1-test.mailzone.com",
00105 ns_t_txt, NETDB_SUCCESS, "v=spf1 -all ?all " },
00106 { "09.spf1-test.mailzone.com",
00107 ns_t_txt, NETDB_SUCCESS, "v=spf1 scope=header-from scope=envelope -all " },
00108 { "10.spf1-test.mailzone.com",
00109 ns_t_txt, NETDB_SUCCESS, "v=spf1 mx -all" },
00110 { "10.spf1-test.mailzone.com",
00111 ns_t_mx, NETDB_SUCCESS, "mx02.spf1-test.mailzone.com" },
00112 { "10.spf1-test.mailzone.com",
00113 ns_t_mx, NETDB_SUCCESS, "mx03.spf1-test.mailzone.com" },
00114 { "10.spf1-test.mailzone.com",
00115 ns_t_mx, NETDB_SUCCESS, "mx01.spf1-test.mailzone.com" },
00116 { "11.spf1-test.mailzone.com",
00117 ns_t_txt, NETDB_SUCCESS, "v=spf1 mx:spf1-test.mailzone.com -all" },
00118 { "12.spf1-test.mailzone.com",
00119 ns_t_txt, NETDB_SUCCESS, "v=spf1 mx mx:spf1-test.mailzone.com -all" },
00120 { "12.spf1-test.mailzone.com",
00121 ns_t_mx, NETDB_SUCCESS, "mx02.spf1-test.mailzone.com" },
00122 { "12.spf1-test.mailzone.com",
00123 ns_t_mx, NETDB_SUCCESS, "mx03.spf1-test.mailzone.com" },
00124 { "12.spf1-test.mailzone.com",
00125 ns_t_mx, NETDB_SUCCESS, "mx01.spf1-test.mailzone.com" },
00126 { "13.spf1-test.mailzone.com",
00127 ns_t_txt, NETDB_SUCCESS, "v=spf1 mx:spf1-test.mailzone.com mx:fallback-relay.spf1-test.mailzone.com -all" },
00128 { "14.spf1-test.mailzone.com",
00129 ns_t_txt, NETDB_SUCCESS, "v=spf1 mx mx:spf1-test.mailzone.com mx:fallback-relay.spf1-test.mailzone.com -all" },
00130 { "14.spf1-test.mailzone.com",
00131 ns_t_mx, NETDB_SUCCESS, "mx03.spf1-test.mailzone.com" },
00132 { "14.spf1-test.mailzone.com",
00133 ns_t_mx, NETDB_SUCCESS, "mx01.spf1-test.mailzone.com" },
00134 { "14.spf1-test.mailzone.com",
00135 ns_t_mx, NETDB_SUCCESS, "mx02.spf1-test.mailzone.com" },
00136 { "20.spf1-test.mailzone.com",
00137 ns_t_a, NETDB_SUCCESS, "192.0.2.120" },
00138 { "20.spf1-test.mailzone.com",
00139 ns_t_txt, NETDB_SUCCESS, "v=spf1 a -all" },
00140 { "21.spf1-test.mailzone.com",
00141 ns_t_txt, NETDB_SUCCESS, "v=spf1 a:spf1-test.mailzone.com -all" },
00142 { "21.spf1-test.mailzone.com",
00143 ns_t_a, NETDB_SUCCESS, "192.0.2.121" },
00144 { "22.spf1-test.mailzone.com",
00145 ns_t_txt, NETDB_SUCCESS, "v=spf1 a a:spf1-test.mailzone.com -all" },
00146 { "22.spf1-test.mailzone.com",
00147 ns_t_a, NETDB_SUCCESS, "192.0.2.122" },
00148 { "30.spf1-test.mailzone.com",
00149 ns_t_txt, NETDB_SUCCESS, "v=spf1 ptr -all" },
00150 { "30.spf1-test.mailzone.com",
00151 ns_t_a, NETDB_SUCCESS, "208.210.124.130" },
00152 { "31.spf1-test.mailzone.com",
00153 ns_t_txt, NETDB_SUCCESS, "v=spf1 ptr:spf1-test.mailzone.com -all" },
00154 { "31.spf1-test.mailzone.com",
00155 ns_t_a, NETDB_SUCCESS, "208.210.124.131" },
00156 { "32.spf1-test.mailzone.com",
00157 ns_t_txt, NETDB_SUCCESS, "v=spf1 ptr ptr:spf1-test.mailzone.com -all" },
00158 { "32.spf1-test.mailzone.com",
00159 ns_t_a, NETDB_SUCCESS, "208.210.124.132" },
00160 { "40.spf1-test.mailzone.com",
00161 ns_t_txt, NETDB_SUCCESS, "v=spf1 exists:%{ir}.%{v}._spf.%{d} -all" },
00162 { "41.spf1-test.mailzone.com",
00163 ns_t_txt, NETDB_SUCCESS, "v=spf1 exists:%{ir}.%{v}._spf.spf1-test.mailzone.com -all" },
00164 { "42.spf1-test.mailzone.com",
00165 ns_t_txt, NETDB_SUCCESS, "v=spf1 exists:%{ir}.%{v}._spf.%{d} exists:%{ir}.%{v}._spf.%{d3} -all" },
00166 { "45.spf1-test.mailzone.com",
00167 ns_t_txt, NETDB_SUCCESS, "v=spf1 -a a:spf1-test.mailzone.com -all" },
00168 { "45.spf1-test.mailzone.com",
00169 ns_t_a, NETDB_SUCCESS, "192.0.2.147" },
00170 { "45.spf1-test.mailzone.com",
00171 ns_t_a, NETDB_SUCCESS, "192.0.2.145" },
00172 { "45.spf1-test.mailzone.com",
00173 ns_t_a, NETDB_SUCCESS, "192.0.2.146" },
00174 { "50.spf1-test.mailzone.com",
00175 ns_t_txt, NETDB_SUCCESS, "v=spf1 include -all" },
00176 { "51.spf1-test.mailzone.com",
00177 ns_t_txt, NETDB_SUCCESS, "v=spf1 include:42.spf1-test.mailzone.com -all" },
00178 { "52.spf1-test.mailzone.com",
00179 ns_t_txt, NETDB_SUCCESS, "v=spf1 include:53.spf1-test.mailzone.com -all" },
00180 { "53.spf1-test.mailzone.com",
00181 ns_t_txt, NETDB_SUCCESS, "v=spf1 include:42.spf1-test.mailzone.com -all" },
00182 { "54.spf1-test.mailzone.com",
00183 ns_t_txt, NETDB_SUCCESS, "v=spf1 include:42.spf1-test.mailzone.com -all" },
00184 { "55.spf1-test.mailzone.com",
00185 ns_t_txt, NETDB_SUCCESS, "v=spf1 include:56.spf1-test.mailzone.com -all" },
00186 { "57.spf1-test.mailzone.com",
00187 ns_t_txt, NETDB_SUCCESS, "v=spf1 include:spf1-test.mailzone.com -all" },
00188 { "58.spf1-test.mailzone.com",
00189 ns_t_txt, NETDB_SUCCESS, "v=spf1 include:59.spf1-test.mailzone.com -all" },
00190 { "59.spf1-test.mailzone.com",
00191 ns_t_txt, NETDB_SUCCESS, "v=spf1 include:58.spf1-test.mailzone.com -all" },
00192 { "70.spf1-test.mailzone.com",
00193 ns_t_txt, NETDB_SUCCESS, "v=spf1 exists:%{lr+=}.lp._spf.spf1-test.mailzone.com -all" },
00194 { "80.spf1-test.mailzone.com",
00195 ns_t_txt, NETDB_SUCCESS, "v=spf1 a mx exists:%{ir}.%{v}._spf.80.spf1-test.mailzone.com ptr -all" },
00196 { "80.spf1-test.mailzone.com",
00197 ns_t_a, NETDB_SUCCESS, "208.210.124.180" },
00198 { "90.spf1-test.mailzone.com",
00199 ns_t_txt, NETDB_SUCCESS, "v=spf1 ip4:192.0.2.128/25 -all" },
00200 { "91.spf1-test.mailzone.com",
00201 ns_t_txt, NETDB_SUCCESS, "v=spf1 -ip4:192.0.2.128/25 ip4:192.0.2.0/24 -all" },
00202 { "92.spf1-test.mailzone.com",
00203 ns_t_txt, NETDB_SUCCESS, "v=spf1 ?ip4:192.0.2.192/26 ip4:192.0.2.128/25 -ip4:192.0.2.0/24 -all" },
00204 { "95.spf1-test.mailzone.com",
00205 ns_t_txt, NETDB_SUCCESS, "v=spf1 exists:%{p}.whitelist.spf1-test.mailzone.com -all" },
00206 { "96.spf1-test.mailzone.com",
00207 ns_t_txt, NETDB_SUCCESS, "v=spf1 -exists:%{d}.blacklist.spf1-test.mailzone.com -all" },
00208 { "97.spf1-test.mailzone.com",
00209 ns_t_txt, NETDB_SUCCESS, "v=spf1 exists:%{p}.whitelist.spf1-test.mailzone.com -exists:%{d}.blacklist.spf1-test.mailzone.com -all" },
00210 { "98.spf1-test.mailzone.com",
00211 ns_t_txt, NETDB_SUCCESS, "v=spf1 a/26 mx/26 -all" },
00212 { "98.spf1-test.mailzone.com",
00213 ns_t_mx, NETDB_SUCCESS, "80.spf1-test.mailzone.com" },
00214 { "98.spf1-test.mailzone.com",
00215 ns_t_a, NETDB_SUCCESS, "192.0.2.98" },
00216 { "99.spf1-test.mailzone.com",
00217 ns_t_txt, NETDB_SUCCESS, "v=spf1 -all exp=99txt.spf1-test.mailzone.com moo" },
00218 { "99txt.spf1-test.mailzone.com",
00219 ns_t_txt, NETDB_SUCCESS, "u=%{u} s=%{s} d=%{d} t=%{t} h=%{h} i=%{i} %% U=%{U} S=%{S} D=%{D} T=%{T} H=%{H} I=%{I} %% moo" },
00220 { "100.spf1-test.mailzone.com",
00221 ns_t_txt, NETDB_SUCCESS, "v=spf1 redirect=98.spf1-test.mailzone.com" },
00222 { "101.spf1-test.mailzone.com",
00223 ns_t_txt, NETDB_SUCCESS, "v=spf1 -all redirect=98.spf1-test.mailzone.com" },
00224 { "102.spf1-test.mailzone.com",
00225 ns_t_txt, NETDB_SUCCESS, "v=spf1 ?all redirect=98.spf1-test.mailzone.com" },
00226 { "103.spf1-test.mailzone.com",
00227 ns_t_txt, NETDB_SUCCESS, "v=spf1 redirect=98.%{d3}" },
00228 { "104.spf1-test.mailzone.com",
00229 ns_t_txt, NETDB_SUCCESS, "v=spf1 redirect=105.%{d3}" },
00230 { "105.spf1-test.mailzone.com",
00231 ns_t_txt, NETDB_SUCCESS, "v=spf1 redirect=106.%{d3}" },
00232 { "106.spf1-test.mailzone.com",
00233 ns_t_txt, NETDB_SUCCESS, "v=spf1 redirect=107.%{d3}" },
00234 { "107.spf1-test.mailzone.com",
00235 ns_t_txt, NETDB_SUCCESS, "v=spf1 include:104.%{d3}" },
00236 { "110.spf1-test.mailzone.com",
00237 ns_t_txt, NETDB_SUCCESS, "v=spf1 some:unrecognized=mechanism some=unrecognized:modifier -all" },
00238 { "111.spf1-test.mailzone.com",
00239 ns_t_txt, NETDB_SUCCESS, "v=spf1 mx -a gpg ~all exp=111txt.spf1-test.mailzone.com" },
00240 { "111.spf1-test.mailzone.com",
00241 ns_t_mx, NETDB_SUCCESS, "mx01.spf1-test.mailzone.com" },
00242 { "111.spf1-test.mailzone.com",
00243 ns_t_a, NETDB_SUCCESS, "192.0.2.200" },
00244 { "111txt.2.0.192.in-addr._spf.spf1-test.mailzone.com",
00245 ns_t_txt, NETDB_SUCCESS, "explanation text" },
00246 { "112.spf1-test.mailzone.com",
00247 ns_t_txt, NETDB_SUCCESS, "v=spf1 a mp3 ~all" },
00248 { "112.spf1-test.mailzone.com",
00249 ns_t_a, NETDB_SUCCESS, "192.0.2.200" },
00250 { "113.spf1-test.mailzone.com",
00251 ns_t_txt, NETDB_SUCCESS, "v=spf1 a mp3: ~all" },
00252 { "113.spf1-test.mailzone.com",
00253 ns_t_a, NETDB_SUCCESS, "192.0.2.200" },
00254 { "114.spf1-test.mailzone.com",
00255 ns_t_txt, NETDB_SUCCESS, "v=spf1 mx -a gpg=test ~all exp=114txt.spf1-test.mailzone.com" },
00256 { "114.spf1-test.mailzone.com",
00257 ns_t_mx, NETDB_SUCCESS, "mx01.spf1-test.mailzone.com" },
00258 { "114.spf1-test.mailzone.com",
00259 ns_t_a, NETDB_SUCCESS, "192.0.2.200" },
00260 { "114txt.spf1-test.mailzone.com",
00261 ns_t_txt, NETDB_SUCCESS, "explanation text" },
00262 { "115.spf1-test.mailzone.com",
00263 ns_t_txt, NETDB_SUCCESS, "v=spf1 a mp3=yes -all" },
00264 { "115.spf1-test.mailzone.com",
00265 ns_t_a, NETDB_SUCCESS, "192.0.2.200" },
00266 { "116.spf1-test.mailzone.com",
00267 ns_t_txt, NETDB_SUCCESS, "v=spf1 redirect=116rdr.spf1-test.mailzone.com a" },
00268 { "116.spf1-test.mailzone.com",
00269 ns_t_a, NETDB_SUCCESS, "192.0.2.200" },
00270 { "116rdr.spf1-test.mailzone.com",
00271 ns_t_txt, NETDB_SUCCESS, "v=spf1 -all" },
00272 { "117.spf1-test.mailzone.com",
00273 ns_t_txt, NETDB_SUCCESS, " v=spf1 +all" },
00274 { "118.spf1-test.mailzone.com",
00275 ns_t_txt, NETDB_SUCCESS, "v=spf1 -all exp=" },
00276
00277 { "mx01.spf1-test.mailzone.com",
00278 ns_t_a, NETDB_SUCCESS, "192.0.2.10" },
00279 { "mx01.spf1-test.mailzone.com",
00280 ns_t_a, NETDB_SUCCESS, "192.0.2.11" },
00281 { "mx01.spf1-test.mailzone.com",
00282 ns_t_a, NETDB_SUCCESS, "192.0.2.12" },
00283 { "mx01.spf1-test.mailzone.com",
00284 ns_t_a, NETDB_SUCCESS, "192.0.2.13" },
00285 { "mx02.spf1-test.mailzone.com",
00286 ns_t_a, NETDB_SUCCESS, "192.0.2.20" },
00287 { "mx02.spf1-test.mailzone.com",
00288 ns_t_a, NETDB_SUCCESS, "192.0.2.21" },
00289 { "mx02.spf1-test.mailzone.com",
00290 ns_t_a, NETDB_SUCCESS, "192.0.2.22" },
00291 { "mx02.spf1-test.mailzone.com",
00292 ns_t_a, NETDB_SUCCESS, "192.0.2.23" },
00293 { "mx03.spf1-test.mailzone.com",
00294 ns_t_a, NETDB_SUCCESS, "192.0.2.30" },
00295 { "mx03.spf1-test.mailzone.com",
00296 ns_t_a, NETDB_SUCCESS, "192.0.2.31" },
00297 { "mx03.spf1-test.mailzone.com",
00298 ns_t_a, NETDB_SUCCESS, "192.0.2.32" },
00299 { "mx03.spf1-test.mailzone.com",
00300 ns_t_a, NETDB_SUCCESS, "192.0.2.33" },
00301 { "mx04.spf1-test.mailzone.com",
00302 ns_t_a, NETDB_SUCCESS, "192.0.2.40" },
00303 { "mx04.spf1-test.mailzone.com",
00304 ns_t_a, NETDB_SUCCESS, "192.0.2.41" },
00305 { "mx04.spf1-test.mailzone.com",
00306 ns_t_a, NETDB_SUCCESS, "192.0.2.42" },
00307 { "mx04.spf1-test.mailzone.com",
00308 ns_t_a, NETDB_SUCCESS, "192.0.2.43" },
00309
00310 { "56.spf1-test.mailzone.com",
00311 ns_t_txt, NO_DATA, NULL },
00312 { "80.spf1-test.mailzone.com",
00313 ns_t_mx, NO_DATA, NULL },
00314 { "servfail.spf1-test.mailzone.com",
00315 ns_t_txt, TRY_AGAIN, NULL },
00316 { "spf1-test.mailzone.com",
00317 ns_t_mx, NETDB_SUCCESS, "mx02.spf1-test.mailzone.com" },
00318 { "spf1-test.mailzone.com",
00319 ns_t_mx, NETDB_SUCCESS, "mx03.spf1-test.mailzone.com" },
00320 { "spf1-test.mailzone.com",
00321 ns_t_mx, NETDB_SUCCESS, "mx01.spf1-test.mailzone.com" },
00322 { "spf1-test.mailzone.com",
00323 ns_t_a, NETDB_SUCCESS, "208.210.124.192" },
00324 { "spf1-test.mailzone.com",
00325 ns_t_a, NETDB_SUCCESS, "192.0.2.200" },
00326 { "fallback-relay.spf1-test.mailzone.com",
00327 ns_t_mx, NETDB_SUCCESS, "mx04.spf1-test.mailzone.com" },
00328
00329 { "www1.cnn.com",
00330 ns_t_a, NETDB_SUCCESS, "64.236.24.4" },
00331 { "4.24.236.64.in-addr.arpa",
00332 ns_t_ptr, NETDB_SUCCESS, "www1.cnn.com" },
00333 { "130.124.210.208.in-addr.arpa",
00334 ns_t_ptr, NETDB_SUCCESS, "30.spf1-test.mailzone.com" },
00335 { "131.124.210.208.in-addr.arpa",
00336 ns_t_ptr, NETDB_SUCCESS, "31.spf1-test.mailzone.com" },
00337 { "192.124.210.208.in-addr.arpa",
00338 ns_t_ptr, NETDB_SUCCESS, "spf1-test.mailzone.com" },
00339 { "100.2.0.192.in-addr._spf.40.spf1-test.mailzone.com",
00340 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00341
00342 { "110.2.0.192.in-addr._spf.spf1-test.mailzone.com",
00343 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00344 { "111.2.0.192.in-addr._spf.spf1-test.mailzone.com",
00345 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00346 { "101.2.0.192.in-addr._spf.40.spf1-test.mailzone.com",
00347 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00348 { "130.2.0.192.in-addr._spf.42.spf1-test.mailzone.com",
00349 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00350 { "131.2.0.192.in-addr._spf.42.spf1-test.mailzone.com",
00351 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00352 { "80.2.0.192.in-addr._spf.80.spf1-test.mailzone.com",
00353 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00354 { "96.spf1-test.mailzone.com.blacklist.spf1-test.mailzone.com",
00355 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00356 { "97.spf1-test.mailzone.com.blacklist.spf1-test.mailzone.com",
00357 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00358 { "bob.lp._spf.spf1-test.mailzone.com",
00359 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00360 { "postmaster.lp._spf.spf1-test.mailzone.com",
00361 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00362 { "1.bob.lp._spf.spf1-test.mailzone.com",
00363 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00364 { "2.bob.lp._spf.spf1-test.mailzone.com",
00365 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00366 { "1.joe.lp._spf.spf1-test.mailzone.com",
00367 ns_t_a, HOST_NOT_FOUND, NULL },
00368 { "100.2.0.192.in-addr._spf.42.spf1-test.mailzone.com",
00369 ns_t_a, HOST_NOT_FOUND, NULL },
00370 { "100.2.0.192.in-addr._spf.spf1-test.mailzone.com",
00371 ns_t_a, HOST_NOT_FOUND, NULL },
00372 { "102.2.0.192.in-addr._spf.40.spf1-test.mailzone.com",
00373 ns_t_a, HOST_NOT_FOUND, NULL },
00374 { "110.2.0.192.in-addr._spf.42.spf1-test.mailzone.com",
00375 ns_t_a, HOST_NOT_FOUND, NULL },
00376 { "130.2.0.192.in-addr._spf.spf1-test.mailzone.com",
00377 ns_t_a, HOST_NOT_FOUND, NULL },
00378 { "131.2.0.192.in-addr._spf.spf1-test.mailzone.com",
00379 ns_t_a, HOST_NOT_FOUND, NULL },
00380 { "4.24.236.64.in-addr._spf.80.spf1-test.mailzone.com",
00381 ns_t_a, HOST_NOT_FOUND, NULL },
00382 { "droid.lp._spf.spf1-test.mailzone.com",
00383 ns_t_a, HOST_NOT_FOUND, NULL },
00384 { "joe-2.lp._spf.spf1-test.mailzone.com",
00385 ns_t_a, HOST_NOT_FOUND, NULL },
00386 { "moe-1.lp._spf.spf1-test.mailzone.com",
00387 ns_t_a, HOST_NOT_FOUND, NULL },
00388 { "unknown.whitelist.spf1-test.mailzone.com",
00389 ns_t_a, HOST_NOT_FOUND, NULL },
00390
00391 { "180.124.210.208.in-addr.arpa",
00392 ns_t_ptr, NETDB_SUCCESS, "80.spf1-test.mailzone.com" },
00393
00394 { "80.spf1-test.mailzone.com.whitelist.spf1-test.mailzone.com",
00395 ns_t_a, NETDB_SUCCESS, "127.0.0.2" },
00396 { "1.124.210.208.in-addr.arpa",
00397 ns_t_ptr, NETDB_SUCCESS, "pobox-gw.icgroup.com" },
00398
00399 { "pobox-gw.icgroup.com",
00400 ns_t_a, NETDB_SUCCESS, "208.210.124.1" },
00401 { "pobox-gw.icgroup.com.whitelist.spf1-test.mailzone.com",
00402 ns_t_a, HOST_NOT_FOUND, NULL },
00403
00404 { "200.2.0.192.in-addr._spf.51.spf1-test.mailzone.com",
00405 ns_t_a, HOST_NOT_FOUND, NULL },
00406 { "200.2.0.192.in-addr._spf.spf1-test.mailzone.com",
00407 ns_t_a, HOST_NOT_FOUND, NULL },
00408 { "130.2.0.192.in-addr._spf.51.spf1-test.mailzone.com",
00409 ns_t_a, HOST_NOT_FOUND, NULL },
00410 { "200.2.0.192.in-addr._spf.42.spf1-test.mailzone.com",
00411 ns_t_a, HOST_NOT_FOUND, NULL },
00412 { "spf1-test.mailzone.com",
00413 ns_t_txt, HOST_NOT_FOUND, NULL },
00414 { "spf.trusted-forwarder.org",
00415 ns_t_txt, NETDB_SUCCESS, "v=spf1 exists:%{ir}.wl.trusted-forwarder.org exists:%{p}.wl.trusted-forwarder.org" },
00416 { "*.spf1-text.mailzone.com",
00417 ns_t_any, HOST_NOT_FOUND, NULL },
00418
00419 { "cat.com",
00420 ns_t_txt, NO_DATA, NULL },
00421 { "bar.com",
00422 ns_t_txt, NO_DATA, NULL },
00423
00424
00425 #endif
00426
00427 #ifdef USE_EXT_MAILZONE_ZONE
00428 { "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.5.d.a.0.8.0.0.0.2.5.0.f.5.in6.arpa",
00429 ns_t_ptr, NETDB_SUCCESS, "mx.example.org" },
00430
00431 #endif
00432 };
00433
00434
00435
00436 SPF_dns_server_t *
00437 SPF_dns_test_new(SPF_dns_server_t *layer_below,
00438 const char *name, int debug)
00439 {
00440 SPF_dns_server_t *spf_dns_server;
00441 int i;
00442
00443 if (name == NULL)
00444 name = "test";
00445 spf_dns_server = SPF_dns_zone_new(layer_below, name, debug);
00446 if (spf_dns_server == NULL)
00447 return NULL;
00448
00449 for( i = 0; i < array_elem( SPF_dns_db ); i++ ) {
00450 if (SPF_dns_zone_add_str(spf_dns_server,
00451 SPF_dns_db[i].domain,
00452 SPF_dns_db[i].rr_type,
00453 SPF_dns_db[i].herrno,
00454 SPF_dns_db[i].data) != SPF_E_SUCCESS)
00455 SPF_error( "Could not create test zone" );
00456 }
00457
00458 return spf_dns_server;
00459 }