0
|
1 /* Distributed Checksum Clearinghouse |
|
2 * |
|
3 * unthreaded version of client locking |
|
4 * |
|
5 * Copyright (c) 2008 by Rhyolite Software, LLC |
|
6 * |
|
7 * This agreement is not applicable to any entity which sells anti-spam |
|
8 * solutions to others or provides an anti-spam solution as part of a |
|
9 * security solution sold to other entities, or to a private network |
|
10 * which employs the DCC or uses data provided by operation of the DCC |
|
11 * but does not provide corresponding data to other users. |
|
12 * |
|
13 * Permission to use, copy, modify, and distribute this software without |
|
14 * changes for any purpose with or without fee is hereby granted, provided |
|
15 * that the above copyright notice and this permission notice appear in all |
|
16 * copies and any distributed versions or copies are either unchanged |
|
17 * or not called anything similar to "DCC" or "Distributed Checksum |
|
18 * Clearinghouse". |
|
19 * |
|
20 * Parties not eligible to receive a license under this agreement can |
|
21 * obtain a commercial license to use DCC by contacting Rhyolite Software |
|
22 * at sales@rhyolite.com. |
|
23 * |
|
24 * A commercial license would be for Distributed Checksum and Reputation |
|
25 * Clearinghouse software. That software includes additional features. This |
|
26 * free license for Distributed ChecksumClearinghouse Software does not in any |
|
27 * way grant permision to use Distributed Checksum and Reputation Clearinghouse |
|
28 * software |
|
29 * |
|
30 * THE SOFTWARE IS PROVIDED "AS IS" AND RHYOLITE SOFTWARE, LLC DISCLAIMS ALL |
|
31 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES |
|
32 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL RHYOLITE SOFTWARE, LLC |
|
33 * BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES |
|
34 * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, |
|
35 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, |
|
36 * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS |
|
37 * SOFTWARE. |
|
38 * |
|
39 * Rhyolite Software DCC 1.3.103-1.47 $Revision$ |
|
40 */ |
|
41 |
|
42 #include "dcc_ck.h" |
|
43 |
|
44 |
|
45 /* many POSIX thread implementations have unexpected side effects on |
|
46 * ordinary system calls, so don't use the threaded version unless |
|
47 * necessary */ |
|
48 |
|
49 u_char grey_on; |
|
50 u_char grey_query_only; |
|
51 |
|
52 DCC_WF cmn_wf, cmn_tmp_wf; |
|
53 |
|
54 |
|
55 static u_char ctxts_locked; |
|
56 |
|
57 |
|
58 void |
|
59 dcc_ctxts_lock(void) |
|
60 { |
|
61 #ifdef DCC_DEBUG_CLNT_LOCK |
|
62 if (ctxts_locked) |
|
63 dcc_logbad(EX_SOFTWARE, "already have ctxts lock"); |
|
64 #endif |
|
65 ++ctxts_locked; |
|
66 } |
|
67 |
|
68 |
|
69 |
|
70 void |
|
71 dcc_ctxts_unlock(void) |
|
72 { |
|
73 assert_ctxts_locked(); |
|
74 --ctxts_locked; |
|
75 } |
|
76 |
|
77 |
|
78 |
|
79 #ifdef DCC_DEBUG_CLNT_LOCK |
|
80 void |
|
81 assert_ctxts_locked(void) |
|
82 { |
|
83 if (!ctxts_locked) |
|
84 dcc_logbad(EX_SOFTWARE, "don't have ctxts lock"); |
|
85 } |
|
86 |
|
87 |
|
88 |
|
89 void |
|
90 assert_ctxts_unlocked(void) |
|
91 { |
|
92 if (ctxts_locked) |
|
93 dcc_logbad(EX_SOFTWARE, "have ctxts lock"); |
|
94 } |
|
95 #endif |
|
96 |
|
97 |
|
98 |
|
99 void |
|
100 dcc_syslog_lock(void) |
|
101 { |
|
102 } |
|
103 |
|
104 |
|
105 |
|
106 void |
|
107 dcc_syslog_unlock(void) |
|
108 { |
|
109 } |
|
110 |
|
111 |
|
112 |
|
113 u_char dcc_host_locked = 1; |
|
114 |
|
115 /* This function is mentioned in dccifd/dccif-test/dccif-test.c |
|
116 * and so cannot change lightly. */ |
|
117 void |
|
118 dcc_host_lock(void) |
|
119 { |
|
120 } |
|
121 |
|
122 |
|
123 |
|
124 /* This function is mentioned in dccifd/dccif-test/dccif-test.c |
|
125 * and so cannot change lightly. */ |
|
126 void |
|
127 dcc_host_unlock(void) |
|
128 { |
|
129 } |
|
130 |
|
131 |
|
132 |
|
133 #ifdef DCC_DEBUG_HEAP |
|
134 void |
|
135 dcc_malloc_lock(void) |
|
136 { |
|
137 } |
|
138 |
|
139 |
|
140 void |
|
141 dcc_malloc_unlock(void) |
|
142 { |
|
143 } |
|
144 #endif /* DCC_DEBUG_HEAP */ |
|
145 |
|
146 |
|
147 |
|
148 #ifndef HAVE_LOCALTIME_R |
|
149 void |
|
150 dcc_localtime_lock(void) |
|
151 { |
|
152 } |
|
153 |
|
154 |
|
155 |
|
156 void |
|
157 dcc_localtime_unlock(void) |
|
158 { |
|
159 } |
|
160 #endif /* HAVE_LOCALTIME_R */ |
|
161 |
|
162 |
|
163 |
|
164 void |
|
165 dcc_clnt_unthread_init(void) |
|
166 { |
|
167 #ifdef DCC_WIN32 |
|
168 win32_init(); |
|
169 #endif |
|
170 } |
|
171 |
|
172 |
|
173 u_char |
|
174 dcc_clnt_wake_resolve(void) |
|
175 { |
|
176 return 0; |
|
177 } |
|
178 |
|
179 |
|
180 |
|
181 #ifdef DCC_DEBUG_CLNT_LOCK |
|
182 void |
|
183 assert_cwf_locked(void) |
|
184 { |
|
185 } |
|
186 #endif |
|
187 |
|
188 |
|
189 |
|
190 u_char |
|
191 helper_lock_init(void) |
|
192 { |
|
193 return 0; |
|
194 } |
|
195 |
|
196 |
|
197 |
|
198 void |
|
199 helper_lock(void) |
|
200 { |
|
201 } |
|
202 |
|
203 |
|
204 |
|
205 void |
|
206 helper_unlock(void) |
|
207 { |
|
208 } |
|
209 |
|
210 |
|
211 |
|
212 const REPLY_TPLT * |
|
213 dnsbl_parse_reply(const char *pat UATTRIB) |
|
214 { |
|
215 return 0; |
|
216 } |