spf_dns_test.c

Go to the documentation of this file.
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 }

Generated on Tue Nov 4 13:27:39 2008 for libspf2 by  doxygen 1.5.4