source: spf2/vendor/current/src/libspf2/spf_dns_null.c@ 302

Last change on this file since 302 was 302, checked in by Yuri Dario, 14 years ago

spf2: initial vendor import of spf2 1.2.9.

File size: 2.0 KB
Line 
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of either:
4 *
5 * a) The GNU Lesser General Public License as published by the Free
6 * Software Foundation; either version 2.1, or (at your option) any
7 * later version,
8 *
9 * OR
10 *
11 * b) The two-clause BSD license.
12 *
13 * These licenses can be found with the distribution in the file LICENSES
14 */
15
16#include "spf_sys_config.h"
17
18
19#ifdef STDC_HEADERS
20# include <stdio.h> /* stdin / stdout */
21# include <stdlib.h> /* malloc / free */
22#endif
23
24#ifdef HAVE_STRING_H
25# include <string.h> /* strstr / strdup */
26#else
27# ifdef HAVE_STRINGS_H
28# include <strings.h> /* strstr / strdup */
29# endif
30#endif
31
32
33
34#include "spf.h"
35#include "spf_dns.h"
36#include "spf_internal.h"
37#include "spf_dns_internal.h"
38#include "spf_dns_null.h"
39
40
41static SPF_dns_rr_t *
42SPF_dns_null_lookup(SPF_dns_server_t *spf_dns_server,
43 const char *domain, ns_type rr_type, int should_cache)
44{
45 if (spf_dns_server->layer_below)
46 return SPF_dns_lookup(spf_dns_server->layer_below,
47 domain, rr_type, should_cache);
48 return SPF_dns_rr_new_nxdomain(spf_dns_server, domain);
49}
50
51static void
52SPF_dns_null_free( SPF_dns_server_t *spf_dns_server )
53{
54 SPF_ASSERT_NOTNULL(spf_dns_server);
55 free(spf_dns_server);
56}
57
58SPF_dns_server_t *
59SPF_dns_null_new(SPF_dns_server_t *spf_dns_server_below,
60 const char *name, int debug)
61{
62 SPF_dns_server_t *spf_dns_server;
63
64 spf_dns_server = malloc(sizeof(SPF_dns_server_t));
65 if ( spf_dns_server == NULL )
66 return NULL;
67 memset(spf_dns_server, 0, sizeof(SPF_dns_server_t));
68
69 if (name == NULL)
70 name = "null";
71
72 spf_dns_server->destroy = SPF_dns_null_free;
73 spf_dns_server->lookup = SPF_dns_null_lookup;
74 spf_dns_server->get_spf = NULL;
75 spf_dns_server->get_exp = NULL;
76 spf_dns_server->add_cache = NULL;
77 spf_dns_server->layer_below = spf_dns_server_below;
78 spf_dns_server->name = name;
79 spf_dns_server->debug = debug;
80
81 return spf_dns_server;
82}
Note: See TracBrowser for help on using the repository browser.