Coverage Report

Created: 2024-02-25 06:34

/src/kamailio/src/core/ip_addr.h
Line
Count
Source (jump to first uncovered line)
1
/**
2
 * ip address family related structures
3
 *
4
 * Copyright (C) 2001-2003 FhG Fokus
5
 *
6
 * This file is part of Kamailio, a free SIP server.
7
 *
8
 * Kamailio is free software; you can redistribute it and/or modify
9
 * it under the terms of the GNU General Public License as published by
10
 * the Free Software Foundation; either version 2 of the License, or
11
 * (at your option) any later version
12
 *
13
 * Kamailio is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program; if not, write to the Free Software
20
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
21
 */
22
/*!
23
 * \file
24
 * \brief Kamailio core :: ip address family related structures
25
 * \ingroup core
26
 * Module: \ref core
27
 */
28
29
#ifndef ip_addr_h
30
#define ip_addr_h
31
32
#include <string.h>
33
#include <sys/types.h>
34
#include <sys/socket.h>
35
#include <netinet/in.h>
36
#include <netdb.h>
37
#include "str.h"
38
#include "compiler_opt.h"
39
#include "ut.h"
40
41
42
#include "dprint.h"
43
44
extern str ksr_ipv6_hex_style;
45
46
typedef enum sip_protos
47
{
48
  PROTO_NONE,
49
  PROTO_UDP,
50
  PROTO_TCP,
51
  PROTO_TLS,
52
  PROTO_SCTP,
53
  PROTO_WS,
54
  PROTO_WSS,
55
  PROTO_OTHER
56
} sip_protos_t;
57
0
#define PROTO_LAST PROTO_OTHER
58
59
#ifdef USE_COMP
60
typedef enum comp_methods
61
{
62
  COMP_NONE,
63
  COMP_SIGCOMP,
64
  COMP_SERGZ
65
} comp_methods_t;
66
#endif
67
68
typedef struct ip_addr
69
{
70
  unsigned int af;  /* address family: AF_INET6 or AF_INET */
71
  unsigned int len; /* address len, 16 or 4 */
72
73
  /* 64 bits aligned address */
74
  union
75
  {
76
    unsigned long addrl[16 / sizeof(long)]; /* long format*/
77
    unsigned int addr32[4];
78
    unsigned short addr16[8];
79
    unsigned char addr[16];
80
  } u;
81
} ip_addr_t;
82
83
typedef struct net
84
{
85
  struct ip_addr ip;
86
  struct ip_addr mask;
87
} sr_net_t;
88
89
typedef union sockaddr_union
90
{
91
  struct sockaddr s;
92
  struct sockaddr_in sin;
93
  struct sockaddr_in6 sin6;
94
  struct sockaddr_storage sas;
95
} sr_sockaddr_union_t;
96
97
98
typedef enum si_flags
99
{
100
  SI_NONE = 0,
101
  SI_IS_IP = (1 << 0),
102
  SI_IS_LO = (1 << 1),
103
  SI_IS_MCAST = (1 << 2),
104
  SI_IS_ANY = (1 << 3),
105
  SI_IS_MHOMED = (1 << 4),
106
  SI_IS_VIRTUAL = (1 << 5),
107
} si_flags_t;
108
109
typedef struct addr_info
110
{
111
  str name;       /* name - eg.: foo.bar or 10.0.0.1 */
112
  struct ip_addr address; /*ip address */
113
  str address_str;    /*ip address converted to string -- optimization*/
114
  enum si_flags flags;  /* SI_IS_IP | SI_IS_LO | SI_IS_MCAST */
115
  union sockaddr_union su;
116
  struct addr_info *next;
117
  struct addr_info *prev;
118
} addr_info_t;
119
120
121
typedef struct advertise_info
122
{
123
  str name;       /* name - eg.: foo.bar or 10.0.0.1 */
124
  int proto;        /* protocol id */
125
  int af;         /* address family based on [  ] around name */
126
  unsigned short port_no; /* port number */
127
  short port_pad;     /* padding field */
128
  str port_no_str;    /* port number converted to string -- optimization*/
129
  str address_str;    /* ip address converted to string -- optimization*/
130
  struct ip_addr address; /* ip address */
131
  str sock_str;     /* Socket proto, ip, and port as string */
132
} advertise_info_t;
133
134
typedef struct socket_info
135
{
136
  int socket;
137
  int gindex;       /* global index in the lists of all sockets */
138
  str name;       /* name - eg.: foo.bar or 10.0.0.1 */
139
  struct ip_addr address; /* ip address */
140
  str address_str;    /*ip address converted to string -- optimization*/
141
  str port_no_str;    /* port number converted to string -- optimization*/
142
  enum si_flags flags;  /* SI_IS_IP | SI_IS_LO | SI_IS_MCAST */
143
  union sockaddr_union su;
144
  struct socket_info *next;
145
  struct socket_info *prev;
146
  unsigned short port_no;      /* port number */
147
  char proto;            /* tcp or udp*/
148
  char proto_pad0;         /* padding field */
149
  short proto_pad1;        /* padding field */
150
  str sock_str;          /* Socket proto, ip, and port as string */
151
  struct addr_info *addr_info_lst; /* extra addresses (e.g. SCTP mh) */
152
  int workers;    /* number of worker processes for this socket */
153
  int workers_tcpidx; /* index of workers in tcp children array */
154
  str sockname;   /* socket name given in config listen value */
155
  struct advertise_info useinfo; /* details to be used in SIP msg */
156
#ifdef USE_MCAST
157
  str mcast; /* name of interface that should join multicast group*/
158
#endif       /* USE_MCAST */
159
} socket_info_t;
160
161
typedef struct socket_attrs
162
{
163
  int bindproto;
164
  str bindaddr;
165
  int bindport;
166
  int useproto;
167
  str useaddr;
168
  int useport;
169
  str sockname;
170
  int workers;
171
  int sflags;
172
} socket_attrs_t;
173
174
/* send flags */
175
typedef enum send_flags
176
{
177
  SND_F_FORCE_CON_REUSE = (1 << 0), /* reuse an existing connection or fail */
178
  SND_F_CON_CLOSE = (1 << 1),     /* close the connection after sending */
179
  SND_F_FORCE_SOCKET = (1 << 2),    /* send socket in dst is forced */
180
} send_flags_t;
181
182
typedef struct snd_flags
183
{
184
  unsigned short f;      /* snd flags */
185
  unsigned short blst_imask; /* blocklist ignore mask */
186
} snd_flags_t;
187
188
/* recv flags */
189
typedef enum recv_flags
190
{
191
  RECV_F_INTERNAL = (1 << 0),   /* message dispatched internally */
192
  RECV_F_PREROUTING = (1 << 1), /* message in pre-routing */
193
} recv_flags_t;
194
195
typedef struct receive_info
196
{
197
  struct ip_addr src_ip;
198
  struct ip_addr dst_ip;
199
  unsigned short src_port; /* host byte order */
200
  unsigned short dst_port; /* host byte order */
201
  int proto_reserved1;   /* tcp stores the connection id here */
202
  int proto_reserved2;
203
  union sockaddr_union src_su;    /* useful for replies*/
204
  struct socket_info *bind_address; /* sock_info structure on which
205
                    * the msg was received */
206
  recv_flags_t rflags;        /* flags */
207
  char proto;
208
#ifdef USE_COMP
209
  char proto_pad0; /* padding field */
210
  short comp;    /* compression */
211
#else
212
  char proto_pad0;  /* padding field */
213
  short proto_pad1; /* padding field */
214
#endif
215
  /* no need for dst_su yet */
216
} receive_info_t;
217
218
219
typedef struct dest_info
220
{
221
  struct socket_info *send_sock;
222
  union sockaddr_union to;
223
  int id; /* tcp stores the connection id here */
224
  snd_flags_t send_flags;
225
  char proto;
226
#ifdef USE_COMP
227
  char proto_pad0; /* padding field */
228
  short comp;
229
#else
230
  char proto_pad0;  /* padding field */
231
  short proto_pad1; /* padding field */
232
#endif
233
} dest_info_t;
234
235
236
typedef struct ksr_coninfo
237
{
238
  ip_addr_t src_ip;
239
  ip_addr_t dst_ip;
240
  unsigned short src_port; /* host byte order */
241
  unsigned short dst_port; /* host byte order */
242
  int proto;
243
  socket_info_t *csocket;
244
} ksr_coninfo_t;
245
246
typedef struct sr_net_info
247
{
248
  str data;
249
  unsigned int bufsize;
250
  receive_info_t *rcv;
251
  dest_info_t *dst;
252
} sr_net_info_t;
253
254
sr_net_info_t *ksr_evrt_rcvnetinfo_get(void);
255
256
#define SND_FLAGS_INIT(sflags)    \
257
  do {                          \
258
    (sflags)->f = 0;          \
259
    (sflags)->blst_imask = 0; \
260
  } while(0)
261
262
263
#define SND_FLAGS_OR(dst, src1, src2)                                \
264
0
  do {                                                             \
265
0
    (dst)->f = (src1)->f | (src2)->f;                            \
266
0
    (dst)->blst_imask = (src1)->blst_imask | (src2)->blst_imask; \
267
0
  } while(0)
268
269
270
#define SND_FLAGS_AND(dst, src1, src2)                               \
271
  do {                                                             \
272
    (dst)->f = (src1)->f & (src2)->f;                            \
273
    (dst)->blst_imask = (src1)->blst_imask & (src2)->blst_imask; \
274
  } while(0)
275
276
277
/* list of names for multi-homed sockets that need to bind on
278
 * multiple addresses in the same time (sctp ) */
279
typedef struct name_lst
280
{
281
  char *name;
282
  struct name_lst *next;
283
  int flags;
284
} name_lst_t;
285
286
287
typedef struct socket_id
288
{
289
  struct name_lst *addr_lst; /* address list, the first one must
290
                * be present and is the main one
291
                * (in case of multihoming sctp) */
292
  int flags;
293
  int proto;
294
  int port;
295
  struct socket_id *next;
296
} socket_id_t;
297
298
299
/* len of the sockaddr */
300
#ifdef HAVE_SOCKADDR_SA_LEN
301
#define sockaddru_len(su) ((su).s.sa_len)
302
#else
303
#define sockaddru_len(su)                                         \
304
0
  (((su).s.sa_family == AF_INET6) ? sizeof(struct sockaddr_in6) \
305
0
                  : sizeof(struct sockaddr_in))
306
#endif /* HAVE_SOCKADDR_SA_LEN*/
307
308
/* inits an ip_addr with the addr. info from a hostent structure
309
 * ip = struct ip_addr*
310
 * he= struct hostent*
311
 */
312
#define hostent2ip_addr(ip, he, addr_no)                               \
313
0
  do {                                                               \
314
0
    (ip)->af = (he)->h_addrtype;                                   \
315
0
    (ip)->len = (he)->h_length;                                    \
316
0
    memcpy((ip)->u.addr, (he)->h_addr_list[(addr_no)], (ip)->len); \
317
0
  } while(0)
318
319
320
/* gets the protocol family corresponding to a specific address family
321
 * ( PF_INET - AF_INET, PF_INET6 - AF_INET6, af for others)
322
 */
323
#define AF2PF(af) \
324
0
  (((af) == AF_INET) ? PF_INET : ((af) == AF_INET6) ? PF_INET6 : (af))
325
326
327
struct net *mk_new_net(struct ip_addr *ip, struct ip_addr *mask);
328
struct net *mk_new_net_bitlen(struct ip_addr *ip, unsigned int bitlen);
329
int mk_net(struct net *n, struct ip_addr *ip, struct ip_addr *mask);
330
int mk_net_bitlen(struct net *n, struct ip_addr *ip, unsigned int bitlen);
331
int mk_net_str(struct net *dst, str *s);
332
333
void print_ip(char *prefix, struct ip_addr *ip, char *suffix);
334
void stdout_print_ip(struct ip_addr *ip);
335
void print_net(struct net *net);
336
337
char *get_proto_name(unsigned int proto);
338
0
#define proto2a get_proto_name
339
340
int get_valid_proto_string(
341
    unsigned int iproto, int utype, int vtype, str *sproto);
