Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/bio/bss_dgram.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||
3 | - | |||||||||||||||||||||||||
4 | - | |||||||||||||||||||||||||
5 | - | |||||||||||||||||||||||||
6 | - | |||||||||||||||||||||||||
7 | - | |||||||||||||||||||||||||
8 | - | |||||||||||||||||||||||||
9 | static int dgram_write(BIO *h, const char *buf, int num); | - | ||||||||||||||||||||||||
10 | static int dgram_read(BIO *h, char *buf, int size); | - | ||||||||||||||||||||||||
11 | static int dgram_puts(BIO *h, const char *str); | - | ||||||||||||||||||||||||
12 | static long dgram_ctrl(BIO *h, int cmd, long arg1, void *arg2); | - | ||||||||||||||||||||||||
13 | static int dgram_new(BIO *h); | - | ||||||||||||||||||||||||
14 | static int dgram_free(BIO *data); | - | ||||||||||||||||||||||||
15 | static int dgram_clear(BIO *bio); | - | ||||||||||||||||||||||||
16 | - | |||||||||||||||||||||||||
17 | - | |||||||||||||||||||||||||
18 | static int BIO_dgram_should_retry(int s); | - | ||||||||||||||||||||||||
19 | - | |||||||||||||||||||||||||
20 | static const BIO_METHOD methods_dgramp = { | - | ||||||||||||||||||||||||
21 | .type = (21|0x0400|0x0100), | - | ||||||||||||||||||||||||
22 | .name = "datagram socket", | - | ||||||||||||||||||||||||
23 | .bwrite = dgram_write, | - | ||||||||||||||||||||||||
24 | .bread = dgram_read, | - | ||||||||||||||||||||||||
25 | .bputs = dgram_puts, | - | ||||||||||||||||||||||||
26 | .ctrl = dgram_ctrl, | - | ||||||||||||||||||||||||
27 | .create = dgram_new, | - | ||||||||||||||||||||||||
28 | .destroy = dgram_free | - | ||||||||||||||||||||||||
29 | }; | - | ||||||||||||||||||||||||
30 | - | |||||||||||||||||||||||||
31 | - | |||||||||||||||||||||||||
32 | typedef struct bio_dgram_data_st { | - | ||||||||||||||||||||||||
33 | union { | - | ||||||||||||||||||||||||
34 | struct sockaddr sa; | - | ||||||||||||||||||||||||
35 | struct sockaddr_in sa_in; | - | ||||||||||||||||||||||||
36 | struct sockaddr_in6 sa_in6; | - | ||||||||||||||||||||||||
37 | } peer; | - | ||||||||||||||||||||||||
38 | unsigned int connected; | - | ||||||||||||||||||||||||
39 | unsigned int _errno; | - | ||||||||||||||||||||||||
40 | unsigned int mtu; | - | ||||||||||||||||||||||||
41 | struct timeval next_timeout; | - | ||||||||||||||||||||||||
42 | struct timeval socket_timeout; | - | ||||||||||||||||||||||||
43 | } bio_dgram_data; | - | ||||||||||||||||||||||||
44 | - | |||||||||||||||||||||||||
45 | - | |||||||||||||||||||||||||
46 | const BIO_METHOD * | - | ||||||||||||||||||||||||
47 | BIO_s_datagram(void) | - | ||||||||||||||||||||||||
48 | { | - | ||||||||||||||||||||||||
49 | return never executed: (&methods_dgramp);return (&methods_dgramp); never executed: return (&methods_dgramp); | 0 | ||||||||||||||||||||||||
50 | } | - | ||||||||||||||||||||||||
51 | - | |||||||||||||||||||||||||
52 | BIO * | - | ||||||||||||||||||||||||
53 | BIO_new_dgram(int fd, int close_flag) | - | ||||||||||||||||||||||||
54 | { | - | ||||||||||||||||||||||||
55 | BIO *ret; | - | ||||||||||||||||||||||||
56 | - | |||||||||||||||||||||||||
57 | ret = BIO_new(BIO_s_datagram()); | - | ||||||||||||||||||||||||
58 | if (ret ==
| 0 | ||||||||||||||||||||||||
59 | ((void *)0)
| 0 | ||||||||||||||||||||||||
60 | ) | - | ||||||||||||||||||||||||
61 | return never executed: (return ( ((void *)0) ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||||||||
62 | ((void *)0) never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||||||||
63 | ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||||||||
64 | BIO_int_ctrl(ret,104,close_flag,fd); | - | ||||||||||||||||||||||||
65 | return never executed: (ret);return (ret); never executed: return (ret); | 0 | ||||||||||||||||||||||||
66 | } | - | ||||||||||||||||||||||||
67 | - | |||||||||||||||||||||||||
68 | static int | - | ||||||||||||||||||||||||
69 | dgram_new(BIO *bi) | - | ||||||||||||||||||||||||
70 | { | - | ||||||||||||||||||||||||
71 | bio_dgram_data *data = | - | ||||||||||||||||||||||||
72 | ((void *)0) | - | ||||||||||||||||||||||||
73 | ; | - | ||||||||||||||||||||||||
74 | - | |||||||||||||||||||||||||
75 | bi->init = 0; | - | ||||||||||||||||||||||||
76 | bi->num = 0; | - | ||||||||||||||||||||||||
77 | data = calloc(1, sizeof(bio_dgram_data)); | - | ||||||||||||||||||||||||
78 | if (data ==
| 0 | ||||||||||||||||||||||||
79 | ((void *)0)
| 0 | ||||||||||||||||||||||||
80 | ) | - | ||||||||||||||||||||||||
81 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
82 | bi->ptr = data; | - | ||||||||||||||||||||||||
83 | - | |||||||||||||||||||||||||
84 | bi->flags = 0; | - | ||||||||||||||||||||||||
85 | return never executed: (1);return (1); never executed: return (1); | 0 | ||||||||||||||||||||||||
86 | } | - | ||||||||||||||||||||||||
87 | - | |||||||||||||||||||||||||
88 | static int | - | ||||||||||||||||||||||||
89 | dgram_free(BIO *a) | - | ||||||||||||||||||||||||
90 | { | - | ||||||||||||||||||||||||
91 | bio_dgram_data *data; | - | ||||||||||||||||||||||||
92 | - | |||||||||||||||||||||||||
93 | if (a ==
| 0 | ||||||||||||||||||||||||
94 | ((void *)0)
| 0 | ||||||||||||||||||||||||
95 | ) | - | ||||||||||||||||||||||||
96 | return never executed: (0);return (0); never executed: return (0); | 0 | ||||||||||||||||||||||||
97 | if (!dgram_clear(a)
| 0 | ||||||||||||||||||||||||
98 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
99 | - | |||||||||||||||||||||||||
100 | data = (bio_dgram_data *)a->ptr; | - | ||||||||||||||||||||||||
101 | free(data); | - | ||||||||||||||||||||||||
102 | - | |||||||||||||||||||||||||
103 | return never executed: (1);return (1); never executed: return (1); | 0 | ||||||||||||||||||||||||
104 | } | - | ||||||||||||||||||||||||
105 | - | |||||||||||||||||||||||||
106 | static int | - | ||||||||||||||||||||||||
107 | dgram_clear(BIO *a) | - | ||||||||||||||||||||||||
108 | { | - | ||||||||||||||||||||||||
109 | if (a ==
| 0 | ||||||||||||||||||||||||
110 | ((void *)0)
| 0 | ||||||||||||||||||||||||
111 | ) | - | ||||||||||||||||||||||||
112 | return never executed: (0);return (0); never executed: return (0); | 0 | ||||||||||||||||||||||||
113 | if (a->shutdown
| 0 | ||||||||||||||||||||||||
114 | if (a->init
| 0 | ||||||||||||||||||||||||
115 | shutdown(a->num, | - | ||||||||||||||||||||||||
116 | SHUT_RDWR | - | ||||||||||||||||||||||||
117 | ); | - | ||||||||||||||||||||||||
118 | close(a->num); | - | ||||||||||||||||||||||||
119 | } never executed: end of block | 0 | ||||||||||||||||||||||||
120 | a->init = 0; | - | ||||||||||||||||||||||||
121 | a->flags = 0; | - | ||||||||||||||||||||||||
122 | } never executed: end of block | 0 | ||||||||||||||||||||||||
123 | return never executed: (1);return (1); never executed: return (1); | 0 | ||||||||||||||||||||||||
124 | } | - | ||||||||||||||||||||||||
125 | - | |||||||||||||||||||||||||
126 | static void | - | ||||||||||||||||||||||||
127 | dgram_adjust_rcv_timeout(BIO *b) | - | ||||||||||||||||||||||||
128 | { | - | ||||||||||||||||||||||||
129 | - | |||||||||||||||||||||||||
130 | bio_dgram_data *data = (bio_dgram_data *)b->ptr; | - | ||||||||||||||||||||||||
131 | - | |||||||||||||||||||||||||
132 | - | |||||||||||||||||||||||||
133 | if (data->next_timeout.tv_sec > 0
| 0 | ||||||||||||||||||||||||
134 | struct timeval timenow, timeleft; | - | ||||||||||||||||||||||||
135 | - | |||||||||||||||||||||||||
136 | - | |||||||||||||||||||||||||
137 | socklen_t sz = sizeof(data->socket_timeout); | - | ||||||||||||||||||||||||
138 | if (getsockopt(b->num,
| 0 | ||||||||||||||||||||||||
139 | 1
| 0 | ||||||||||||||||||||||||
140 | ,
| 0 | ||||||||||||||||||||||||
141 | 20
| 0 | ||||||||||||||||||||||||
142 | ,
| 0 | ||||||||||||||||||||||||
143 | &(data->socket_timeout), &sz) < 0
| 0 | ||||||||||||||||||||||||
144 | perror("getsockopt"); | - | ||||||||||||||||||||||||
145 | } never executed: end of block | 0 | ||||||||||||||||||||||||
146 | - | |||||||||||||||||||||||||
147 | - | |||||||||||||||||||||||||
148 | gettimeofday(&timenow, | - | ||||||||||||||||||||||||
149 | ((void *)0) | - | ||||||||||||||||||||||||
150 | ); | - | ||||||||||||||||||||||||
151 | - | |||||||||||||||||||||||||
152 | - | |||||||||||||||||||||||||
153 | memcpy(&timeleft, &(data->next_timeout), sizeof(struct timeval)); | - | ||||||||||||||||||||||||
154 | timeleft.tv_sec -= timenow.tv_sec; | - | ||||||||||||||||||||||||
155 | timeleft.tv_usec -= timenow.tv_usec; | - | ||||||||||||||||||||||||
156 | if (timeleft.tv_usec < 0
| 0 | ||||||||||||||||||||||||
157 | timeleft.tv_sec--; | - | ||||||||||||||||||||||||
158 | timeleft.tv_usec += 1000000; | - | ||||||||||||||||||||||||
159 | } never executed: end of block | 0 | ||||||||||||||||||||||||
160 | - | |||||||||||||||||||||||||
161 | if (timeleft.tv_sec < 0
| 0 | ||||||||||||||||||||||||
162 | timeleft.tv_sec = 0; | - | ||||||||||||||||||||||||
163 | timeleft.tv_usec = 1; | - | ||||||||||||||||||||||||
164 | } never executed: end of block | 0 | ||||||||||||||||||||||||
165 | - | |||||||||||||||||||||||||
166 | - | |||||||||||||||||||||||||
167 | - | |||||||||||||||||||||||||
168 | - | |||||||||||||||||||||||||
169 | if ((data->socket_timeout.tv_sec == 0
| 0 | ||||||||||||||||||||||||
170 | data->socket_timeout.tv_usec == 0
| 0 | ||||||||||||||||||||||||
171 | (
| 0 | ||||||||||||||||||||||||
172 | (data->socket_timeout.tv_sec == timeleft.tv_sec
| 0 | ||||||||||||||||||||||||
173 | data->socket_timeout.tv_usec >= timeleft.tv_usec
| 0 | ||||||||||||||||||||||||
174 | if (setsockopt(b->num,
| 0 | ||||||||||||||||||||||||
175 | 1
| 0 | ||||||||||||||||||||||||
176 | ,
| 0 | ||||||||||||||||||||||||
177 | 20
| 0 | ||||||||||||||||||||||||
178 | ,
| 0 | ||||||||||||||||||||||||
179 | &timeleft, sizeof(struct timeval)) < 0
| 0 | ||||||||||||||||||||||||
180 | perror("setsockopt"); | - | ||||||||||||||||||||||||
181 | } never executed: end of block | 0 | ||||||||||||||||||||||||
182 | } never executed: end of block | 0 | ||||||||||||||||||||||||
183 | } never executed: end of block | 0 | ||||||||||||||||||||||||
184 | - | |||||||||||||||||||||||||
185 | } never executed: end of block | 0 | ||||||||||||||||||||||||
186 | - | |||||||||||||||||||||||||
187 | static void | - | ||||||||||||||||||||||||
188 | dgram_reset_rcv_timeout(BIO *b) | - | ||||||||||||||||||||||||
189 | { | - | ||||||||||||||||||||||||
190 | - | |||||||||||||||||||||||||
191 | bio_dgram_data *data = (bio_dgram_data *)b->ptr; | - | ||||||||||||||||||||||||
192 | - | |||||||||||||||||||||||||
193 | - | |||||||||||||||||||||||||
194 | if (data->next_timeout.tv_sec > 0
| 0 | ||||||||||||||||||||||||
195 | if (setsockopt(b->num,
| 0 | ||||||||||||||||||||||||
196 | 1
| 0 | ||||||||||||||||||||||||
197 | ,
| 0 | ||||||||||||||||||||||||
198 | 20
| 0 | ||||||||||||||||||||||||
199 | ,
| 0 | ||||||||||||||||||||||||
200 | &(data->socket_timeout), sizeof(struct timeval)) < 0
| 0 | ||||||||||||||||||||||||
201 | perror("setsockopt"); | - | ||||||||||||||||||||||||
202 | } never executed: end of block | 0 | ||||||||||||||||||||||||
203 | } never executed: end of block | 0 | ||||||||||||||||||||||||
204 | - | |||||||||||||||||||||||||
205 | } never executed: end of block | 0 | ||||||||||||||||||||||||
206 | - | |||||||||||||||||||||||||
207 | static int | - | ||||||||||||||||||||||||
208 | dgram_read(BIO *b, char *out, int outl) | - | ||||||||||||||||||||||||
209 | { | - | ||||||||||||||||||||||||
210 | int ret = 0; | - | ||||||||||||||||||||||||
211 | bio_dgram_data *data = (bio_dgram_data *)b->ptr; | - | ||||||||||||||||||||||||
212 | - | |||||||||||||||||||||||||
213 | struct { | - | ||||||||||||||||||||||||
214 | socklen_t len; | - | ||||||||||||||||||||||||
215 | union { | - | ||||||||||||||||||||||||
216 | struct sockaddr sa; | - | ||||||||||||||||||||||||
217 | struct sockaddr_in sa_in; | - | ||||||||||||||||||||||||
218 | struct sockaddr_in6 sa_in6; | - | ||||||||||||||||||||||||
219 | } peer; | - | ||||||||||||||||||||||||
220 | } sa; | - | ||||||||||||||||||||||||
221 | - | |||||||||||||||||||||||||
222 | sa.len = sizeof(sa.peer); | - | ||||||||||||||||||||||||
223 | - | |||||||||||||||||||||||||
224 | if (out !=
| 0 | ||||||||||||||||||||||||
225 | ((void *)0)
| 0 | ||||||||||||||||||||||||
226 | ) { | - | ||||||||||||||||||||||||
227 | - | |||||||||||||||||||||||||
228 | (*__errno_location ()) | - | ||||||||||||||||||||||||
229 | = 0; | - | ||||||||||||||||||||||||
230 | memset(&sa.peer, 0, sizeof(sa.peer)); | - | ||||||||||||||||||||||||
231 | dgram_adjust_rcv_timeout(b); | - | ||||||||||||||||||||||||
232 | ret = recvfrom(b->num, out, outl, 0, &sa.peer.sa, &sa.len); | - | ||||||||||||||||||||||||
233 | - | |||||||||||||||||||||||||
234 | if (! data->connected
| 0 | ||||||||||||||||||||||||
235 | BIO_ctrl(b, 44, 0, &sa.peer); never executed: BIO_ctrl(b, 44, 0, &sa.peer); | 0 | ||||||||||||||||||||||||
236 | - | |||||||||||||||||||||||||
237 | BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08)); | - | ||||||||||||||||||||||||
238 | if (ret < 0
| 0 | ||||||||||||||||||||||||
239 | if (BIO_dgram_should_retry(ret)
| 0 | ||||||||||||||||||||||||
240 | BIO_set_flags(b, (0x01|0x08)); | - | ||||||||||||||||||||||||
241 | data->_errno = | - | ||||||||||||||||||||||||
242 | (*__errno_location ()) | - | ||||||||||||||||||||||||
243 | ; | - | ||||||||||||||||||||||||
244 | } never executed: end of block | 0 | ||||||||||||||||||||||||
245 | } never executed: end of block | 0 | ||||||||||||||||||||||||
246 | - | |||||||||||||||||||||||||
247 | dgram_reset_rcv_timeout(b); | - | ||||||||||||||||||||||||
248 | } never executed: end of block | 0 | ||||||||||||||||||||||||
249 | return never executed: (ret);return (ret); never executed: return (ret); | 0 | ||||||||||||||||||||||||
250 | } | - | ||||||||||||||||||||||||
251 | - | |||||||||||||||||||||||||
252 | static int | - | ||||||||||||||||||||||||
253 | dgram_write(BIO *b, const char *in, int inl) | - | ||||||||||||||||||||||||
254 | { | - | ||||||||||||||||||||||||
255 | int ret; | - | ||||||||||||||||||||||||
256 | bio_dgram_data *data = (bio_dgram_data *)b->ptr; | - | ||||||||||||||||||||||||
257 | - | |||||||||||||||||||||||||
258 | (*__errno_location ()) | - | ||||||||||||||||||||||||
259 | = 0; | - | ||||||||||||||||||||||||
260 | - | |||||||||||||||||||||||||
261 | if (data->connected
| 0 | ||||||||||||||||||||||||
262 | ret = write(b->num, in, inl); never executed: ret = write(b->num, in, inl); | 0 | ||||||||||||||||||||||||
263 | else { | - | ||||||||||||||||||||||||
264 | int peerlen = sizeof(data->peer); | - | ||||||||||||||||||||||||
265 | - | |||||||||||||||||||||||||
266 | if (data->peer.sa.sa_family ==
| 0 | ||||||||||||||||||||||||
267 | 2
| 0 | ||||||||||||||||||||||||
268 | ) | - | ||||||||||||||||||||||||
269 | peerlen = sizeof(data->peer.sa_in); never executed: peerlen = sizeof(data->peer.sa_in); | 0 | ||||||||||||||||||||||||
270 | else if (data->peer.sa.sa_family ==
| 0 | ||||||||||||||||||||||||
271 | 10
| 0 | ||||||||||||||||||||||||
272 | ) | - | ||||||||||||||||||||||||
273 | peerlen = sizeof(data->peer.sa_in6); never executed: peerlen = sizeof(data->peer.sa_in6); | 0 | ||||||||||||||||||||||||
274 | ret = sendto(b->num, in, inl, 0, &data->peer.sa, peerlen); | - | ||||||||||||||||||||||||
275 | } never executed: end of block | 0 | ||||||||||||||||||||||||
276 | - | |||||||||||||||||||||||||
277 | BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08)); | - | ||||||||||||||||||||||||
278 | if (ret <= 0
| 0 | ||||||||||||||||||||||||
279 | if (BIO_dgram_should_retry(ret)
| 0 | ||||||||||||||||||||||||
280 | BIO_set_flags(b, (0x02|0x08)); | - | ||||||||||||||||||||||||
281 | - | |||||||||||||||||||||||||
282 | data->_errno = | - | ||||||||||||||||||||||||
283 | (*__errno_location ()) | - | ||||||||||||||||||||||||
284 | ; | - | ||||||||||||||||||||||||
285 | - | |||||||||||||||||||||||||
286 | - | |||||||||||||||||||||||||
287 | - | |||||||||||||||||||||||||
288 | - | |||||||||||||||||||||||||
289 | } never executed: end of block | 0 | ||||||||||||||||||||||||
290 | } never executed: end of block | 0 | ||||||||||||||||||||||||
291 | return never executed: (ret);return (ret); never executed: return (ret); | 0 | ||||||||||||||||||||||||
292 | } | - | ||||||||||||||||||||||||
293 | - | |||||||||||||||||||||||||
294 | static long | - | ||||||||||||||||||||||||
295 | dgram_ctrl(BIO *b, int cmd, long num, void *ptr) | - | ||||||||||||||||||||||||
296 | { | - | ||||||||||||||||||||||||
297 | long ret = 1; | - | ||||||||||||||||||||||||
298 | int *ip; | - | ||||||||||||||||||||||||
299 | struct sockaddr *to = | - | ||||||||||||||||||||||||
300 | ((void *)0) | - | ||||||||||||||||||||||||
301 | ; | - | ||||||||||||||||||||||||
302 | bio_dgram_data *data = | - | ||||||||||||||||||||||||
303 | ((void *)0) | - | ||||||||||||||||||||||||
304 | ; | - | ||||||||||||||||||||||||
305 | - | |||||||||||||||||||||||||
306 | int sockopt_val = 0; | - | ||||||||||||||||||||||||
307 | socklen_t sockopt_len; | - | ||||||||||||||||||||||||
308 | - | |||||||||||||||||||||||||
309 | socklen_t addr_len; | - | ||||||||||||||||||||||||
310 | union { | - | ||||||||||||||||||||||||
311 | struct sockaddr sa; | - | ||||||||||||||||||||||||
312 | struct sockaddr_in s4; | - | ||||||||||||||||||||||||
313 | struct sockaddr_in6 s6; | - | ||||||||||||||||||||||||
314 | } addr; | - | ||||||||||||||||||||||||
315 | - | |||||||||||||||||||||||||
316 | - | |||||||||||||||||||||||||
317 | data = (bio_dgram_data *)b->ptr; | - | ||||||||||||||||||||||||
318 | - | |||||||||||||||||||||||||
319 | switch (cmd) { | - | ||||||||||||||||||||||||
320 | case never executed: 1:case 1: never executed: case 1: | 0 | ||||||||||||||||||||||||
321 | num = 0; | - | ||||||||||||||||||||||||
322 | case never executed: 128:case 128: never executed: case 128: code before this statement never executed: case 128: | 0 | ||||||||||||||||||||||||
323 | ret = 0; | - | ||||||||||||||||||||||||
324 | break; never executed: break; | 0 | ||||||||||||||||||||||||
325 | case never executed: 133:case 133: never executed: case 133: | 0 | ||||||||||||||||||||||||
326 | case never executed: 3:case 3: never executed: case 3: | 0 | ||||||||||||||||||||||||
327 | ret = 0; | - | ||||||||||||||||||||||||
328 | break; never executed: break; | 0 | ||||||||||||||||||||||||
329 | case never executed: 104:case 104: never executed: case 104: | 0 | ||||||||||||||||||||||||
330 | dgram_clear(b); | - | ||||||||||||||||||||||||
331 | b->num= *((int *)ptr); | - | ||||||||||||||||||||||||
332 | b->shutdown = (int)num; | - | ||||||||||||||||||||||||
333 | b->init = 1; | - | ||||||||||||||||||||||||
334 | break; never executed: break; | 0 | ||||||||||||||||||||||||
335 | case never executed: 105:case 105: never executed: case 105: | 0 | ||||||||||||||||||||||||
336 | if (b->init
| 0 | ||||||||||||||||||||||||
337 | ip = (int *)ptr; | - | ||||||||||||||||||||||||
338 | if (ip !=
| 0 | ||||||||||||||||||||||||
339 | ((void *)0)
| 0 | ||||||||||||||||||||||||
340 | ) | - | ||||||||||||||||||||||||
341 | * never executed: ip = b->num;*ip = b->num; never executed: *ip = b->num; | 0 | ||||||||||||||||||||||||
342 | ret = b->num; | - | ||||||||||||||||||||||||
343 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
344 | ret = -1; never executed: ret = -1; | 0 | ||||||||||||||||||||||||
345 | break; never executed: break; | 0 | ||||||||||||||||||||||||
346 | case never executed: 8:case 8: never executed: case 8: | 0 | ||||||||||||||||||||||||
347 | ret = b->shutdown; | - | ||||||||||||||||||||||||
348 | break; never executed: break; | 0 | ||||||||||||||||||||||||
349 | case never executed: 9:case 9: never executed: case 9: | 0 | ||||||||||||||||||||||||
350 | b->shutdown = (int)num; | - | ||||||||||||||||||||||||
351 | break; never executed: break; | 0 | ||||||||||||||||||||||||
352 | case never executed: 10:case 10: never executed: case 10: | 0 | ||||||||||||||||||||||||
353 | case never executed: 13:case 13: never executed: case 13: | 0 | ||||||||||||||||||||||||
354 | ret = 0; | - | ||||||||||||||||||||||||
355 | break; never executed: break; | 0 | ||||||||||||||||||||||||
356 | case never executed: 12:case 12: never executed: case 12: | 0 | ||||||||||||||||||||||||
357 | case never executed: 11:case 11: never executed: case 11: | 0 | ||||||||||||||||||||||||
358 | ret = 1; | - | ||||||||||||||||||||||||
359 | break; never executed: break; | 0 | ||||||||||||||||||||||||
360 | case never executed: 31:case 31: never executed: case 31: | 0 | ||||||||||||||||||||||||
361 | to = (struct sockaddr *)ptr; | - | ||||||||||||||||||||||||
362 | switch (to->sa_family) { | - | ||||||||||||||||||||||||
363 | case never executed: case 2 : never executed: case 2 : | 0 | ||||||||||||||||||||||||
364 | 2 never executed: case 2 : | 0 | ||||||||||||||||||||||||
365 | : never executed: case 2 : | 0 | ||||||||||||||||||||||||
366 | memcpy(&data->peer, to, sizeof(data->peer.sa_in)); | - | ||||||||||||||||||||||||
367 | break; never executed: break; | 0 | ||||||||||||||||||||||||
368 | case never executed: case 10 : never executed: case 10 : | 0 | ||||||||||||||||||||||||
369 | 10 never executed: case 10 : | 0 | ||||||||||||||||||||||||
370 | : never executed: case 10 : | 0 | ||||||||||||||||||||||||
371 | memcpy(&data->peer, to, sizeof(data->peer.sa_in6)); | - | ||||||||||||||||||||||||
372 | break; never executed: break; | 0 | ||||||||||||||||||||||||
373 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
374 | memcpy(&data->peer, to, sizeof(data->peer.sa)); | - | ||||||||||||||||||||||||
375 | break; never executed: break; | 0 | ||||||||||||||||||||||||
376 | } | - | ||||||||||||||||||||||||
377 | break; never executed: break; | 0 | ||||||||||||||||||||||||
378 | - | |||||||||||||||||||||||||
379 | case never executed: 39:case 39: never executed: case 39: | 0 | ||||||||||||||||||||||||
380 | - | |||||||||||||||||||||||||
381 | addr_len = (socklen_t)sizeof(addr); | - | ||||||||||||||||||||||||
382 | memset((void *)&addr, 0, sizeof(addr)); | - | ||||||||||||||||||||||||
383 | if (getsockname(b->num, &addr.sa, &addr_len) < 0
| 0 | ||||||||||||||||||||||||
384 | ret = 0; | - | ||||||||||||||||||||||||
385 | break; never executed: break; | 0 | ||||||||||||||||||||||||
386 | } | - | ||||||||||||||||||||||||
387 | switch (addr.sa.sa_family) { | - | ||||||||||||||||||||||||
388 | case never executed: case 2 : never executed: case 2 : | 0 | ||||||||||||||||||||||||
389 | 2 never executed: case 2 : | 0 | ||||||||||||||||||||||||
390 | : never executed: case 2 : | 0 | ||||||||||||||||||||||||
391 | sockopt_val = | - | ||||||||||||||||||||||||
392 | 2 | - | ||||||||||||||||||||||||
393 | ; | - | ||||||||||||||||||||||||
394 | ret = setsockopt(b->num, | - | ||||||||||||||||||||||||
395 | IPPROTO_IP | - | ||||||||||||||||||||||||
396 | , | - | ||||||||||||||||||||||||
397 | 10 | - | ||||||||||||||||||||||||
398 | , | - | ||||||||||||||||||||||||
399 | &sockopt_val, sizeof(sockopt_val)); | - | ||||||||||||||||||||||||
400 | if (ret < 0
| 0 | ||||||||||||||||||||||||
401 | perror("setsockopt"); never executed: perror("setsockopt"); | 0 | ||||||||||||||||||||||||
402 | break; never executed: break; | 0 | ||||||||||||||||||||||||
403 | - | |||||||||||||||||||||||||
404 | case never executed: case 10 : never executed: case 10 : | 0 | ||||||||||||||||||||||||
405 | 10 never executed: case 10 : | 0 | ||||||||||||||||||||||||
406 | : never executed: case 10 : | 0 | ||||||||||||||||||||||||
407 | sockopt_val = | - | ||||||||||||||||||||||||
408 | 2 | - | ||||||||||||||||||||||||
409 | ; | - | ||||||||||||||||||||||||
410 | ret = setsockopt(b->num, | - | ||||||||||||||||||||||||
411 | IPPROTO_IPV6 | - | ||||||||||||||||||||||||
412 | , | - | ||||||||||||||||||||||||
413 | - | |||||||||||||||||||||||||
414 | 23 | - | ||||||||||||||||||||||||
415 | , &sockopt_val, | - | ||||||||||||||||||||||||
416 | sizeof(sockopt_val)); | - | ||||||||||||||||||||||||
417 | if (ret < 0
| 0 | ||||||||||||||||||||||||
418 | perror("setsockopt"); never executed: perror("setsockopt"); | 0 | ||||||||||||||||||||||||
419 | break; never executed: break; | 0 | ||||||||||||||||||||||||
420 | - | |||||||||||||||||||||||||
421 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
422 | ret = -1; | - | ||||||||||||||||||||||||
423 | break; never executed: break; | 0 | ||||||||||||||||||||||||
424 | } | - | ||||||||||||||||||||||||
425 | - | |||||||||||||||||||||||||
426 | - | |||||||||||||||||||||||||
427 | - | |||||||||||||||||||||||||
428 | break; never executed: break; | 0 | ||||||||||||||||||||||||
429 | case never executed: 40:case 40: never executed: case 40: | 0 | ||||||||||||||||||||||||
430 | - | |||||||||||||||||||||||||
431 | addr_len = (socklen_t)sizeof(addr); | - | ||||||||||||||||||||||||
432 | memset((void *)&addr, 0, sizeof(addr)); | - | ||||||||||||||||||||||||
433 | if (getsockname(b->num, &addr.sa, &addr_len) < 0
| 0 | ||||||||||||||||||||||||
434 | ret = 0; | - | ||||||||||||||||||||||||
435 | break; never executed: break; | 0 | ||||||||||||||||||||||||
436 | } | - | ||||||||||||||||||||||||
437 | sockopt_len = sizeof(sockopt_val); | - | ||||||||||||||||||||||||
438 | switch (addr.sa.sa_family) { | - | ||||||||||||||||||||||||
439 | case never executed: case 2 : never executed: case 2 : | 0 | ||||||||||||||||||||||||
440 | 2 never executed: case 2 : | 0 | ||||||||||||||||||||||||
441 | : never executed: case 2 : | 0 | ||||||||||||||||||||||||
442 | ret = getsockopt(b->num, | - | ||||||||||||||||||||||||
443 | IPPROTO_IP | - | ||||||||||||||||||||||||
444 | , | - | ||||||||||||||||||||||||
445 | 14 | - | ||||||||||||||||||||||||
446 | , | - | ||||||||||||||||||||||||
447 | &sockopt_val, &sockopt_len); | - | ||||||||||||||||||||||||
448 | if (ret < 0
| 0 | ||||||||||||||||||||||||
449 | ret = 0; | - | ||||||||||||||||||||||||
450 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
451 | - | |||||||||||||||||||||||||
452 | - | |||||||||||||||||||||||||
453 | - | |||||||||||||||||||||||||
454 | data->mtu = sockopt_val - 8 - 20; | - | ||||||||||||||||||||||||
455 | ret = data->mtu; | - | ||||||||||||||||||||||||
456 | } never executed: end of block | 0 | ||||||||||||||||||||||||
457 | break; never executed: break; | 0 | ||||||||||||||||||||||||
458 | - | |||||||||||||||||||||||||
459 | case never executed: case 10 : never executed: case 10 : | 0 | ||||||||||||||||||||||||
460 | 10 never executed: case 10 : | 0 | ||||||||||||||||||||||||
461 | : never executed: case 10 : | 0 | ||||||||||||||||||||||||
462 | ret = getsockopt(b->num, | - | ||||||||||||||||||||||||
463 | IPPROTO_IPV6 | - | ||||||||||||||||||||||||
464 | , | - | ||||||||||||||||||||||||
465 | 24 | - | ||||||||||||||||||||||||
466 | , | - | ||||||||||||||||||||||||
467 | &sockopt_val, &sockopt_len); | - | ||||||||||||||||||||||||
468 | if (ret < 0
| 0 | ||||||||||||||||||||||||
469 | ret = 0; | - | ||||||||||||||||||||||||
470 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
471 | - | |||||||||||||||||||||||||
472 | - | |||||||||||||||||||||||||
473 | - | |||||||||||||||||||||||||
474 | data->mtu = sockopt_val - 8 - 40; | - | ||||||||||||||||||||||||
475 | ret = data->mtu; | - | ||||||||||||||||||||||||
476 | } never executed: end of block | 0 | ||||||||||||||||||||||||
477 | break; never executed: break; | 0 | ||||||||||||||||||||||||
478 | - | |||||||||||||||||||||||||
479 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
480 | ret = 0; | - | ||||||||||||||||||||||||
481 | break; never executed: break; | 0 | ||||||||||||||||||||||||
482 | } | - | ||||||||||||||||||||||||
483 | - | |||||||||||||||||||||||||
484 | - | |||||||||||||||||||||||||
485 | - | |||||||||||||||||||||||||
486 | break; never executed: break; | 0 | ||||||||||||||||||||||||
487 | case never executed: 47:case 47: never executed: case 47: | 0 | ||||||||||||||||||||||||
488 | switch (data->peer.sa.sa_family) { | - | ||||||||||||||||||||||||
489 | case never executed: case 2 : never executed: case 2 : | 0 | ||||||||||||||||||||||||
490 | 2 never executed: case 2 : | 0 | ||||||||||||||||||||||||
491 | : never executed: case 2 : | 0 | ||||||||||||||||||||||||
492 | ret = 576 - 20 - 8; | - | ||||||||||||||||||||||||
493 | break; never executed: break; | 0 | ||||||||||||||||||||||||
494 | case never executed: case 10 : never executed: case 10 : | 0 | ||||||||||||||||||||||||
495 | 10 never executed: case 10 : | 0 | ||||||||||||||||||||||||
496 | : never executed: case 10 : | 0 | ||||||||||||||||||||||||
497 | - | |||||||||||||||||||||||||
498 | if ( | - | ||||||||||||||||||||||||
499 | (
| 0 | ||||||||||||||||||||||||
500 | &data->peer.sa_in6.sin6_addr
| 0 | ||||||||||||||||||||||||
501 | ); __a->__in6_u.__u6_addr32[0] == 0 && __a->__in6_u.__u6_addr32[1] == 0 && __a->__in6_u.__u6_addr32[2] == __bswap_32 (0xffff); }))
| 0 | ||||||||||||||||||||||||
502 | ) | - | ||||||||||||||||||||||||
503 | ret = 576 - 20 - 8; never executed: ret = 576 - 20 - 8; | 0 | ||||||||||||||||||||||||
504 | else | - | ||||||||||||||||||||||||
505 | - | |||||||||||||||||||||||||
506 | ret = 1280 - 40 - 8; never executed: ret = 1280 - 40 - 8; | 0 | ||||||||||||||||||||||||
507 | break; never executed: break; | 0 | ||||||||||||||||||||||||
508 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
509 | ret = 576 - 20 - 8; | - | ||||||||||||||||||||||||
510 | break; never executed: break; | 0 | ||||||||||||||||||||||||
511 | } | - | ||||||||||||||||||||||||
512 | break; never executed: break; | 0 | ||||||||||||||||||||||||
513 | case never executed: 41:case 41: never executed: case 41: | 0 | ||||||||||||||||||||||||
514 | return never executed: data->mtu;return data->mtu; never executed: return data->mtu; | 0 | ||||||||||||||||||||||||
515 | break; dead code: break; | - | ||||||||||||||||||||||||
516 | case never executed: 42:case 42: never executed: case 42: | 0 | ||||||||||||||||||||||||
517 | data->mtu = num; | - | ||||||||||||||||||||||||
518 | ret = num; | - | ||||||||||||||||||||||||
519 | break; never executed: break; | 0 | ||||||||||||||||||||||||
520 | case never executed: 32:case 32: never executed: case 32: | 0 | ||||||||||||||||||||||||
521 | to = (struct sockaddr *)ptr; | - | ||||||||||||||||||||||||
522 | - | |||||||||||||||||||||||||
523 | if (to !=
| 0 | ||||||||||||||||||||||||
524 | ((void *)0)
| 0 | ||||||||||||||||||||||||
525 | ) { | - | ||||||||||||||||||||||||
526 | data->connected = 1; | - | ||||||||||||||||||||||||
527 | switch (to->sa_family) { | - | ||||||||||||||||||||||||
528 | case never executed: case 2 : never executed: case 2 : | 0 | ||||||||||||||||||||||||
529 | 2 never executed: case 2 : | 0 | ||||||||||||||||||||||||
530 | : never executed: case 2 : | 0 | ||||||||||||||||||||||||
531 | memcpy(&data->peer, to, sizeof(data->peer.sa_in)); | - | ||||||||||||||||||||||||
532 | break; never executed: break; | 0 | ||||||||||||||||||||||||
533 | case never executed: case 10 : never executed: case 10 : | 0 | ||||||||||||||||||||||||
534 | 10 never executed: case 10 : | 0 | ||||||||||||||||||||||||
535 | : never executed: case 10 : | 0 | ||||||||||||||||||||||||
536 | memcpy(&data->peer, to, sizeof(data->peer.sa_in6)); | - | ||||||||||||||||||||||||
537 | break; never executed: break; | 0 | ||||||||||||||||||||||||
538 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
539 | memcpy(&data->peer, to, sizeof(data->peer.sa)); | - | ||||||||||||||||||||||||
540 | break; never executed: break; | 0 | ||||||||||||||||||||||||
541 | } | - | ||||||||||||||||||||||||
542 | } else { | - | ||||||||||||||||||||||||
543 | data->connected = 0; | - | ||||||||||||||||||||||||
544 | memset(&(data->peer), 0, sizeof(data->peer)); | - | ||||||||||||||||||||||||
545 | } never executed: end of block | 0 | ||||||||||||||||||||||||
546 | break; never executed: break; | 0 | ||||||||||||||||||||||||
547 | case never executed: 46:case 46: never executed: case 46: | 0 | ||||||||||||||||||||||||
548 | switch (data->peer.sa.sa_family) { | - | ||||||||||||||||||||||||
549 | case never executed: case 2 : never executed: case 2 : | 0 | ||||||||||||||||||||||||
550 | 2 never executed: case 2 : | 0 | ||||||||||||||||||||||||
551 | : never executed: case 2 : | 0 | ||||||||||||||||||||||||
552 | ret = sizeof(data->peer.sa_in); | - | ||||||||||||||||||||||||
553 | break; never executed: break; | 0 | ||||||||||||||||||||||||
554 | case never executed: case 10 : never executed: case 10 : | 0 | ||||||||||||||||||||||||
555 | 10 never executed: case 10 : | 0 | ||||||||||||||||||||||||
556 | : never executed: case 10 : | 0 | ||||||||||||||||||||||||
557 | ret = sizeof(data->peer.sa_in6); | - | ||||||||||||||||||||||||
558 | break; never executed: break; | 0 | ||||||||||||||||||||||||
559 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
560 | ret = sizeof(data->peer.sa); | - | ||||||||||||||||||||||||
561 | break; never executed: break; | 0 | ||||||||||||||||||||||||
562 | } | - | ||||||||||||||||||||||||
563 | if (num == 0
| 0 | ||||||||||||||||||||||||
564 | num = ret; never executed: num = ret; | 0 | ||||||||||||||||||||||||
565 | memcpy(ptr, &data->peer, (ret = num)); | - | ||||||||||||||||||||||||
566 | break; never executed: break; | 0 | ||||||||||||||||||||||||
567 | case never executed: 44:case 44: never executed: case 44: | 0 | ||||||||||||||||||||||||
568 | to = (struct sockaddr *) ptr; | - | ||||||||||||||||||||||||
569 | switch (to->sa_family) { | - | ||||||||||||||||||||||||
570 | case never executed: case 2 : never executed: case 2 : | 0 | ||||||||||||||||||||||||
571 | 2 never executed: case 2 : | 0 | ||||||||||||||||||||||||
572 | : never executed: case 2 : | 0 | ||||||||||||||||||||||||
573 | memcpy(&data->peer, to, sizeof(data->peer.sa_in)); | - | ||||||||||||||||||||||||
574 | break; never executed: break; | 0 | ||||||||||||||||||||||||
575 | case never executed: case 10 : never executed: case 10 : | 0 | ||||||||||||||||||||||||
576 | 10 never executed: case 10 : | 0 | ||||||||||||||||||||||||
577 | : never executed: case 10 : | 0 | ||||||||||||||||||||||||
578 | memcpy(&data->peer, to, sizeof(data->peer.sa_in6)); | - | ||||||||||||||||||||||||
579 | break; never executed: break; | 0 | ||||||||||||||||||||||||
580 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
581 | memcpy(&data->peer, to, sizeof(data->peer.sa)); | - | ||||||||||||||||||||||||
582 | break; never executed: break; | 0 | ||||||||||||||||||||||||
583 | } | - | ||||||||||||||||||||||||
584 | break; never executed: break; | 0 | ||||||||||||||||||||||||
585 | case never executed: 45:case 45: never executed: case 45: | 0 | ||||||||||||||||||||||||
586 | memcpy(&(data->next_timeout), ptr, sizeof(struct timeval)); | - | ||||||||||||||||||||||||
587 | break; never executed: break; | 0 | ||||||||||||||||||||||||
588 | - | |||||||||||||||||||||||||
589 | case never executed: 33:case 33: never executed: case 33: | 0 | ||||||||||||||||||||||||
590 | if (setsockopt(b->num,
| 0 | ||||||||||||||||||||||||
591 | 1
| 0 | ||||||||||||||||||||||||
592 | ,
| 0 | ||||||||||||||||||||||||
593 | 20
| 0 | ||||||||||||||||||||||||
594 | , ptr,
| 0 | ||||||||||||||||||||||||
595 | sizeof(struct timeval)) < 0
| 0 | ||||||||||||||||||||||||
596 | perror("setsockopt"); | - | ||||||||||||||||||||||||
597 | ret = -1; | - | ||||||||||||||||||||||||
598 | } never executed: end of block | 0 | ||||||||||||||||||||||||
599 | break; never executed: break; | 0 | ||||||||||||||||||||||||
600 | case never executed: 34:case 34: never executed: case 34: | 0 | ||||||||||||||||||||||||
601 | { | - | ||||||||||||||||||||||||
602 | socklen_t sz = sizeof(struct timeval); | - | ||||||||||||||||||||||||
603 | if (getsockopt(b->num,
| 0 | ||||||||||||||||||||||||
604 | 1
| 0 | ||||||||||||||||||||||||
605 | ,
| 0 | ||||||||||||||||||||||||
606 | 20
| 0 | ||||||||||||||||||||||||
607 | ,
| 0 | ||||||||||||||||||||||||
608 | ptr, &sz) < 0
| 0 | ||||||||||||||||||||||||
609 | perror("getsockopt"); | - | ||||||||||||||||||||||||
610 | ret = -1; | - | ||||||||||||||||||||||||
611 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
612 | ret = sz; never executed: ret = sz; | 0 | ||||||||||||||||||||||||
613 | } | - | ||||||||||||||||||||||||
614 | break; never executed: break; | 0 | ||||||||||||||||||||||||
615 | - | |||||||||||||||||||||||||
616 | - | |||||||||||||||||||||||||
617 | case never executed: 35:case 35: never executed: case 35: | 0 | ||||||||||||||||||||||||
618 | if (setsockopt(b->num,
| 0 | ||||||||||||||||||||||||
619 | 1
| 0 | ||||||||||||||||||||||||
620 | ,
| 0 | ||||||||||||||||||||||||
621 | 21
| 0 | ||||||||||||||||||||||||
622 | , ptr,
| 0 | ||||||||||||||||||||||||
623 | sizeof(struct timeval)) < 0
| 0 | ||||||||||||||||||||||||
624 | perror("setsockopt"); | - | ||||||||||||||||||||||||
625 | ret = -1; | - | ||||||||||||||||||||||||
626 | } never executed: end of block | 0 | ||||||||||||||||||||||||
627 | break; never executed: break; | 0 | ||||||||||||||||||||||||
628 | case never executed: 36:case 36: never executed: case 36: | 0 | ||||||||||||||||||||||||
629 | { | - | ||||||||||||||||||||||||
630 | socklen_t sz = sizeof(struct timeval); | - | ||||||||||||||||||||||||
631 | if (getsockopt(b->num,
| 0 | ||||||||||||||||||||||||
632 | 1
| 0 | ||||||||||||||||||||||||
633 | ,
| 0 | ||||||||||||||||||||||||
634 | 21
| 0 | ||||||||||||||||||||||||
635 | ,
| 0 | ||||||||||||||||||||||||
636 | ptr, &sz) < 0
| 0 | ||||||||||||||||||||||||
637 | perror("getsockopt"); | - | ||||||||||||||||||||||||
638 | ret = -1; | - | ||||||||||||||||||||||||
639 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
640 | ret = sz; never executed: ret = sz; | 0 | ||||||||||||||||||||||||
641 | } | - | ||||||||||||||||||||||||
642 | break; never executed: break; | 0 | ||||||||||||||||||||||||
643 | - | |||||||||||||||||||||||||
644 | case never executed: 38:case 38: never executed: case 38: | 0 | ||||||||||||||||||||||||
645 | - | |||||||||||||||||||||||||
646 | case never executed: 37:case 37: never executed: case 37: | 0 | ||||||||||||||||||||||||
647 | if (data->_errno ==
| 0 | ||||||||||||||||||||||||
648 | 11
| 0 | ||||||||||||||||||||||||
649 | ) { | - | ||||||||||||||||||||||||
650 | ret = 1; | - | ||||||||||||||||||||||||
651 | data->_errno = 0; | - | ||||||||||||||||||||||||
652 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
653 | ret = 0; never executed: ret = 0; | 0 | ||||||||||||||||||||||||
654 | break; never executed: break; | 0 | ||||||||||||||||||||||||
655 | - | |||||||||||||||||||||||||
656 | case never executed: 43:case 43: never executed: case 43: | 0 | ||||||||||||||||||||||||
657 | if (data->_errno ==
| 0 | ||||||||||||||||||||||||
658 | 90
| 0 | ||||||||||||||||||||||||
659 | ) { | - | ||||||||||||||||||||||||
660 | ret = 1; | - | ||||||||||||||||||||||||
661 | data->_errno = 0; | - | ||||||||||||||||||||||||
662 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
663 | ret = 0; never executed: ret = 0; | 0 | ||||||||||||||||||||||||
664 | break; never executed: break; | 0 | ||||||||||||||||||||||||
665 | - | |||||||||||||||||||||||||
666 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
667 | ret = 0; | - | ||||||||||||||||||||||||
668 | break; never executed: break; | 0 | ||||||||||||||||||||||||
669 | } | - | ||||||||||||||||||||||||
670 | return never executed: (ret);return (ret); never executed: return (ret); | 0 | ||||||||||||||||||||||||
671 | } | - | ||||||||||||||||||||||||
672 | - | |||||||||||||||||||||||||
673 | static int | - | ||||||||||||||||||||||||
674 | dgram_puts(BIO *bp, const char *str) | - | ||||||||||||||||||||||||
675 | { | - | ||||||||||||||||||||||||
676 | int n, ret; | - | ||||||||||||||||||||||||
677 | - | |||||||||||||||||||||||||
678 | n = strlen(str); | - | ||||||||||||||||||||||||
679 | ret = dgram_write(bp, str, n); | - | ||||||||||||||||||||||||
680 | return never executed: (ret);return (ret); never executed: return (ret); | 0 | ||||||||||||||||||||||||
681 | } | - | ||||||||||||||||||||||||
682 | - | |||||||||||||||||||||||||
683 | - | |||||||||||||||||||||||||
684 | static int | - | ||||||||||||||||||||||||
685 | BIO_dgram_should_retry(int i) | - | ||||||||||||||||||||||||
686 | { | - | ||||||||||||||||||||||||
687 | int err; | - | ||||||||||||||||||||||||
688 | - | |||||||||||||||||||||||||
689 | if ((
| 0 | ||||||||||||||||||||||||
690 | err = | - | ||||||||||||||||||||||||
691 | (*__errno_location ()) | - | ||||||||||||||||||||||||
692 | ; | - | ||||||||||||||||||||||||
693 | return never executed: (BIO_dgram_non_fatal_error(err));return (BIO_dgram_non_fatal_error(err)); never executed: return (BIO_dgram_non_fatal_error(err)); | 0 | ||||||||||||||||||||||||
694 | } | - | ||||||||||||||||||||||||
695 | return never executed: (0);return (0); never executed: return (0); | 0 | ||||||||||||||||||||||||
696 | } | - | ||||||||||||||||||||||||
697 | - | |||||||||||||||||||||||||
698 | int | - | ||||||||||||||||||||||||
699 | BIO_dgram_non_fatal_error(int err) | - | ||||||||||||||||||||||||
700 | { | - | ||||||||||||||||||||||||
701 | switch (err) { | - | ||||||||||||||||||||||||
702 | case never executed: case 4 : never executed: case 4 : | 0 | ||||||||||||||||||||||||
703 | 4 never executed: case 4 : | 0 | ||||||||||||||||||||||||
704 | : never executed: case 4 : | 0 | ||||||||||||||||||||||||
705 | case never executed: case 11 : never executed: case 11 : | 0 | ||||||||||||||||||||||||
706 | 11 never executed: case 11 : | 0 | ||||||||||||||||||||||||
707 | : never executed: case 11 : | 0 | ||||||||||||||||||||||||
708 | case never executed: case 115 : never executed: case 115 : | 0 | ||||||||||||||||||||||||
709 | 115 never executed: case 115 : | 0 | ||||||||||||||||||||||||
710 | : never executed: case 115 : | 0 | ||||||||||||||||||||||||
711 | case never executed: case 114 : never executed: case 114 : | 0 | ||||||||||||||||||||||||
712 | 114 never executed: case 114 : | 0 | ||||||||||||||||||||||||
713 | : never executed: case 114 : | 0 | ||||||||||||||||||||||||
714 | return never executed: (1);return (1); never executed: return (1); | 0 | ||||||||||||||||||||||||
715 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
716 | break; never executed: break; | 0 | ||||||||||||||||||||||||
717 | } | - | ||||||||||||||||||||||||
718 | return never executed: (0);return (0); never executed: return (0); | 0 | ||||||||||||||||||||||||
719 | } | - | ||||||||||||||||||||||||
Switch to Source code | Preprocessed file |