libspf2
1.2.10
|
00001 /* 00002 * This program is free software; you can redistribute it and/or modify 00003 * it under the terms of either: 00004 * 00005 * a) The GNU Lesser General Public License as published by the Free 00006 * Software Foundation; either version 2.1, or (at your option) any 00007 * later version, 00008 * 00009 * OR 00010 * 00011 * b) The two-clause BSD license. 00012 * 00013 * These licenses can be found with the distribution in the file LICENSES 00014 */ 00015 00016 #include "spf_sys_config.h" 00017 00018 #ifdef STDC_HEADERS 00019 # include <stdlib.h> /* malloc / free */ 00020 #endif 00021 00022 #ifdef HAVE_STRING_H 00023 # include <string.h> /* strstr / strdup */ 00024 #else 00025 # ifdef HAVE_STRINGS_H 00026 # include <strings.h> /* strstr / strdup */ 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 }