342
int get_valid_proto_id(str *protoval);
343
344
char *get_af_name(unsigned int af);
345
346
#ifdef USE_MCAST
347
/* Returns 1 if the given address is a multicast address */
348
int is_mcast(struct ip_addr *ip);
349
#endif /* USE_MCAST */
350
351
/* returns 1 if the given ip address is INADDR_ANY or IN6ADDR_ANY,
352
 * 0 otherwise */
353
inline static int ip_addr_any(const struct ip_addr *ip)
354
0
{
355
0
  int r;
356
0
  int l;
357
358
0
  l = ip->len / 4;
359
0
  for(r = 0; r < l; r++)
360
0
    if(ip->u.addr32[r] != 0)
361
0
      return 0;
362
0
  return 1;
363
0
}
Unexecuted instantiation: fuzz_parse_msg.c:ip_addr_any
Unexecuted instantiation: dprint.c:ip_addr_any
Unexecuted instantiation: error.c:ip_addr_any
Unexecuted instantiation: main.c:ip_addr_any
Unexecuted instantiation: modparam.c:ip_addr_any
Unexecuted instantiation: msg_parser.c:ip_addr_any
Unexecuted instantiation: nonsip_hooks.c:ip_addr_any
Unexecuted instantiation: parse_addr_spec.c:ip_addr_any
Unexecuted instantiation: parse_contact.c:ip_addr_any
Unexecuted instantiation: parse_content.c:ip_addr_any
Unexecuted instantiation: parse_cseq.c:ip_addr_any
Unexecuted instantiation: parse_disposition.c:ip_addr_any
Unexecuted instantiation: parse_diversion.c:ip_addr_any
Unexecuted instantiation: parse_fline.c:ip_addr_any
Unexecuted instantiation: parse_from.c:ip_addr_any
Unexecuted instantiation: parse_identityinfo.c:ip_addr_any
Unexecuted instantiation: parse_methods.c:ip_addr_any
Unexecuted instantiation: parse_ppi_pai.c:ip_addr_any
Unexecuted instantiation: parse_privacy.c:ip_addr_any
Unexecuted instantiation: parse_refer_to.c:ip_addr_any
Unexecuted instantiation: parse_rr.c:ip_addr_any
Unexecuted instantiation: parse_to.c:ip_addr_any
Unexecuted instantiation: parse_via.c:ip_addr_any
Unexecuted instantiation: ppcfg.c:ip_addr_any
Unexecuted instantiation: pt.c:ip_addr_any
Unexecuted instantiation: pv_core.c:ip_addr_any
Unexecuted instantiation: pvapi.c:ip_addr_any
Unexecuted instantiation: q_malloc.c:ip_addr_any
Unexecuted instantiation: raw_sock.c:ip_addr_any
Unexecuted instantiation: re.c:ip_addr_any
Unexecuted instantiation: receive.c:ip_addr_any
Unexecuted instantiation: resolve.c:ip_addr_any
Unexecuted instantiation: route.c:ip_addr_any
Unexecuted instantiation: route_struct.c:ip_addr_any
Unexecuted instantiation: rvalue.c:ip_addr_any
Unexecuted instantiation: script_cb.c:ip_addr_any
Unexecuted instantiation: sctp_core.c:ip_addr_any
Unexecuted instantiation: sdp.c:ip_addr_any
Unexecuted instantiation: sdp_helpr_funcs.c:ip_addr_any
Unexecuted instantiation: select.c:ip_addr_any
Unexecuted instantiation: select_core.c:ip_addr_any
Unexecuted instantiation: shm.c:ip_addr_any
Unexecuted instantiation: shm_init.c:ip_addr_any
Unexecuted instantiation: socket_info.c:ip_addr_any
Unexecuted instantiation: sr_module.c:ip_addr_any
Unexecuted instantiation: srapi.c:ip_addr_any
Unexecuted instantiation: strutils.c:ip_addr_any
Unexecuted instantiation: switch.c:ip_addr_any
Unexecuted instantiation: tcp_main.c:ip_addr_any
Unexecuted instantiation: tcp_options.c:ip_addr_any
Unexecuted instantiation: tcp_read.c:ip_addr_any
Unexecuted instantiation: tcp_stats.c:ip_addr_any
Unexecuted instantiation: timer.c:ip_addr_any
Unexecuted instantiation: timer_proc.c:ip_addr_any
Unexecuted instantiation: tls_hooks.c:ip_addr_any
Unexecuted instantiation: tlsf_malloc.c:ip_addr_any
Unexecuted instantiation: udp_server.c:ip_addr_any
Unexecuted instantiation: usr_avp.c:ip_addr_any
Unexecuted instantiation: ut.c:ip_addr_any
Unexecuted instantiation: action.c:ip_addr_any
Unexecuted instantiation: async_task.c:ip_addr_any
Unexecuted instantiation: cfg.tab.c:ip_addr_any
Unexecuted instantiation: cfg_core.c:ip_addr_any
Unexecuted instantiation: cfg_select.c:ip_addr_any
Unexecuted instantiation: cfg_struct.c:ip_addr_any
Unexecuted instantiation: core_cmd.c:ip_addr_any
Unexecuted instantiation: counters.c:ip_addr_any
Unexecuted instantiation: daemonize.c:ip_addr_any
Unexecuted instantiation: data_lump.c:ip_addr_any
Unexecuted instantiation: data_lump_rpl.c:ip_addr_any
Unexecuted instantiation: digest.c:ip_addr_any
Unexecuted instantiation: dns_cache.c:ip_addr_any
Unexecuted instantiation: dset.c:ip_addr_any
Unexecuted instantiation: dst_blocklist.c:ip_addr_any
Unexecuted instantiation: events.c:ip_addr_any
Unexecuted instantiation: f_malloc.c:ip_addr_any
Unexecuted instantiation: flags.c:ip_addr_any
Unexecuted instantiation: fmsg.c:ip_addr_any
Unexecuted instantiation: forward.c:ip_addr_any
Unexecuted instantiation: hf.c:ip_addr_any
Unexecuted instantiation: io_wait.c:ip_addr_any
Unexecuted instantiation: ip_addr.c:ip_addr_any
Unexecuted instantiation: kemi.c:ip_addr_any
Unexecuted instantiation: lex.yy.c:ip_addr_any
Unexecuted instantiation: local_timer.c:ip_addr_any
Unexecuted instantiation: lvalue.c:ip_addr_any
Unexecuted instantiation: mod_fix.c:ip_addr_any
Unexecuted instantiation: msg_translator.c:ip_addr_any
Unexecuted instantiation: onsend.c:ip_addr_any
Unexecuted instantiation: parse_allow.c:ip_addr_any
Unexecuted instantiation: parse_body.c:ip_addr_any
Unexecuted instantiation: parse_date.c:ip_addr_any
Unexecuted instantiation: parse_identity.c:ip_addr_any
Unexecuted instantiation: parse_rpid.c:ip_addr_any
Unexecuted instantiation: proxy.c:ip_addr_any
Unexecuted instantiation: stun.c:ip_addr_any
Unexecuted instantiation: fuzz_uri.c:ip_addr_any
364
365
366
/* returns 1 if the given ip address is a loopback address
367
 * 0 otherwise */
