1 /*------------------------------------------------------------------------------
2  *
3  * Copyright (c) 2011-2021, EURid vzw. All rights reserved.
4  * The YADIFA TM software product is provided under the BSD 3-clause license:
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  *        * Redistributions of source code must retain the above copyright
11  *          notice, this list of conditions and the following disclaimer.
12  *        * Redistributions in binary form must reproduce the above copyright
13  *          notice, this list of conditions and the following disclaimer in the
14  *          documentation and/or other materials provided with the distribution.
15  *        * Neither the name of EURid nor the names of its contributors may be
16  *          used to endorse or promote products derived from this software
17  *          without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  *
31  *------------------------------------------------------------------------------
32  *
33  */
34 
35 /** @defgroup dnsdbupdate Dynamic update functions
36  *  @ingroup dnsdb
37  *  @brief
38  *
39  * @{
40  */
41 /*------------------------------------------------------------------------------
42  *
43  * USE INCLUDES */
44 #include "dnsdb/dnsdb-config.h"
45 
46 #include "dnsdb/dynupdate-diff.h"
47 
dnssec_chain_node_nochain_fqdn_is_covered(const zone_diff_fqdn * diff_fqdn)48 static bool dnssec_chain_node_nochain_fqdn_is_covered(const zone_diff_fqdn *diff_fqdn)
49 {
50     (void)diff_fqdn;
51     return FALSE;
52 }
53 
dnssec_chain_node_nochain_fqdn_was_covered(const zone_diff_fqdn * diff_fqdn)54 static bool dnssec_chain_node_nochain_fqdn_was_covered(const zone_diff_fqdn *diff_fqdn)
55 {
56     (void)diff_fqdn;
57     return FALSE;
58 }
59 
dnssec_chain_node_nochain_new(const u8 * fqdn,dnssec_chain_head_t chain)60 static dnssec_chain_node_t dnssec_chain_node_nochain_new(const u8 *fqdn, dnssec_chain_head_t chain)
61 {
62     (void)fqdn;
63     (void)chain;
64     return NULL;
65 }
66 
dnssec_chain_node_nochain_delete(dnssec_chain_node_t node_)67 static void dnssec_chain_node_nochain_delete(dnssec_chain_node_t node_)
68 {
69     (void)node_;
70 }
71 
dnssec_chain_node_nochain_compare(const void * a_,const void * b_)72 static int dnssec_chain_node_nochain_compare(const void *a_, const void *b_)
73 {
74     (void)a_;
75     (void)b_;
76 
77     return 0;
78 }
79 
dnssec_chain_node_nochain_prev(const dnssec_chain_node_t node_)80 static dnssec_chain_node_t dnssec_chain_node_nochain_prev(const dnssec_chain_node_t node_)
81 {
82     (void)node_;
83     return NULL;
84 }
85 
dnssec_chain_node_nochain_next(const dnssec_chain_node_t node_)86 static dnssec_chain_node_t dnssec_chain_node_nochain_next(const dnssec_chain_node_t node_)
87 {
88     (void)node_;
89     return NULL;
90 }
91 
dnssec_chain_node_nochain_state_get(const dnssec_chain_node_t node_)92 static u8 dnssec_chain_node_nochain_state_get(const dnssec_chain_node_t node_)
93 {
94     (void)node_;
95     return 0;
96 }
97 
dnssec_chain_node_nochain_state_set(dnssec_chain_node_t node_,u8 value)98 static void dnssec_chain_node_nochain_state_set(dnssec_chain_node_t node_, u8 value)
99 {
100     (void)node_;
101     (void)value;
102 }
103 
dnssec_chain_node_nochain_merge(dnssec_chain_node_t node_,dnssec_chain_node_t with_)104 static void dnssec_chain_node_nochain_merge(dnssec_chain_node_t node_, dnssec_chain_node_t with_)
105 {
106     (void)node_;
107     (void)with_;
108 }
109 
dnssec_chain_node_nochain_publish_log(dnssec_chain_node_t from_,dnssec_chain_node_t to_)110 static void dnssec_chain_node_nochain_publish_log(dnssec_chain_node_t from_, dnssec_chain_node_t to_)
111 {
112     (void)from_;
113     (void)to_;
114 }
115 
dnssec_chain_node_nochain_publish_add(dnssec_chain_head_t chain_,dnssec_chain_node_t from_,dnssec_chain_node_t to_,zone_diff * diff,ptr_vector * collection)116 static void dnssec_chain_node_nochain_publish_add(dnssec_chain_head_t chain_, dnssec_chain_node_t from_, dnssec_chain_node_t to_, zone_diff *diff, ptr_vector *collection)
117 {
118     (void)chain_;
119     (void)from_;
120     (void)to_;
121     (void)diff;
122     (void)collection;
123 }
124 
dnssec_chain_node_nochain_publish_delete(dnssec_chain_head_t chain_,dnssec_chain_node_t from_,dnssec_chain_node_t to_,zone_diff * diff,ptr_vector * collection)125 static void dnssec_chain_node_nochain_publish_delete(dnssec_chain_head_t chain_, dnssec_chain_node_t from_, dnssec_chain_node_t to_, zone_diff *diff, ptr_vector *collection)
126 {
127     (void)chain_;
128     (void)from_;
129     (void)to_;
130     (void)diff;
131     (void)collection;
132 }
133 
dnssec_chain_nochain_isempty(dnssec_chain_head_t chain_)134 static bool dnssec_chain_nochain_isempty(dnssec_chain_head_t chain_)
135 {
136     (void)chain_;
137     return TRUE;
138 }
139 
dnssec_chain_nochain_finalize_delete_callback(ptr_node * node)140 static void dnssec_chain_nochain_finalize_delete_callback(ptr_node *node)
141 {
142     (void)node;
143 }
144 
dnssec_chain_node_nochain_format_writer_init(dnssec_chain_node_t node_,format_writer * outfw)145 static void dnssec_chain_node_nochain_format_writer_init(dnssec_chain_node_t node_, format_writer *outfw)
146 {
147     (void)node_;
148     (void)outfw;
149 }
150 
dnssec_chain_node_rrset_should_be_signed(const zone_diff_fqdn * diff_fqdn,const zone_diff_fqdn_rr_set * rr_set)151 static bool dnssec_chain_node_rrset_should_be_signed(const zone_diff_fqdn *diff_fqdn, const zone_diff_fqdn_rr_set *rr_set)
152 {
153     (void)diff_fqdn;
154     (void)rr_set;
155     return FALSE;
156 }
157 
158 static dnssec_chain_node_vtbl dnssec_chain_node_nochain_vtbl =
159 {
160     dnssec_chain_node_nochain_fqdn_is_covered,
161     dnssec_chain_node_nochain_fqdn_was_covered,
162     dnssec_chain_node_nochain_new,
163     dnssec_chain_node_nochain_prev,
164     dnssec_chain_node_nochain_merge,
165     dnssec_chain_node_nochain_next,
166     dnssec_chain_node_nochain_state_set,
167     dnssec_chain_node_nochain_state_get,
168     dnssec_chain_node_nochain_delete,
169     dnssec_chain_node_nochain_publish_delete,
170     dnssec_chain_node_nochain_publish_add,
171     dnssec_chain_node_nochain_publish_log,
172     dnssec_chain_node_nochain_compare,
173     dnssec_chain_nochain_finalize_delete_callback,
174     dnssec_chain_nochain_isempty,
175     dnssec_chain_node_nochain_format_writer_init,
176     dnssec_chain_node_rrset_should_be_signed,
177     "nosec"
178 };
179 
180 const dnssec_chain_node_vtbl *
dynupdate_nosec_chain_get_vtbl()181 dynupdate_nosec_chain_get_vtbl()
182 {
183     return &dnssec_chain_node_nochain_vtbl;
184 }
185