368
inline static int ip_addr_loopback(const struct ip_addr *ip)
369
0
{
370
0
  if(ip->af == AF_INET)
371
0
    return ip->u.addr32[0] == htonl(INADDR_LOOPBACK);
372
0
  else if(ip->af == AF_INET6)
373
0
    return IN6_IS_ADDR_LOOPBACK((struct in6_addr *)ip->u.addr32);
374
0
  return 0;
375
0
}
Unexecuted instantiation: fuzz_parse_msg.c:ip_addr_loopback
Unexecuted instantiation: dprint.c:ip_addr_loopback
Unexecuted instantiation: error.c:ip_addr_loopback
Unexecuted instantiation: main.c:ip_addr_loopback
Unexecuted instantiation: modparam.c:ip_addr_loopback
Unexecuted instantiation: msg_parser.c:ip_addr_loopback
Unexecuted instantiation: nonsip_hooks.c:ip_addr_loopback
Unexecuted instantiation: parse_addr_spec.c:ip_addr_loopback
Unexecuted instantiation: parse_contact.c:ip_addr_loopback
Unexecuted instantiation: parse_content.c:ip_addr_loopback
Unexecuted instantiation: parse_cseq.c:ip_addr_loopback
Unexecuted instantiation: parse_disposition.c:ip_addr_loopback
Unexecuted instantiation: parse_diversion.c:ip_addr_loopback
Unexecuted instantiation: parse_fline.c:ip_addr_loopback
Unexecuted instantiation: parse_from.c:ip_addr_loopback
Unexecuted instantiation: parse_identityinfo.c:ip_addr_loopback
Unexecuted instantiation: parse_methods.c:ip_addr_loopback
Unexecuted instantiation: parse_ppi_pai.c:ip_addr_loopback
Unexecuted instantiation: parse_privacy.c:ip_addr_loopback
Unexecuted instantiation: parse_refer_to.c:ip_addr_loopback
Unexecuted instantiation: parse_rr.c:ip_addr_loopback
Unexecuted instantiation: parse_to.c:ip_addr_loopback
Unexecuted instantiation: parse_via.c:ip_addr_loopback
Unexecuted instantiation: ppcfg.c:ip_addr_loopback
Unexecuted instantiation: pt.c:ip_addr_loopback
Unexecuted instantiation: pv_core.c:ip_addr_loopback
Unexecuted instantiation: pvapi.c:ip_addr_loopback
Unexecuted instantiation: q_malloc.c:ip_addr_loopback
Unexecuted instantiation: raw_sock.c:ip_addr_loopback
Unexecuted instantiation: re.c:ip_addr_loopback
Unexecuted instantiation: receive.c:ip_addr_loopback
Unexecuted instantiation: resolve.c:ip_addr_loopback
Unexecuted instantiation: route.c:ip_addr_loopback
Unexecuted instantiation: route_struct.c:ip_addr_loopback
Unexecuted instantiation: rvalue.c:ip_addr_loopback
Unexecuted instantiation: script_cb.c:ip_addr_loopback
Unexecuted instantiation: sctp_core.c:ip_addr_loopback
Unexecuted instantiation: sdp.c:ip_addr_loopback
Unexecuted instantiation: sdp_helpr_funcs.c:ip_addr_loopback
Unexecuted instantiation: select.c:ip_addr_loopback
Unexecuted instantiation: select_core.c:ip_addr_loopback
Unexecuted instantiation: shm.c:ip_addr_loopback
Unexecuted instantiation: shm_init.c:ip_addr_loopback
Unexecuted instantiation: socket_info.c:ip_addr_loopback
Unexecuted instantiation: sr_module.c:ip_addr_loopback
Unexecuted instantiation: srapi.c:ip_addr_loopback
Unexecuted instantiation: strutils.c:ip_addr_loopback
Unexecuted instantiation: switch.c:ip_addr_loopback
Unexecuted instantiation: tcp_main.c:ip_addr_loopback
Unexecuted instantiation: tcp_options.c:ip_addr_loopback
Unexecuted instantiation: tcp_read.c:ip_addr_loopback
Unexecuted instantiation: tcp_stats.c:ip_addr_loopback
Unexecuted instantiation: timer.c:ip_addr_loopback
Unexecuted instantiation: timer_proc.c:ip_addr_loopback
Unexecuted instantiation: tls_hooks.c:ip_addr_loopback
Unexecuted instantiation: tlsf_malloc.c:ip_addr_loopback
Unexecuted instantiation: udp_server.c:ip_addr_loopback
Unexecuted instantiation: usr_avp.c:ip_addr_loopback
Unexecuted instantiation: ut.c:ip_addr_loopback
Unexecuted instantiation: action.c:ip_addr_loopback
Unexecuted instantiation: async_task.c:ip_addr_loopback
Unexecuted instantiation: cfg.tab.c:ip_addr_loopback
Unexecuted instantiation: cfg_core.c:ip_addr_loopback
Unexecuted instantiation: cfg_select.c:ip_addr_loopback
Unexecuted instantiation: cfg_struct.c:ip_addr_loopback
Unexecuted instantiation: core_cmd.c:ip_addr_loopback
Unexecuted instantiation: counters.c:ip_addr_loopback
Unexecuted instantiation: daemonize.c:ip_addr_loopback
Unexecuted instantiation: data_lump.c:ip_addr_loopback
Unexecuted instantiation: data_lump_rpl.c:ip_addr_loopback
Unexecuted instantiation: digest.c:ip_addr_loopback
Unexecuted instantiation: dns_cache.c:ip_addr_loopback
Unexecuted instantiation: dset.c:ip_addr_loopback
Unexecuted instantiation: dst_blocklist.c:ip_addr_loopback
Unexecuted instantiation: events.c:ip_addr_loopback
Unexecuted instantiation: f_malloc.c:ip_addr_loopback
Unexecuted instantiation: flags.c:ip_addr_loopback
Unexecuted instantiation: fmsg.c:ip_addr_loopback
Unexecuted instantiation: forward.c:ip_addr_loopback
Unexecuted instantiation: hf.c:ip_addr_loopback
Unexecuted instantiation: io_wait.c:ip_addr_loopback
Unexecuted instantiation: ip_addr.c:ip_addr_loopback
Unexecuted instantiation: kemi.c:ip_addr_loopback
Unexecuted instantiation: lex.yy.c:ip_addr_loopback
Unexecuted instantiation: local_timer.c:ip_addr_loopback
Unexecuted instantiation: lvalue.c:ip_addr_loopback
Unexecuted instantiation: mod_fix.c:ip_addr_loopback
Unexecuted instantiation: msg_translator.c:ip_addr_loopback
Unexecuted instantiation: onsend.c:ip_addr_loopback
Unexecuted instantiation: parse_allow.c:ip_addr_loopback
Unexecuted instantiation: parse_body.c:ip_addr_loopback
Unexecuted instantiation: parse_date.c:ip_addr_loopback
Unexecuted instantiation: parse_identity.c:ip_addr_loopback
Unexecuted instantiation: parse_rpid.c:ip_addr_loopback
Unexecuted instantiation: proxy.c:ip_addr_loopback
Unexecuted instantiation: stun.c:ip_addr_loopback
Unexecuted instantiation: fuzz_uri.c:ip_addr_loopback
376
377
378
/* creates an ANY ip_addr (filled with 0, af and len properly set) */
379
inline static void ip_addr_mk_any(int af, struct ip_addr *ip)
380
0
{
381
0
  ip->af = af;
382
0
  if(likely(af == AF_INET)) {
383
0
    ip->len = 4;
384
0
    ip->u.addr32[0] = 0;
385
0
  } else {
386
0
    ip->len = 16;
387
0
#if(defined(ULONG_MAX) && ULONG_MAX > 4294967295) || defined LP64
388
    /* long is 64 bits */
389
0
    ip->u.addrl[0] = 0;
390
0
    ip->u.addrl[1] = 0;
391
#else
392
    ip->u.addr32[0] = 0;
393
    ip->u.addr32[1] = 0;
394
    ip->u.addr32[2] = 0;
395
    ip->u.addr32[3] = 0;
396
#endif /* ULONG_MAX */
397
0
  }
398
0
}
Unexecuted instantiation: fuzz_parse_msg.c:ip_addr_mk_any
Unexecuted instantiation: dprint.c:ip_addr_mk_any
Unexecuted instantiation: error.c:ip_addr_mk_any
Unexecuted instantiation: main.c:ip_addr_mk_any
Unexecuted instantiation: modparam.c:ip_addr_mk_any
Unexecuted instantiation: msg_parser.c:ip_addr_mk_any
Unexecuted instantiation: nonsip_hooks.c:ip_addr_mk_any
Unexecuted instantiation: parse_addr_spec.c:ip_addr_mk_any
Unexecuted instantiation: parse_contact.c:ip_addr_mk_any
Unexecuted instantiation: parse_content.c:ip_addr_mk_any
Unexecuted instantiation: parse_cseq.c:ip_addr_mk_any
Unexecuted instantiation: parse_disposition.c:ip_addr_mk_any
Unexecuted instantiation: parse_diversion.c:ip_addr_mk_any
Unexecuted instantiation: parse_fline.c:ip_addr_mk_any
Unexecuted instantiation: parse_from.c:ip_addr_mk_any
Unexecuted instantiation: parse_identityinfo.c:ip_addr_mk_any
Unexecuted instantiation: parse_methods.c:ip_addr_mk_any
Unexecuted instantiation: parse_ppi_pai.c:ip_addr_mk_any
Unexecuted instantiation: parse_privacy.c:ip_addr_mk_any
Unexecuted instantiation: parse_refer_to.c:ip_addr_mk_any
Unexecuted instantiation: parse_rr.c:ip_addr_mk_any
Unexecuted instantiation: parse_to.c:ip_addr_mk_any
Unexecuted instantiation: parse_via.c:ip_addr_mk_any
Unexecuted instantiation: ppcfg.c:ip_addr_mk_any
Unexecuted instantiation: pt.c:ip_addr_mk_any
Unexecuted instantiation: pv_core.c:ip_addr_mk_any
Unexecuted instantiation: pvapi.c:ip_addr_mk_any
Unexecuted instantiation: q_malloc.c:ip_addr_mk_any
Unexecuted instantiation: raw_sock.c:ip_addr_mk_any
Unexecuted instantiation: re.c:ip_addr_mk_any
Unexecuted instantiation: receive.c:ip_addr_mk_any
Unexecuted instantiation: resolve.c:ip_addr_mk_any
Unexecuted instantiation: route.c:ip_addr_mk_any
Unexecuted instantiation: route_struct.c:ip_addr_mk_any
Unexecuted instantiation: rvalue.c:ip_addr_mk_any
Unexecuted instantiation: script_cb.c:ip_addr_mk_any
Unexecuted instantiation: sctp_core.c:ip_addr_mk_any
Unexecuted instantiation: sdp.c:ip_addr_mk_any
Unexecuted instantiation: sdp_helpr_funcs.c:ip_addr_mk_any
Unexecuted instantiation: select.c:ip_addr_mk_any
Unexecuted instantiation: select_core.c:ip_addr_mk_any
Unexecuted instantiation: shm.c:ip_addr_mk_any
Unexecuted instantiation: shm_init.c:ip_addr_mk_any
Unexecuted instantiation: socket_info.c:ip_addr_mk_any
Unexecuted instantiation: sr_module.c:ip_addr_mk_any
Unexecuted instantiation: srapi.c:ip_addr_mk_any
Unexecuted instantiation: strutils.c:ip_addr_mk_any
Unexecuted instantiation: switch.c:ip_addr_mk_any
Unexecuted instantiation: tcp_main.c:ip_addr_mk_any
Unexecuted instantiation: tcp_options.c:ip_addr_mk_any
Unexecuted instantiation: tcp_read.c:ip_addr_mk_any
Unexecuted instantiation: tcp_stats.c:ip_addr_mk_any
Unexecuted instantiation: timer.c:ip_addr_mk_any
Unexecuted instantiation: timer_proc.c:ip_addr_mk_any
Unexecuted instantiation: tls_hooks.c:ip_addr_mk_any
Unexecuted instantiation: tlsf_malloc.c:ip_addr_mk_any
Unexecuted instantiation: udp_server.c:ip_addr_mk_any
Unexecuted instantiation: usr_avp.c:ip_addr_mk_any
Unexecuted instantiation: ut.c:ip_addr_mk_any
Unexecuted instantiation: action.c:ip_addr_mk_any
Unexecuted instantiation: async_task.c:ip_addr_mk_any
Unexecuted instantiation: cfg.tab.c:ip_addr_mk_any
Unexecuted instantiation: cfg_core.c:ip_addr_mk_any
Unexecuted instantiation: cfg_select.c:ip_addr_mk_any
Unexecuted instantiation: cfg_struct.c:ip_addr_mk_any
Unexecuted instantiation: core_cmd.c:ip_addr_mk_any
Unexecuted instantiation: counters.c:ip_addr_mk_any
Unexecuted instantiation: daemonize.c:ip_addr_mk_any
Unexecuted instantiation: data_lump.c:ip_addr_mk_any
Unexecuted instantiation: data_lump_rpl.c:ip_addr_mk_any
Unexecuted instantiation: digest.c:ip_addr_mk_any
Unexecuted instantiation: dns_cache.c:ip_addr_mk_any
Unexecuted instantiation: dset.c:ip_addr_mk_any
Unexecuted instantiation: dst_blocklist.c:ip_addr_mk_any
Unexecuted instantiation: events.c:ip_addr_mk_any
Unexecuted instantiation: f_malloc.c:ip_addr_mk_any
Unexecuted instantiation: flags.c:ip_addr_mk_any
Unexecuted instantiation: fmsg.c:ip_addr_mk_any
Unexecuted instantiation: forward.c:ip_addr_mk_any
Unexecuted instantiation: hf.c:ip_addr_mk_any
Unexecuted instantiation: io_wait.c:ip_addr_mk_any
Unexecuted instantiation: ip_addr.c:ip_addr_mk_any
Unexecuted instantiation: kemi.c:ip_addr_mk_any
Unexecuted instantiation: lex.yy.c:ip_addr_mk_any
Unexecuted instantiation: local_timer.c:ip_addr_mk_any
Unexecuted instantiation: lvalue.c:ip_addr_mk_any
Unexecuted instantiation: mod_fix.c:ip_addr_mk_any
Unexecuted instantiation: msg_translator.c:ip_addr_mk_any
Unexecuted instantiation: onsend.c:ip_addr_mk_any
Unexecuted instantiation: parse_allow.c:ip_addr_mk_any
Unexecuted instantiation: parse_body.c:ip_addr_mk_any
Unexecuted instantiation: parse_date.c:ip_addr_mk_any
Unexecuted instantiation: parse_identity.c:ip_addr_mk_any
Unexecuted instantiation: parse_rpid.c:ip_addr_mk_any
Unexecuted instantiation: proxy.c:ip_addr_mk_any
Unexecuted instantiation: stun.c:ip_addr_mk_any
Unexecuted instantiation: fuzz_uri.c:ip_addr_mk_any
399
400
401
/* returns 1 if ip & net.mask == net.ip ; 0 otherwise & -1 on error
402
 * [ diff. address families ]) */
403
inline static int matchnet(const struct ip_addr *ip, const struct net *net)
404
0
{
405
0
  unsigned int r;
406
407
0
  if(ip->af == net->ip.af) {
408
0
    for(r = 0; r < ip->len / 4; r++) { /* ipv4 & ipv6 addresses are
409
                   * all multiple of 4*/
410
0
      if((ip->u.addr32[r] & net->mask.u.addr32[r])
411
0
          != net->ip.u.addr32[r]) {
412
0
        return 0;
413
0
      }
414
0
    }
415
0
    return 1;
416
0
  };
417
0
  return -1;
418
0
}
Unexecuted instantiation: fuzz_parse_msg.c:matchnet
Unexecuted instantiation: dprint.c:matchnet
Unexecuted instantiation: error.c:matchnet
Unexecuted instantiation: main.c:matchnet
Unexecuted instantiation: modparam.c:matchnet
Unexecuted instantiation: msg_parser.c:matchnet
Unexecuted instantiation: nonsip_hooks.c:matchnet
Unexecuted instantiation: parse_addr_spec.c:matchnet
Unexecuted instantiation: parse_contact.c:matchnet
Unexecuted instantiation: parse_content.c:matchnet
Unexecuted instantiation: parse_cseq.c:matchnet
Unexecuted instantiation: parse_disposition.c:matchnet
Unexecuted instantiation: parse_diversion.c:matchnet
Unexecuted instantiation: parse_fline.c:matchnet
Unexecuted instantiation: parse_from.c:matchnet
Unexecuted instantiation: parse_identityinfo.c:matchnet
Unexecuted instantiation: parse_methods.c:matchnet
Unexecuted instantiation: parse_ppi_pai.c:matchnet
Unexecuted instantiation: parse_privacy.c:matchnet
Unexecuted instantiation: parse_refer_to.c:matchnet
Unexecuted instantiation: parse_rr.c:matchnet
Unexecuted instantiation: parse_to.c:matchnet
Unexecuted instantiation: parse_via.c:matchnet
Unexecuted instantiation: ppcfg.c:matchnet
Unexecuted instantiation: pt.c:matchnet
Unexecuted instantiation: pv_core.c:matchnet
Unexecuted instantiation: pvapi.c:matchnet
Unexecuted instantiation: q_malloc.c:matchnet
Unexecuted instantiation: raw_sock.c:matchnet
Unexecuted instantiation: re.c:matchnet
Unexecuted instantiation: receive.c:matchnet
Unexecuted instantiation: resolve.c:matchnet
Unexecuted instantiation: route.c:matchnet
Unexecuted instantiation: route_struct.c:matchnet
Unexecuted instantiation: rvalue.c:matchnet
Unexecuted instantiation: script_cb.c:matchnet
Unexecuted instantiation: sctp_core.c:matchnet
Unexecuted instantiation: sdp.c:matchnet
Unexecuted instantiation: sdp_helpr_funcs.c:matchnet
Unexecuted instantiation: select.c:matchnet
Unexecuted instantiation: select_core.c:matchnet
Unexecuted instantiation: shm.c:matchnet
Unexecuted instantiation: shm_init.c:matchnet
Unexecuted instantiation: socket_info.c:matchnet
Unexecuted instantiation: sr_module.c:matchnet
Unexecuted instantiation: srapi.c:matchnet
Unexecuted instantiation: strutils.c:matchnet
Unexecuted instantiation: switch.c:matchnet
Unexecuted instantiation: tcp_main.c:matchnet
Unexecuted instantiation: tcp_options.c:matchnet
Unexecuted instantiation: tcp_read.c:matchnet
Unexecuted instantiation: tcp_stats.c:matchnet
Unexecuted instantiation: timer.c:matchnet
Unexecuted instantiation: timer_proc.c:matchnet
Unexecuted instantiation: tls_hooks.c:matchnet
Unexecuted instantiation: tlsf_malloc.c:matchnet
Unexecuted instantiation: udp_server.c:matchnet
Unexecuted instantiation: usr_avp.c:matchnet
Unexecuted instantiation: ut.c:matchnet
Unexecuted instantiation: action.c:matchnet
Unexecuted instantiation: async_task.c:matchnet
Unexecuted instantiation: cfg.tab.c:matchnet
Unexecuted instantiation: cfg_core.c:matchnet
Unexecuted instantiation: cfg_select.c:matchnet
Unexecuted instantiation: cfg_struct.c:matchnet
Unexecuted instantiation: core_cmd.c:matchnet
Unexecuted instantiation: counters.c:matchnet
Unexecuted instantiation: daemonize.c:matchnet
Unexecuted instantiation: data_lump.c:matchnet
Unexecuted instantiation: data_lump_rpl.c:matchnet
Unexecuted instantiation: digest.c:matchnet
Unexecuted instantiation: dns_cache.c:matchnet
Unexecuted instantiation: dset.c:matchnet
Unexecuted instantiation: dst_blocklist.c:matchnet
Unexecuted instantiation: events.c:matchnet
Unexecuted instantiation: f_malloc.c:matchnet
Unexecuted instantiation: flags.c:matchnet
Unexecuted instantiation: fmsg.c:matchnet
Unexecuted instantiation: forward.c:matchnet
Unexecuted instantiation: hf.c:matchnet
Unexecuted instantiation: io_wait.c:matchnet
Unexecuted instantiation: ip_addr.c:matchnet
Unexecuted instantiation: kemi.c:matchnet
Unexecuted instantiation: lex.yy.c:matchnet
Unexecuted instantiation: local_timer.c:matchnet
Unexecuted instantiation: lvalue.c:matchnet
Unexecuted instantiation: mod_fix.c:matchnet
Unexecuted instantiation: msg_translator.c:matchnet
Unexecuted instantiation: onsend.c:matchnet
Unexecuted instantiation: parse_allow.c:matchnet
Unexecuted instantiation: parse_body.c:matchnet
Unexecuted instantiation: parse_date.c:matchnet
Unexecuted instantiation: parse_identity.c:matchnet
Unexecuted instantiation: parse_rpid.c:matchnet
Unexecuted instantiation: proxy.c:matchnet
Unexecuted instantiation: stun.c:matchnet
Unexecuted instantiation: fuzz_uri.c:matchnet
419
420
421
/* inits an ip_addr pointer from a sockaddr structure*/
422
static inline void sockaddr2ip_addr(
423
    struct ip_addr *ip, const struct sockaddr *sa)
424
0
{
425
0
  switch(sa->sa_family) {
426
0
    case AF_INET:
427
0
      ip->af = AF_INET;
428
0
      ip->len = 4;
429
0
      memcpy(ip->u.addr, &((struct sockaddr_in *)sa)->sin_addr, 4);
430
0
      break;
431
0
    case AF_INET6:
432
0
      ip->af = AF_INET6;
433
0
      ip->len = 16;
434
0
      memcpy(ip->u.addr, &((struct sockaddr_in6 *)sa)->sin6_addr, 16);
435
0
      break;
436
0
    default:
437
0
      LM_CRIT("unknown address family %d\n", sa->sa_family);
438
0
  }
439
0
}
Unexecuted instantiation: fuzz_parse_msg.c:sockaddr2ip_addr
Unexecuted instantiation: dprint.c:sockaddr2ip_addr
Unexecuted instantiation: error.c:sockaddr2ip_addr
Unexecuted instantiation: main.c:sockaddr2ip_addr
Unexecuted instantiation: modparam.c:sockaddr2ip_addr
Unexecuted instantiation: msg_parser.c:sockaddr2ip_addr
Unexecuted instantiation: nonsip_hooks.c:sockaddr2ip_addr
Unexecuted instantiation: parse_addr_spec.c:sockaddr2ip_addr
Unexecuted instantiation: parse_contact.c:sockaddr2ip_addr
Unexecuted instantiation: parse_content.c:sockaddr2ip_addr
Unexecuted instantiation: parse_cseq.c:sockaddr2ip_addr
Unexecuted instantiation: parse_disposition.c:sockaddr2ip_addr
Unexecuted instantiation: parse_diversion.c:sockaddr2ip_addr
Unexecuted instantiation: parse_fline.c:sockaddr2ip_addr
Unexecuted instantiation: parse_from.c:sockaddr2ip_addr
Unexecuted instantiation: parse_identityinfo.c:sockaddr2ip_addr
Unexecuted instantiation: parse_methods.c:sockaddr2ip_addr
Unexecuted instantiation: parse_ppi_pai.c:sockaddr2ip_addr
Unexecuted instantiation: parse_privacy.c:sockaddr2ip_addr
Unexecuted instantiation: parse_refer_to.c:sockaddr2ip_addr
Unexecuted instantiation: parse_rr.c:sockaddr2ip_addr
Unexecuted instantiation: parse_to.c:sockaddr2ip_addr
Unexecuted instantiation: parse_via.c:sockaddr2ip_addr
Unexecuted instantiation: ppcfg.c:sockaddr2ip_addr
Unexecuted instantiation: pt.c:sockaddr2ip_addr
Unexecuted instantiation: pv_core.c:sockaddr2ip_addr
Unexecuted instantiation: pvapi.c:sockaddr2ip_addr
Unexecuted instantiation: q_malloc.c:sockaddr2ip_addr
Unexecuted instantiation: raw_sock.c:sockaddr2ip_addr
Unexecuted instantiation: re.c:sockaddr2ip_addr
Unexecuted instantiation: receive.c:sockaddr2ip_addr
Unexecuted instantiation: resolve.c:sockaddr2ip_addr
Unexecuted instantiation: route.c:sockaddr2ip_addr
Unexecuted instantiation: route_struct.c:sockaddr2ip_addr
Unexecuted instantiation: rvalue.c:sockaddr2ip_addr
Unexecuted instantiation: script_cb.c:sockaddr2ip_addr
Unexecuted instantiation: sctp_core.c:sockaddr2ip_addr
Unexecuted instantiation: sdp.c:sockaddr2ip_addr
Unexecuted instantiation: sdp_helpr_funcs.c:sockaddr2ip_addr
Unexecuted instantiation: select.c:sockaddr2ip_addr
Unexecuted instantiation: select_core.c:sockaddr2ip_addr
Unexecuted instantiation: shm.c:sockaddr2ip_addr
Unexecuted instantiation: shm_init.c:sockaddr2ip_addr
Unexecuted instantiation: socket_info.c:sockaddr2ip_addr
Unexecuted instantiation: sr_module.c:sockaddr2ip_addr
Unexecuted instantiation: srapi.c:sockaddr2ip_addr
Unexecuted instantiation: strutils.c:sockaddr2ip_addr
Unexecuted instantiation: switch.c:sockaddr2ip_addr
Unexecuted instantiation: tcp_main.c:sockaddr2ip_addr
Unexecuted instantiation: tcp_options.c:sockaddr2ip_addr
Unexecuted instantiation: tcp_read.c:sockaddr2ip_addr
Unexecuted instantiation: tcp_stats.c:sockaddr2ip_addr
Unexecuted instantiation: timer.c:sockaddr2ip_addr
Unexecuted instantiation: timer_proc.c:sockaddr2ip_addr
Unexecuted instantiation: tls_hooks.c:sockaddr2ip_addr
Unexecuted instantiation: tlsf_malloc.c:sockaddr2ip_addr
Unexecuted instantiation: udp_server.c:sockaddr2ip_addr
Unexecuted instantiation: usr_avp.c:sockaddr2ip_addr
Unexecuted instantiation: ut.c:sockaddr2ip_addr
Unexecuted instantiation: action.c:sockaddr2ip_addr
Unexecuted instantiation: async_task.c:sockaddr2ip_addr
Unexecuted instantiation: cfg.tab.c:sockaddr2ip_addr
Unexecuted instantiation: cfg_core.c:sockaddr2ip_addr
Unexecuted instantiation: cfg_select.c:sockaddr2ip_addr
Unexecuted instantiation: cfg_struct.c:sockaddr2ip_addr
Unexecuted instantiation: core_cmd.c:sockaddr2ip_addr
Unexecuted instantiation: counters.c:sockaddr2ip_addr
Unexecuted instantiation: daemonize.c:sockaddr2ip_addr
Unexecuted instantiation: data_lump.c:sockaddr2ip_addr
Unexecuted instantiation: data_lump_rpl.c:sockaddr2ip_addr
Unexecuted instantiation: digest.c:sockaddr2ip_addr
Unexecuted instantiation: dns_cache.c:sockaddr2ip_addr
Unexecuted instantiation: dset.c:sockaddr2ip_addr
Unexecuted instantiation: dst_blocklist.c:sockaddr2ip_addr
Unexecuted instantiation: events.c:sockaddr2ip_addr
Unexecuted instantiation: f_malloc.c:sockaddr2ip_addr
Unexecuted instantiation: flags.c:sockaddr2ip_addr
Unexecuted instantiation: fmsg.c:sockaddr2ip_addr
Unexecuted instantiation: forward.c:sockaddr2ip_addr
Unexecuted instantiation: hf.c:sockaddr2ip_addr
Unexecuted instantiation: io_wait.c:sockaddr2ip_addr
Unexecuted instantiation: ip_addr.c:sockaddr2ip_addr
Unexecuted instantiation: kemi.c:sockaddr2ip_addr
Unexecuted instantiation: lex.yy.c:sockaddr2ip_addr
Unexecuted instantiation: local_timer.c:sockaddr2ip_addr
Unexecuted instantiation: lvalue.c:sockaddr2ip_addr
Unexecuted instantiation: mod_fix.c:sockaddr2ip_addr
Unexecuted instantiation: msg_translator.c:sockaddr2ip_addr
Unexecuted instantiation: onsend.c:sockaddr2ip_addr
Unexecuted instantiation: parse_allow.c:sockaddr2ip_addr
Unexecuted instantiation: parse_body.c:sockaddr2ip_addr
Unexecuted instantiation: parse_date.c:sockaddr2ip_addr
Unexecuted instantiation: parse_identity.c:sockaddr2ip_addr
Unexecuted instantiation: parse_rpid.c:sockaddr2ip_addr
Unexecuted instantiation: proxy.c:sockaddr2ip_addr
Unexecuted instantiation: stun.c:sockaddr2ip_addr
Unexecuted instantiation: fuzz_uri.c:sockaddr2ip_addr
440
441
442
/* compare 2 ip_addrs (both args are pointers)*/
443
#define ip_addr_cmp(ip1, ip2) \
444
0
  (((ip1)->af == (ip2)->af) \
445
0
      && (memcmp((ip1)->u.addr, (ip2)->u.addr, (ip1)->len) == 0))
446
447
448
/* compare 2 sockaddr_unions */
449
static inline int su_cmp(
450
    const union sockaddr_union *s1, const union sockaddr_union *s2)
451
0
{
452
0
  if(s1->s.sa_family != s2->s.sa_family)
453
0
    return 0;
454
0
  switch(s1->s.sa_family) {
455
0
    case AF_INET:
456
0
      return (s1->sin.sin_port == s2->sin.sin_port)
457
0
           && (memcmp(&s1->sin.sin_addr, &s2->sin.sin_addr, 4) == 0);
458
0
    case AF_INET6:
459
0
      return (s1->sin6.sin6_port == s2->sin6.sin6_port)
460
0
           && (memcmp(&s1->sin6.sin6_addr, &s2->sin6.sin6_addr, 16)
461
0
               == 0);
462
0
    default:
463
0
      LM_CRIT("unknown address family %d\n", s1->s.sa_family);
464
0
      return 0;
465
0
  }
466
0
}
Unexecuted instantiation: fuzz_parse_msg.c:su_cmp
Unexecuted instantiation: dprint.c:su_cmp
Unexecuted instantiation: error.c:su_cmp
Unexecuted instantiation: main.c:su_cmp
Unexecuted instantiation: modparam.c:su_cmp
Unexecuted instantiation: msg_parser.c:su_cmp
Unexecuted instantiation: nonsip_hooks.c:su_cmp
Unexecuted instantiation: parse_addr_spec.c:su_cmp
Unexecuted instantiation: parse_contact.c:su_cmp
Unexecuted instantiation: parse_content.c:su_cmp
Unexecuted instantiation: parse_cseq.c:su_cmp
Unexecuted instantiation: parse_disposition.c:su_cmp
Unexecuted instantiation: parse_diversion.c:su_cmp
Unexecuted instantiation: parse_fline.c:su_cmp
Unexecuted instantiation: parse_from.c:su_cmp
Unexecuted instantiation: parse_identityinfo.c:su_cmp
Unexecuted instantiation: parse_methods.c:su_cmp
Unexecuted instantiation: parse_ppi_pai.c:su_cmp
Unexecuted instantiation: parse_privacy.c:su_cmp
Unexecuted instantiation: parse_refer_to.c:su_cmp
Unexecuted instantiation: parse_rr.c:su_cmp
Unexecuted instantiation: parse_to.c:su_cmp
Unexecuted instantiation: parse_via.c:su_cmp
Unexecuted instantiation: ppcfg.c:su_cmp
Unexecuted instantiation: pt.c:su_cmp
Unexecuted instantiation: pv_core.c:su_cmp
Unexecuted instantiation: pvapi.c:su_cmp
Unexecuted instantiation: q_malloc.c:su_cmp
Unexecuted instantiation: raw_sock.c:su_cmp
Unexecuted instantiation: re.c:su_cmp
Unexecuted instantiation: receive.c:su_cmp
Unexecuted instantiation: resolve.c:su_cmp
Unexecuted instantiation: route.c:su_cmp
Unexecuted instantiation: route_struct.c:su_cmp
Unexecuted instantiation: rvalue.c:su_cmp
Unexecuted instantiation: script_cb.c:su_cmp
Unexecuted instantiation: sctp_core.c:su_cmp
Unexecuted instantiation: sdp.c:su_cmp
Unexecuted instantiation: sdp_helpr_funcs.c:su_cmp
Unexecuted instantiation: select.c:su_cmp
Unexecuted instantiation: select_core.c:su_cmp
Unexecuted instantiation: shm.c:su_cmp
Unexecuted instantiation: shm_init.c:su_cmp
Unexecuted instantiation: socket_info.c:su_cmp
Unexecuted instantiation: sr_module.c:su_cmp
Unexecuted instantiation: srapi.c:su_cmp
Unexecuted instantiation: strutils.c:su_cmp
Unexecuted instantiation: switch.c:su_cmp
Unexecuted instantiation: tcp_main.c:su_cmp
Unexecuted instantiation: tcp_options.c:su_cmp
Unexecuted instantiation: tcp_read.c:su_cmp
Unexecuted instantiation: tcp_stats.c:su_cmp
Unexecuted instantiation: timer.c:su_cmp
Unexecuted instantiation: timer_proc.c:su_cmp
Unexecuted instantiation: tls_hooks.c:su_cmp
Unexecuted instantiation: tlsf_malloc.c:su_cmp
Unexecuted instantiation: udp_server.c:su_cmp
Unexecuted instantiation: usr_avp.c:su_cmp
Unexecuted instantiation: ut.c:su_cmp
Unexecuted instantiation: action.c:su_cmp
Unexecuted instantiation: async_task.c:su_cmp
Unexecuted instantiation: cfg.tab.c:su_cmp
Unexecuted instantiation: cfg_core.c:su_cmp
Unexecuted instantiation: cfg_select.c:su_cmp
Unexecuted instantiation: cfg_struct.c:su_cmp
Unexecuted instantiation: core_cmd.c:su_cmp
Unexecuted instantiation: counters.c:su_cmp
Unexecuted instantiation: daemonize.c:su_cmp
Unexecuted instantiation: data_lump.c:su_cmp
Unexecuted instantiation: data_lump_rpl.c:su_cmp
Unexecuted instantiation: digest.c:su_cmp
Unexecuted instantiation: dns_cache.c:su_cmp
Unexecuted instantiation: dset.c:su_cmp
Unexecuted instantiation: dst_blocklist.c:su_cmp
Unexecuted instantiation: events.c:su_cmp
Unexecuted instantiation: f_malloc.c:su_cmp
Unexecuted instantiation: flags.c:su_cmp
Unexecuted instantiation: fmsg.c:su_cmp
Unexecuted instantiation: forward.c:su_cmp
Unexecuted instantiation: hf.c:su_cmp
Unexecuted instantiation: io_wait.c:su_cmp
Unexecuted instantiation: ip_addr.c:su_cmp
Unexecuted instantiation: kemi.c:su_cmp
Unexecuted instantiation: lex.yy.c:su_cmp
Unexecuted instantiation: local_timer.c:su_cmp
Unexecuted instantiation: lvalue.c:su_cmp
Unexecuted instantiation: mod_fix.c:su_cmp
Unexecuted instantiation: msg_translator.c:su_cmp
Unexecuted instantiation: onsend.c:su_cmp
Unexecuted instantiation: parse_allow.c:su_cmp
Unexecuted instantiation: parse_body.c:su_cmp
Unexecuted instantiation: parse_date.c:su_cmp
Unexecuted instantiation: parse_identity.c:su_cmp
Unexecuted instantiation: parse_rpid.c:su_cmp
Unexecuted instantiation: proxy.c:su_cmp
Unexecuted instantiation: stun.c:su_cmp
Unexecuted instantiation: fuzz_uri.c:su_cmp
467
468
469
/* gets the port number (host byte order) */
470
static inline unsigned short su_getport(const union sockaddr_union *su)
471
0
{
472
0
  switch(su->s.sa_family) {
473
0
    case AF_INET:
474
0
      return ntohs(su->sin.sin_port);
475
0
    case AF_INET6:
476
0
      return ntohs(su->sin6.sin6_port);
477
0
    default:
478
0
      LM_CRIT("unknown address family %d\n", su->s.sa_family);
479
0
      return 0;
480
0
  }
481
0
}
Unexecuted instantiation: fuzz_parse_msg.c:su_getport
Unexecuted instantiation: dprint.c:su_getport
Unexecuted instantiation: error.c:su_getport
Unexecuted instantiation: main.c:su_getport
Unexecuted instantiation: modparam.c:su_getport
Unexecuted instantiation: msg_parser.c:su_getport
Unexecuted instantiation: nonsip_hooks.c:su_getport
Unexecuted instantiation: parse_addr_spec.c:su_getport
Unexecuted instantiation: parse_contact.c:su_getport
Unexecuted instantiation: parse_content.c:su_getport
Unexecuted instantiation: parse_cseq.c:su_getport
Unexecuted instantiation: parse_disposition.c:su_getport
Unexecuted instantiation: parse_diversion.c:su_getport
Unexecuted instantiation: parse_fline.c:su_getport
Unexecuted instantiation: parse_from.c:su_getport
Unexecuted instantiation: parse_identityinfo.c:su_getport
Unexecuted instantiation: parse_methods.c:su_getport
Unexecuted instantiation: parse_ppi_pai.c:su_getport
Unexecuted instantiation: parse_privacy.c:su_getport
Unexecuted instantiation: parse_refer_to.c:su_getport
Unexecuted instantiation: parse_rr.c:su_getport
Unexecuted instantiation: parse_to.c:su_getport
Unexecuted instantiation: parse_via.c:su_getport
Unexecuted instantiation: ppcfg.c:su_getport
Unexecuted instantiation: pt.c:su_getport
Unexecuted instantiation: pv_core.c:su_getport
Unexecuted instantiation: pvapi.c:su_getport
Unexecuted instantiation: q_malloc.c:su_getport
Unexecuted instantiation: raw_sock.c:su_getport
Unexecuted instantiation: re.c:su_getport
Unexecuted instantiation: receive.c:su_getport
Unexecuted instantiation: resolve.c:su_getport
Unexecuted instantiation: route.c:su_getport
Unexecuted instantiation: route_struct.c:su_getport
Unexecuted instantiation: rvalue.c:su_getport
Unexecuted instantiation: script_cb.c:su_getport
Unexecuted instantiation: sctp_core.c:su_getport
Unexecuted instantiation: sdp.c:su_getport
Unexecuted instantiation: sdp_helpr_funcs.c:su_getport
Unexecuted instantiation: select.c:su_getport
Unexecuted instantiation: select_core.c:su_getport
Unexecuted instantiation: shm.c:su_getport
Unexecuted instantiation: shm_init.c:su_getport
Unexecuted instantiation: socket_info.c:su_getport
Unexecuted instantiation: sr_module.c:su_getport
Unexecuted instantiation: srapi.c:su_getport
Unexecuted instantiation: strutils.c:su_getport
Unexecuted instantiation: switch.c:su_getport
Unexecuted instantiation: tcp_main.c:su_getport
Unexecuted instantiation: tcp_options.c:su_getport
Unexecuted instantiation: tcp_read.c:su_getport
Unexecuted instantiation: tcp_stats.c:su_getport
Unexecuted instantiation: timer.c:su_getport
Unexecuted instantiation: timer_proc.c:su_getport
Unexecuted instantiation: tls_hooks.c:su_getport
Unexecuted instantiation: tlsf_malloc.c:su_getport
Unexecuted instantiation: udp_server.c:su_getport
Unexecuted instantiation: usr_avp.c:su_getport
Unexecuted instantiation: ut.c:su_getport
Unexecuted instantiation: action.c:su_getport
Unexecuted instantiation: async_task.c:su_getport
Unexecuted instantiation: cfg.tab.c:su_getport
Unexecuted instantiation: cfg_core.c:su_getport
Unexecuted instantiation: cfg_select.c:su_getport
Unexecuted instantiation: cfg_struct.c:su_getport
Unexecuted instantiation: core_cmd.c:su_getport
Unexecuted instantiation: counters.c:su_getport
Unexecuted instantiation: daemonize.c:su_getport
Unexecuted instantiation: data_lump.c:su_getport
Unexecuted instantiation: data_lump_rpl.c:su_getport
Unexecuted instantiation: digest.c:su_getport
Unexecuted instantiation: dns_cache.c:su_getport
Unexecuted instantiation: dset.c:su_getport
Unexecuted instantiation: dst_blocklist.c:su_getport
Unexecuted instantiation: events.c:su_getport
Unexecuted instantiation: f_malloc.c:su_getport
Unexecuted instantiation: flags.c:su_getport
Unexecuted instantiation: fmsg.c:su_getport
Unexecuted instantiation: forward.c:su_getport
Unexecuted instantiation: hf.c:su_getport
Unexecuted instantiation: io_wait.c:su_getport
Unexecuted instantiation: ip_addr.c:su_getport
Unexecuted instantiation: kemi.c:su_getport
Unexecuted instantiation: lex.yy.c:su_getport
Unexecuted instantiation: local_timer.c:su_getport
Unexecuted instantiation: lvalue.c:su_getport
Unexecuted instantiation: mod_fix.c:su_getport
Unexecuted instantiation: msg_translator.c:su_getport
Unexecuted instantiation: onsend.c:su_getport
Unexecuted instantiation: parse_allow.c:su_getport
Unexecuted instantiation: parse_body.c:su_getport
Unexecuted instantiation: parse_date.c:su_getport
Unexecuted instantiation: parse_identity.c:su_getport
Unexecuted instantiation: parse_rpid.c:su_getport
Unexecuted instantiation: proxy.c:su_getport
Unexecuted instantiation: stun.c:su_getport
Unexecuted instantiation: fuzz_uri.c:su_getport
482
483
484
/* sets the port number (host byte order) */
485
static inline void su_setport(union sockaddr_union *su, unsigned short port)
486
0
{
487
0
  switch(su->s.sa_family) {
488
0
    case AF_INET:
489
0
      su->sin.sin_port = htons(port);
490
0
      break;
491
0
    case AF_INET6:
492
0
      su->sin6.sin6_port = htons(port);
493
0
      break;
494
0
    default:
495
0
      LM_CRIT("unknown address family %d\n", su->s.sa_family);
496
0
  }
497
0
}
Unexecuted instantiation: fuzz_parse_msg.c:su_setport
Unexecuted instantiation: dprint.c:su_setport
Unexecuted instantiation: error.c:su_setport
Unexecuted instantiation: main.c:su_setport
Unexecuted instantiation: modparam.c:su_setport
Unexecuted instantiation: msg_parser.c:su_setport
Unexecuted instantiation: nonsip_hooks.c:su_setport
Unexecuted instantiation: parse_addr_spec.c:su_setport
Unexecuted instantiation: parse_contact.c:su_setport
Unexecuted instantiation: parse_content.c:su_setport
Unexecuted instantiation: parse_cseq.c:su_setport
Unexecuted instantiation: parse_disposition.c:su_setport
Unexecuted instantiation: parse_diversion.c:su_setport
Unexecuted instantiation: parse_fline.c:su_setport
Unexecuted instantiation: parse_from.c:su_setport
Unexecuted instantiation: parse_identityinfo.c:su_setport
Unexecuted instantiation: parse_methods.c:su_setport
Unexecuted instantiation: parse_ppi_pai.c:su_setport
Unexecuted instantiation: parse_privacy.c:su_setport
Unexecuted instantiation: parse_refer_to.c:su_setport
Unexecuted instantiation: parse_rr.c:su_setport
Unexecuted instantiation: parse_to.c:su_setport
Unexecuted instantiation: parse_via.c:su_setport
Unexecuted instantiation: ppcfg.c:su_setport
Unexecuted instantiation: pt.c:su_setport
Unexecuted instantiation: pv_core.c:su_setport
Unexecuted instantiation: pvapi.c:su_setport
Unexecuted instantiation: q_malloc.c:su_setport
Unexecuted instantiation: raw_sock.c:su_setport
Unexecuted instantiation: re.c:su_setport
Unexecuted instantiation: receive.c:su_setport
Unexecuted instantiation: resolve.c:su_setport
Unexecuted instantiation: route.c:su_setport
Unexecuted instantiation: route_struct.c:su_setport
Unexecuted instantiation: rvalue.c:su_setport
Unexecuted instantiation: script_cb.c:su_setport
Unexecuted instantiation: sctp_core.c:su_setport
Unexecuted instantiation: sdp.c:su_setport
Unexecuted instantiation: sdp_helpr_funcs.c:su_setport
Unexecuted instantiation: select.c:su_setport
Unexecuted instantiation: select_core.c:su_setport
Unexecuted instantiation: shm.c:su_setport
Unexecuted instantiation: shm_init.c:su_setport
Unexecuted instantiation: socket_info.c:su_setport
Unexecuted instantiation: sr_module.c:su_setport
Unexecuted instantiation: srapi.c:su_setport
Unexecuted instantiation: strutils.c:su_setport
Unexecuted instantiation: switch.c:su_setport
Unexecuted instantiation: tcp_main.c:su_setport
Unexecuted instantiation: tcp_options.c:su_setport
Unexecuted instantiation: tcp_read.c:su_setport
Unexecuted instantiation: tcp_stats.c:su_setport
Unexecuted instantiation: timer.c:su_setport
Unexecuted instantiation: timer_proc.c:su_setport
Unexecuted instantiation: tls_hooks.c:su_setport
Unexecuted instantiation: tlsf_malloc.c:su_setport
Unexecuted instantiation: udp_server.c:su_setport
Unexecuted instantiation: usr_avp.c:su_setport
Unexecuted instantiation: ut.c:su_setport
Unexecuted instantiation: action.c:su_setport
Unexecuted instantiation: async_task.c:su_setport
Unexecuted instantiation: cfg.tab.c:su_setport
Unexecuted instantiation: cfg_core.c:su_setport
Unexecuted instantiation: cfg_select.c:su_setport
Unexecuted instantiation: cfg_struct.c:su_setport
Unexecuted instantiation: core_cmd.c:su_setport
Unexecuted instantiation: counters.c:su_setport
Unexecuted instantiation: daemonize.c:su_setport
Unexecuted instantiation: data_lump.c:su_setport
Unexecuted instantiation: data_lump_rpl.c:su_setport
Unexecuted instantiation: digest.c:su_setport
Unexecuted instantiation: dns_cache.c:su_setport
Unexecuted instantiation: dset.c:su_setport
Unexecuted instantiation: dst_blocklist.c:su_setport
Unexecuted instantiation: events.c:su_setport
Unexecuted instantiation: f_malloc.c:su_setport
Unexecuted instantiation: flags.c:su_setport
Unexecuted instantiation: fmsg.c:su_setport
Unexecuted instantiation: forward.c:su_setport
Unexecuted instantiation: hf.c:su_setport
Unexecuted instantiation: io_wait.c:su_setport
Unexecuted instantiation: ip_addr.c:su_setport
Unexecuted instantiation: kemi.c:su_setport
Unexecuted instantiation: lex.yy.c:su_setport
Unexecuted instantiation: local_timer.c:su_setport
Unexecuted instantiation: lvalue.c:su_setport
Unexecuted instantiation: mod_fix.c:su_setport
Unexecuted instantiation: msg_translator.c:su_setport
Unexecuted instantiation: onsend.c:su_setport
Unexecuted instantiation: parse_allow.c:su_setport
Unexecuted instantiation: parse_body.c:su_setport
Unexecuted instantiation: parse_date.c:su_setport
Unexecuted instantiation: parse_identity.c:su_setport
Unexecuted instantiation: parse_rpid.c:su_setport
Unexecuted instantiation: proxy.c:su_setport
Unexecuted instantiation: stun.c:su_setport
Unexecuted instantiation: fuzz_uri.c:su_setport
498
499
500
/* inits an ip_addr pointer from a sockaddr_union ip address */
501
static inline void su2ip_addr(
502
    struct ip_addr *ip, const union sockaddr_union *su)
503
0
{
504
0
  switch(su->s.sa_family) {
505
0
    case AF_INET:
506
0
      ip->af = AF_INET;
507
0
      ip->len = 4;
508
0
      memcpy(ip->u.addr, &su->sin.sin_addr, 4);
509
0
      break;
510
0
    case AF_INET6:
511
0
      ip->af = AF_INET6;
512
0
      ip->len = 16;
513
0
      memcpy(ip->u.addr, &su->sin6.sin6_addr, 16);
514
0
      break;
515
0
    default:
516
0
      LM_CRIT("unknown address family %d\n", su->s.sa_family);
517
0
      memset(ip, 0, sizeof(ip_addr_t));
518
0
  }
519
0
}
Unexecuted instantiation: fuzz_parse_msg.c:su2ip_addr
Unexecuted instantiation: dprint.c:su2ip_addr
Unexecuted instantiation: error.c:su2ip_addr
Unexecuted instantiation: main.c:su2ip_addr
Unexecuted instantiation: modparam.c:su2ip_addr
Unexecuted instantiation: msg_parser.c:su2ip_addr
Unexecuted instantiation: nonsip_hooks.c:su2ip_addr
Unexecuted instantiation: parse_addr_spec.c:su2ip_addr
Unexecuted instantiation: parse_contact.c:su2ip_addr
Unexecuted instantiation: parse_content.c:su2ip_addr
Unexecuted instantiation: parse_cseq.c:su2ip_addr
Unexecuted instantiation: parse_disposition.c:su2ip_addr
Unexecuted instantiation: parse_diversion.c:su2ip_addr
Unexecuted instantiation: parse_fline.c:su2ip_addr
Unexecuted instantiation: parse_from.c:su2ip_addr
Unexecuted instantiation: parse_identityinfo.c:su2ip_addr
Unexecuted instantiation: parse_methods.c:su2ip_addr
Unexecuted instantiation: parse_ppi_pai.c:su2ip_addr
Unexecuted instantiation: parse_privacy.c:su2ip_addr
Unexecuted instantiation: parse_refer_to.c:su2ip_addr
Unexecuted instantiation: parse_rr.c:su2ip_addr
Unexecuted instantiation: parse_to.c:su2ip_addr
Unexecuted instantiation: parse_via.c:su2ip_addr
Unexecuted instantiation: ppcfg.c:su2ip_addr
Unexecuted instantiation: pt.c:su2ip_addr
Unexecuted instantiation: pv_core.c:su2ip_addr
Unexecuted instantiation: pvapi.c:su2ip_addr
Unexecuted instantiation: q_malloc.c:su2ip_addr
Unexecuted instantiation: raw_sock.c:su2ip_addr
Unexecuted instantiation: re.c:su2ip_addr
Unexecuted instantiation: receive.c:su2ip_addr
Unexecuted instantiation: resolve.c:su2ip_addr
Unexecuted instantiation: route.c:su2ip_addr
Unexecuted instantiation: route_struct.c:su2ip_addr
Unexecuted instantiation: rvalue.c:su2ip_addr
Unexecuted instantiation: script_cb.c:su2ip_addr
Unexecuted instantiation: sctp_core.c:su2ip_addr
Unexecuted instantiation: sdp.c:su2ip_addr
Unexecuted instantiation: sdp_helpr_funcs.c:su2ip_addr
Unexecuted instantiation: select.c:su2ip_addr
Unexecuted instantiation: select_core.c:su2ip_addr
Unexecuted instantiation: shm.c:su2ip_addr
Unexecuted instantiation: shm_init.c:su2ip_addr
Unexecuted instantiation: socket_info.c:su2ip_addr
Unexecuted instantiation: sr_module.c:su2ip_addr
Unexecuted instantiation: srapi.c:su2ip_addr
Unexecuted instantiation: strutils.c:su2ip_addr
Unexecuted instantiation: switch.c:su2ip_addr
Unexecuted instantiation: tcp_main.c:su2ip_addr
Unexecuted instantiation: tcp_options.c:su2ip_addr
Unexecuted instantiation: tcp_read.c:su2ip_addr
Unexecuted instantiation: tcp_stats.c:su2ip_addr
Unexecuted instantiation: timer.c:su2ip_addr
Unexecuted instantiation: timer_proc.c:su2ip_addr
Unexecuted instantiation: tls_hooks.c:su2ip_addr
Unexecuted instantiation: tlsf_malloc.c:su2ip_addr
Unexecuted instantiation: udp_server.c:su2ip_addr
Unexecuted instantiation: usr_avp.c:su2ip_addr
Unexecuted instantiation: ut.c:su2ip_addr
Unexecuted instantiation: action.c:su2ip_addr
Unexecuted instantiation: async_task.c:su2ip_addr
Unexecuted instantiation: cfg.tab.c:su2ip_addr
Unexecuted instantiation: cfg_core.c:su2ip_addr
Unexecuted instantiation: cfg_select.c:su2ip_addr
Unexecuted instantiation: cfg_struct.c:su2ip_addr
Unexecuted instantiation: core_cmd.c:su2ip_addr
Unexecuted instantiation: counters.c:su2ip_addr
Unexecuted instantiation: daemonize.c:su2ip_addr
Unexecuted instantiation: data_lump.c:su2ip_addr
Unexecuted instantiation: data_lump_rpl.c:su2ip_addr
Unexecuted instantiation: digest.c:su2ip_addr
Unexecuted instantiation: dns_cache.c:su2ip_addr
Unexecuted instantiation: dset.c:su2ip_addr
Unexecuted instantiation: dst_blocklist.c:su2ip_addr
Unexecuted instantiation: events.c:su2ip_addr
Unexecuted instantiation: f_malloc.c:su2ip_addr
Unexecuted instantiation: flags.c:su2ip_addr
Unexecuted instantiation: fmsg.c:su2ip_addr
Unexecuted instantiation: forward.c:su2ip_addr
Unexecuted instantiation: hf.c:su2ip_addr
Unexecuted instantiation: io_wait.c:su2ip_addr
Unexecuted instantiation: ip_addr.c:su2ip_addr
Unexecuted instantiation: kemi.c:su2ip_addr
Unexecuted instantiation: lex.yy.c:su2ip_addr
Unexecuted instantiation: local_timer.c:su2ip_addr
Unexecuted instantiation: lvalue.c:su2ip_addr
Unexecuted instantiation: mod_fix.c:su2ip_addr
Unexecuted instantiation: msg_translator.c:su2ip_addr
Unexecuted instantiation: onsend.c:su2ip_addr
Unexecuted instantiation: parse_allow.c:su2ip_addr
Unexecuted instantiation: parse_body.c:su2ip_addr
Unexecuted instantiation: parse_date.c:su2ip_addr
Unexecuted instantiation: parse_identity.c:su2ip_addr
Unexecuted instantiation: parse_rpid.c:su2ip_addr
Unexecuted instantiation: proxy.c:su2ip_addr
Unexecuted instantiation: stun.c:su2ip_addr
Unexecuted instantiation: fuzz_uri.c:su2ip_addr
520
521
522
/* ip_addr2su -> the same as init_su*/
523
0
#define ip_addr2su init_su
524
525
/* inits a struct sockaddr_union from a struct ip_addr and a port no
526
 * returns 0 if ok, -1 on error (unknown address family)
527
 * the port number is in host byte order */
528
static inline int init_su(
529
    union sockaddr_union *su, struct ip_addr *ip, unsigned short port)
530
0
{
531
0
  memset(su, 0, sizeof(union sockaddr_union)); /*needed on freebsd*/
532
0
  su->s.sa_family = ip->af;
533
0
  switch(ip->af) {
534
0
    case AF_INET6:
535
0
      memcpy(&su->sin6.sin6_addr, ip->u.addr, ip->len);
536
#ifdef HAVE_SOCKADDR_SA_LEN
537
      su->sin6.sin6_len = sizeof(struct sockaddr_in6);
538
#endif
539
0
      su->sin6.sin6_port = htons(port);
540
0
      break;
541
0
    case AF_INET:
542
0
      memcpy(&su->sin.sin_addr, ip->u.addr, ip->len);
543
#ifdef HAVE_SOCKADDR_SA_LEN
544
      su->sin.sin_len = sizeof(struct sockaddr_in);
545
#endif
546
0
      su->sin.sin_port = htons(port);
547
0
      break;
548
0
    default:
549
0
      LM_CRIT("unknown address family %d\n", ip->af);
550
0
      return -1;
551
0
  }
552
0
  return 0;
553
0
}
Unexecuted instantiation: fuzz_parse_msg.c:init_su
Unexecuted instantiation: dprint.c:init_su
Unexecuted instantiation: error.c:init_su
Unexecuted instantiation: main.c:init_su
Unexecuted instantiation: modparam.c:init_su
Unexecuted instantiation: msg_parser.c:init_su
Unexecuted instantiation: nonsip_hooks.c:init_su
Unexecuted instantiation: parse_addr_spec.c:init_su
Unexecuted instantiation: parse_contact.c:init_su
Unexecuted instantiation: parse_content.c:init_su
Unexecuted instantiation: parse_cseq.c:init_su
Unexecuted instantiation: parse_disposition.c:init_su
Unexecuted instantiation: parse_diversion.c:init_su
Unexecuted instantiation: parse_fline.c:init_su
Unexecuted instantiation: parse_from.c:init_su
Unexecuted instantiation: parse_identityinfo.c:init_su
Unexecuted instantiation: parse_methods.c:init_su
Unexecuted instantiation: parse_ppi_pai.c:init_su
Unexecuted instantiation: parse_privacy.c:init_su
Unexecuted instantiation: parse_refer_to.c:init_su
Unexecuted instantiation: parse_rr.c:init_su
Unexecuted instantiation: parse_to.c:init_su
Unexecuted instantiation: parse_via.c:init_su
Unexecuted instantiation: ppcfg.c:init_su
Unexecuted instantiation: pt.c:init_su
Unexecuted instantiation: pv_core.c:init_su
Unexecuted instantiation: pvapi.c:init_su
Unexecuted instantiation: q_malloc.c:init_su
Unexecuted instantiation: raw_sock.c:init_su
Unexecuted instantiation: re.c:init_su
Unexecuted instantiation: receive.c:init_su
Unexecuted instantiation: resolve.c:init_su
Unexecuted instantiation: route.c:init_su
Unexecuted instantiation: route_struct.c:init_su
Unexecuted instantiation: rvalue.c:init_su
Unexecuted instantiation: script_cb.c:init_su
Unexecuted instantiation: sctp_core.c:init_su
Unexecuted instantiation: sdp.c:init_su
Unexecuted instantiation: sdp_helpr_funcs.c:init_su
Unexecuted instantiation: select.c:init_su
Unexecuted instantiation: select_core.c:init_su
Unexecuted instantiation: shm.c:init_su
Unexecuted instantiation: shm_init.c:init_su
Unexecuted instantiation: socket_info.c:init_su
Unexecuted instantiation: sr_module.c:init_su
Unexecuted instantiation: srapi.c:init_su
Unexecuted instantiation: strutils.c:init_su
Unexecuted instantiation: switch.c:init_su
Unexecuted instantiation: tcp_main.c:init_su
Unexecuted instantiation: tcp_options.c:init_su
Unexecuted instantiation: tcp_read.c:init_su
Unexecuted instantiation: tcp_stats.c:init_su
Unexecuted instantiation: timer.c:init_su
Unexecuted instantiation: timer_proc.c:init_su
Unexecuted instantiation: tls_hooks.c:init_su
Unexecuted instantiation: tlsf_malloc.c:init_su
Unexecuted instantiation: udp_server.c:init_su
Unexecuted instantiation: usr_avp.c:init_su
Unexecuted instantiation: ut.c:init_su
Unexecuted instantiation: action.c:init_su
Unexecuted instantiation: async_task.c:init_su
Unexecuted instantiation: cfg.tab.c:init_su
Unexecuted instantiation: cfg_core.c:init_su
Unexecuted instantiation: cfg_select.c:init_su
Unexecuted instantiation: cfg_struct.c:init_su
Unexecuted instantiation: core_cmd.c:init_su
Unexecuted instantiation: counters.c:init_su
Unexecuted instantiation: daemonize.c:init_su
Unexecuted instantiation: data_lump.c:init_su
Unexecuted instantiation: data_lump_rpl.c:init_su
Unexecuted instantiation: digest.c:init_su
Unexecuted instantiation: dns_cache.c:init_su
Unexecuted instantiation: dset.c:init_su
Unexecuted instantiation: dst_blocklist.c:init_su
Unexecuted instantiation: events.c:init_su
Unexecuted instantiation: f_malloc.c:init_su
Unexecuted instantiation: flags.c:init_su
Unexecuted instantiation: fmsg.c:init_su
Unexecuted instantiation: forward.c:init_su
Unexecuted instantiation: hf.c:init_su
Unexecuted instantiation: io_wait.c:init_su
Unexecuted instantiation: ip_addr.c:init_su
Unexecuted instantiation: kemi.c:init_su
Unexecuted instantiation: lex.yy.c:init_su
Unexecuted instantiation: local_timer.c:init_su
Unexecuted instantiation: lvalue.c:init_su
Unexecuted instantiation: mod_fix.c:init_su
Unexecuted instantiation: msg_translator.c:init_su
Unexecuted instantiation: onsend.c:init_su
Unexecuted instantiation: parse_allow.c:init_su
Unexecuted instantiation: parse_body.c:init_su
Unexecuted instantiation: parse_date.c:init_su
Unexecuted instantiation: parse_identity.c:init_su
Unexecuted instantiation: parse_rpid.c:init_su
Unexecuted instantiation: proxy.c:init_su
Unexecuted instantiation: stun.c:init_su
Unexecuted instantiation: fuzz_uri.c:init_su
554
555
556
/* inits a struct sockaddr_union from a struct hostent, an address index in
557
 * the hostent structure and a port no. (host byte order)
558
 * WARNING: no index overflow  checks!
559
 * returns 0 if ok, -1 on error (unknown address family) */
560
int hostent2su(union sockaddr_union *su, struct hostent *he, unsigned int idx,
561
    unsigned short port);
562
563
564
/* maximum size of a str returned by ip_addr2str */
565
/* POSIX INET6_ADDRSTRLEN (RFC 4291 section 2.2) - IPv6 with IPv4 tunneling
566
 * (39): 1234:5678:9012:3456:7890:1234:5678:9012
567
 * (45): ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255 */
568
#ifdef INET6_ADDRSTRLEN
569
0
#define IP6_MAX_STR_SIZE (INET6_ADDRSTRLEN - 1)
570
#else
571
#define IP6_MAX_STR_SIZE 45
572
#endif
573
/*123.456.789.123*/
574
#ifdef INET_ADDRSTRLEN
575
0
#define IP4_MAX_STR_SIZE (INET_ADDRSTRLEN - 1)
576
#else
577
#define IP4_MAX_STR_SIZE 15
578
#endif
579
580
/* converts a raw ipv6 addr (16 bytes) to ascii */
581
int ip6tosbuf(unsigned char *ip6, char *buff, int len);
582
583
584
/* converts a raw ipv4 addr (4 bytes) to ascii */
585
int ip4tosbuf(unsigned char *ip4, char *buff, int len);
586
587
588
/* fast ip_addr -> string converter;
589
 * returns number of bytes written in buf on success, <=0 on error
590
 * The buffer must have enough space to hold the maximum size ip address
591
 *  of the corresponding address (see IP[46] above) or else the function
592
 *  will return error (no detailed might fit checks are made, for example
593
 *   if len==7 the function will fail even for 1.2.3.4).
594
 */
595
int ip_addr2sbuf(struct ip_addr *ip, char *buff, int len);
596
597
598
/* same as ip_addr2sbuf, but with [  ] around IPv6 addresses */
599
int ip_addr2sbufz(struct ip_addr *ip, char *buff, int len);
600
601
602
/* maximum size of a str returned by ip_addr2a (including \0) */
603
0
#define IP_ADDR_MAX_STR_SIZE (IP6_MAX_STR_SIZE + 1)   /* ip62ascii +  \0*/
604
#define IP_ADDR_MAX_STRZ_SIZE (IP6_MAX_STR_SIZE + 3) /* ip62ascii + [ + ] + \0*/
605
606
/* fast ip_addr -> string converter;
607
 * it uses an internal buffer
608
 */
609
char *ip_addr2a(struct ip_addr *ip);
610
611
612
/* full address in text representation, including [] for ipv6 */
613
char *ip_addr2strz(struct ip_addr *ip);
614
615
616
#define SU2A_MAX_STR_SIZE                                            \
617
  (IP6_MAX_STR_SIZE + 2 /* [] */ + 1 /* : */ + USHORT2SBUF_MAX_LEN \
618
      + 1 /* \0 */)
619
620
621
/* returns an asciiz string containing the ip and the port
622
 *  (<ip_addr>:port or [<ipv6_addr>]:port)
623
 */
624
char *su2a(union sockaddr_union *su, int su_len);
625
626
#define SUIP2A_MAX_STR_SIZE (IP6_MAX_STR_SIZE + 2 /* [] */ + 1 /* \0 */)
627
628
/* returns an asciiz string containing the ip
629
 *  (<ipv4_addr> or [<ipv6_addr>])
630
 */
631
char *suip2a(union sockaddr_union *su, int su_len);
632
633
634
/* converts an ip_addr structure to a hostent, returns pointer to internal
635
 * statical structure */
636
struct hostent *ip_addr2he(str *name, struct ip_addr *ip);
637
638
639
/* init a dest_info structure */
640
#define init_dest_info(dst)                         \
641
0
  do {                                            \
642
0
    memset((dst), 0, sizeof(struct dest_info)); \
643
0
  } while(0)
644
645
646
/* init a dest_info structure from a recv_info structure */
647
inline static void init_dst_from_rcv(
648
    struct dest_info *dst, const struct receive_info *rcv)
649
0
{
650
0
  dst->send_sock = rcv->bind_address;
651
0
  dst->to = rcv->src_su;
652
0
  dst->id = rcv->proto_reserved1;
653
0
  dst->proto = rcv->proto;
654
0
  dst->send_flags.f = 0;
655
0
  dst->send_flags.blst_imask = 0;
656
#ifdef USE_COMP
657
  dst->comp = rcv->comp;
658
#endif
659
0
}
Unexecuted instantiation: fuzz_parse_msg.c:init_dst_from_rcv
Unexecuted instantiation: dprint.c:init_dst_from_rcv
Unexecuted instantiation: error.c:init_dst_from_rcv
Unexecuted instantiation: main.c:init_dst_from_rcv
Unexecuted instantiation: modparam.c:init_dst_from_rcv
Unexecuted instantiation: msg_parser.c:init_dst_from_rcv
Unexecuted instantiation: nonsip_hooks.c:init_dst_from_rcv
Unexecuted instantiation: parse_addr_spec.c:init_dst_from_rcv
Unexecuted instantiation: parse_contact.c:init_dst_from_rcv
Unexecuted instantiation: parse_content.c:init_dst_from_rcv
Unexecuted instantiation: parse_cseq.c:init_dst_from_rcv
Unexecuted instantiation: parse_disposition.c:init_dst_from_rcv
Unexecuted instantiation: parse_diversion.c:init_dst_from_rcv
Unexecuted instantiation: parse_fline.c:init_dst_from_rcv
Unexecuted instantiation: parse_from.c:init_dst_from_rcv
Unexecuted instantiation: parse_identityinfo.c:init_dst_from_rcv
Unexecuted instantiation: parse_methods.c:init_dst_from_rcv
Unexecuted instantiation: parse_ppi_pai.c:init_dst_from_rcv
Unexecuted instantiation: parse_privacy.c:init_dst_from_rcv
Unexecuted instantiation: parse_refer_to.c:init_dst_from_rcv
Unexecuted instantiation: parse_rr.c:init_dst_from_rcv
Unexecuted instantiation: parse_to.c:init_dst_from_rcv
Unexecuted instantiation: parse_via.c:init_dst_from_rcv
Unexecuted instantiation: ppcfg.c:init_dst_from_rcv
Unexecuted instantiation: pt.c:init_dst_from_rcv
Unexecuted instantiation: pv_core.c:init_dst_from_rcv
Unexecuted instantiation: pvapi.c:init_dst_from_rcv
Unexecuted instantiation: q_malloc.c:init_dst_from_rcv
Unexecuted instantiation: raw_sock.c:init_dst_from_rcv
Unexecuted instantiation: re.c:init_dst_from_rcv
Unexecuted instantiation: receive.c:init_dst_from_rcv
Unexecuted instantiation: resolve.c:init_dst_from_rcv
Unexecuted instantiation: route.c:init_dst_from_rcv
Unexecuted instantiation: route_struct.c:init_dst_from_rcv
Unexecuted instantiation: rvalue.c:init_dst_from_rcv
Unexecuted instantiation: script_cb.c:init_dst_from_rcv
Unexecuted instantiation: sctp_core.c:init_dst_from_rcv
Unexecuted instantiation: sdp.c:init_dst_from_rcv
Unexecuted instantiation: sdp_helpr_funcs.c:init_dst_from_rcv
Unexecuted instantiation: select.c:init_dst_from_rcv
Unexecuted instantiation: select_core.c:init_dst_from_rcv
Unexecuted instantiation: shm.c:init_dst_from_rcv
Unexecuted instantiation: shm_init.c:init_dst_from_rcv
Unexecuted instantiation: socket_info.c:init_dst_from_rcv
Unexecuted instantiation: sr_module.c:init_dst_from_rcv
Unexecuted instantiation: srapi.c:init_dst_from_rcv
Unexecuted instantiation: strutils.c:init_dst_from_rcv
Unexecuted instantiation: switch.c:init_dst_from_rcv
Unexecuted instantiation: tcp_main.c:init_dst_from_rcv
Unexecuted instantiation: tcp_options.c:init_dst_from_rcv
Unexecuted instantiation: tcp_read.c:init_dst_from_rcv
Unexecuted instantiation: tcp_stats.c:init_dst_from_rcv
Unexecuted instantiation: timer.c:init_dst_from_rcv
Unexecuted instantiation: timer_proc.c:init_dst_from_rcv
Unexecuted instantiation: tls_hooks.c:init_dst_from_rcv
Unexecuted instantiation: tlsf_malloc.c:init_dst_from_rcv
Unexecuted instantiation: udp_server.c:init_dst_from_rcv
Unexecuted instantiation: usr_avp.c:init_dst_from_rcv
Unexecuted instantiation: ut.c:init_dst_from_rcv
Unexecuted instantiation: action.c:init_dst_from_rcv
Unexecuted instantiation: async_task.c:init_dst_from_rcv
Unexecuted instantiation: cfg.tab.c:init_dst_from_rcv
Unexecuted instantiation: cfg_core.c:init_dst_from_rcv
Unexecuted instantiation: cfg_select.c:init_dst_from_rcv
Unexecuted instantiation: cfg_struct.c:init_dst_from_rcv
Unexecuted instantiation: core_cmd.c:init_dst_from_rcv
Unexecuted instantiation: counters.c:init_dst_from_rcv
Unexecuted instantiation: daemonize.c:init_dst_from_rcv
Unexecuted instantiation: data_lump.c:init_dst_from_rcv
Unexecuted instantiation: data_lump_rpl.c:init_dst_from_rcv
Unexecuted instantiation: digest.c:init_dst_from_rcv
Unexecuted instantiation: dns_cache.c:init_dst_from_rcv
Unexecuted instantiation: dset.c:init_dst_from_rcv
Unexecuted instantiation: dst_blocklist.c:init_dst_from_rcv
Unexecuted instantiation: events.c:init_dst_from_rcv
Unexecuted instantiation: f_malloc.c:init_dst_from_rcv
Unexecuted instantiation: flags.c:init_dst_from_rcv
Unexecuted instantiation: fmsg.c:init_dst_from_rcv
Unexecuted instantiation: forward.c:init_dst_from_rcv
Unexecuted instantiation: hf.c:init_dst_from_rcv
Unexecuted instantiation: io_wait.c:init_dst_from_rcv
Unexecuted instantiation: ip_addr.c:init_dst_from_rcv
Unexecuted instantiation: kemi.c:init_dst_from_rcv
Unexecuted instantiation: lex.yy.c:init_dst_from_rcv
Unexecuted instantiation: local_timer.c:init_dst_from_rcv
Unexecuted instantiation: lvalue.c:init_dst_from_rcv
Unexecuted instantiation: mod_fix.c:init_dst_from_rcv
Unexecuted instantiation: msg_translator.c:init_dst_from_rcv
Unexecuted instantiation: onsend.c:init_dst_from_rcv
Unexecuted instantiation: parse_allow.c:init_dst_from_rcv
Unexecuted instantiation: parse_body.c:init_dst_from_rcv
Unexecuted instantiation: parse_date.c:init_dst_from_rcv
Unexecuted instantiation: parse_identity.c:init_dst_from_rcv
Unexecuted instantiation: parse_rpid.c:init_dst_from_rcv
Unexecuted instantiation: proxy.c:init_dst_from_rcv
Unexecuted instantiation: stun.c:init_dst_from_rcv
Unexecuted instantiation: fuzz_uri.c:init_dst_from_rcv
660
661
662
/**
663
 * match ip address with net address and bitmask
664
 * - return 0 on match, -1 otherwise
665
 */
666
int ip_addr_match_net(ip_addr_t *iaddr, ip_addr_t *naddr, int mask);
667
668
int si_get_signaling_data(struct socket_info *si, str **addr, str **port);
669
670
#endif