Coverage Report

Created: 2025-07-12 06:13

/src/opensips/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 opensips, a free SIP server.
7
 *
8
 * opensips 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
 * opensips 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
 * History:
23
 * --------
24
 *  2003-02-13  added struct dest_info (andrei)
25
 *  2003-04-06  all ports are stored/passed in host byte order now (andrei)
26
 */
27
28
/*!
29
 * \file
30
 * \brief ip address family related structures
31
 */
32
33
34
#ifndef ip_addr_h
35
#define ip_addr_h
36
37
#include <string.h>
38
#include <sys/types.h>
39
#include <sys/socket.h>
40
#include <netinet/in.h>
41
#include <arpa/inet.h>
42
#include <netdb.h>
43
#include "str.h"
44
45
46
#include "dprint.h"
47
48
0
#define MAX_RECV_BUFFER_SIZE  256*1024
49
0
#define MAX_SEND_BUFFER_SIZE  512*1024
50
0
#define BUFFER_INCREMENT  2048
51
52
#define HEX2I(c) \
53
0
  ( (((c)>='0') && ((c)<='9'))? (c)-'0' :  \
54
0
    (((c)>='A') && ((c)<='F'))? ((c)-'A')+10 : \
55
0
    (((c)>='a') && ((c)<='f'))? ((c)-'a')+10 : -1 )
56
57
58
enum sip_protos { PROTO_NONE = 0, PROTO_FIRST = 1, PROTO_UDP = 1, \
59
  PROTO_TCP, PROTO_TLS, PROTO_SCTP, PROTO_WS, PROTO_WSS, PROTO_IPSEC, PROTO_SIP_LAST = PROTO_IPSEC,
60
  PROTO_BIN, PROTO_BINS, PROTO_HEP_UDP, PROTO_HEP_TCP, PROTO_HEP_TLS, PROTO_SMPP, PROTO_MSRP,
61
  PROTO_MSRPS, PROTO_OTHER };
62
0
#define PROTO_LAST PROTO_OTHER
63
64
struct ip_addr{
65
  unsigned int af; /*!< address family: AF_INET6 or AF_INET */
66
  unsigned int len;    /*!< address len, 16 or 4 */
67
68
  /*! \brief 64 bits aligned address */
69
  union {
70
    unsigned long  addrl[16/sizeof(long)]; /*!< long format*/
71
    unsigned int   addr32[4];
72
    unsigned short addr16[8];
73
    unsigned char  addr[16];
74
  }u;
75
};
76
77
78
struct net{
79
  struct ip_addr ip;
80
  struct ip_addr mask;
81
};
82
83
union sockaddr_union{
84
    struct sockaddr     s;
85
    struct sockaddr_in  sin;
86
    struct sockaddr_in6 sin6;
87
};
88
89
90
91
enum si_flags { SI_NONE=0, SI_IS_IP=1, SI_IS_LO=2, SI_IS_MCAST=4,
92
  SI_IS_ANYCAST=8, SI_FRAG=16, SI_REUSEPORT=32, SI_INTERNAL=64, SI_ACCEPT_SUBDOMAIN_ALIAS=128 };
93
94
struct receive_info {
95
  struct ip_addr src_ip;
96
  struct ip_addr dst_ip;
97
  unsigned short src_port; /*!< host byte order */
98
  unsigned short dst_port; /*!< host byte order */
99
  int proto;
100
  unsigned int proto_reserved1; /*!< tcp stores the connection id here */
101
  unsigned int proto_reserved2;
102
  union sockaddr_union src_su; /*!< useful for replies*/
103
  const struct socket_info* bind_address; /*!< sock_info structure on which the msg was received*/
104
  /* no need for dst_su yet */
105
};
106
107
108
struct dest_info {
109
  int proto;
110
  unsigned int proto_reserved1; /*!< tcp stores the connection id here */
111
  union sockaddr_union to;
112
  const struct socket_info* send_sock;
113
};
114
115
116
struct socket_id {
117
  char* name;
118
  char* adv_name;
119
  char* tag;
120
  char* auto_scaling_profile;
121
  int adv_port;
122
  int proto;
123
  int port;
124
  int workers;
125
  int tos;
126
  enum si_flags flags;
127
  struct socket_id* next;
128
};
129
130
/* len of the sockaddr */
131
#ifdef HAVE_SOCKADDR_SA_LEN
132
#define sockaddru_len(su) ((su).s.sa_len)
133
#else
134
#define sockaddru_len(su) \
135
0
      (((su).s.sa_family==AF_INET6)?sizeof(struct sockaddr_in6):\
136
0
          sizeof(struct sockaddr_in))
137
#endif /* HAVE_SOCKADDR_SA_LEN*/
138
139
/*! \brief inits an ip_addr with the addr. info from a hostent structure
140
 * ip = struct ip_addr*
141
 * he= struct hostent*
142
 */
143
#define hostent2ip_addr(ip, he, addr_no) \
144
0
  do{ \
145
0
    (ip)->af=(he)->h_addrtype; \
146
0
    (ip)->len=(he)->h_length;  \
147
0
    memcpy((ip)->u.addr, (he)->h_addr_list[(addr_no)], (ip)->len); \
148
0
  }while(0)
149
150
151
#define get_su_info(_su, _ip_char, _port_no) \
152
0
  do { \
153
0
    struct ip_addr __ip; \
154
0
    sockaddr2ip_addr( &__ip, (struct sockaddr*)_su ); \
155
0
    _ip_char = ip_addr2a(&__ip); \
156
0
    _port_no = su_getport( (union sockaddr_union*)(void *)_su); \
157
0
  } while(0)
158
159
160
161
/* gets the protocol family corresponding to a specific address family
162
 * ( PF_INET - AF_INET, PF_INET6 - AF_INET6, af for others)
163
 */
164
0
#define AF2PF(af)   (((af)==AF_INET)?PF_INET:((af)==AF_INET6)?PF_INET6:(af))
165
166
/* check if a socket_info is marked as anycast */
167
0
#define is_anycast(_si) (_si->flags & SI_IS_ANYCAST)
168
169
/* checks if the given protocol is a SIP one (versus HEP, BIN, SMPP, etc) 
170
 * we rely here on the fact at all the SIP protos are in a sequance */
171
0
#define is_sip_proto(_proto) (PROTO_UDP<=(_proto) && (_proto)<=PROTO_SIP_LAST)
172
173
struct net* mk_net(const struct ip_addr* ip, struct ip_addr* mask);
174
struct net* mk_net_bitlen(const struct ip_addr* ip, unsigned int bitlen);
175
/* parse a (struct net) out of a CIDR v4 or v6 address such as 1.2.3.4/28 */
176
int mk_net_cidr(const str *cidr, struct net *out_net);
177
178
void print_ip(char* prefix, const struct ip_addr* ip, char* suffix);
179
void stdout_print_ip(struct ip_addr* ip);
180
void print_net(struct net* net);
181
182
int ip_addr_is_1918(str *s_ip, int check_rfc_6333);
183
184
#ifdef USE_MCAST
185
/*! \brief Returns 1 if the given address is a multicast address */
186
int is_mcast(struct ip_addr* ip);
187
#endif /* USE_MCAST */
188
189
/*! \brief returns 1 if ip & net.mask == net.ip ; 0 otherwise & -1 on error
190
  [ diff. address families ]) */
191
inline static int matchnet(struct ip_addr* ip, struct net* net)
192
0
{
193
0
  unsigned int r;
194
/* int ret;
195
196
  ret=-1; */
197
0
  if (ip->af == net->ip.af){
198
0
    for(r=0; r<ip->len/4; r++){ /* ipv4 & ipv6 addresses are
199
                     all multiple of 4*/
200
0
      if ((ip->u.addr32[r]&net->mask.u.addr32[r])!=
201
0
                             net->ip.u.addr32[r]){
202
0
        return 0;
203
0
      }
204
0
    }
205
0
    return 1;
206
0
  };
207
0
  return -1;
208
0
}
Unexecuted instantiation: fuzz_csv_parser.c:matchnet
Unexecuted instantiation: csv.c:matchnet
Unexecuted instantiation: dprint.c:matchnet
Unexecuted instantiation: pt.c:matchnet
Unexecuted instantiation: ut.c:matchnet
Unexecuted instantiation: statistics.c:matchnet
Unexecuted instantiation: route.c:matchnet
Unexecuted instantiation: globals.c:matchnet
Unexecuted instantiation: ipc.c:matchnet
Unexecuted instantiation: core_stats.c:matchnet
Unexecuted instantiation: route_struct.c:matchnet
Unexecuted instantiation: dset.c:matchnet
Unexecuted instantiation: pt_load.c:matchnet
Unexecuted instantiation: sr_module.c:matchnet
Unexecuted instantiation: action.c:matchnet
Unexecuted instantiation: db_insertq.c:matchnet
Unexecuted instantiation: db.c:matchnet
Unexecuted instantiation: proto_tcp.c:matchnet
Unexecuted instantiation: proto_udp.c:matchnet
Unexecuted instantiation: net_tcp_proc.c:matchnet
Unexecuted instantiation: net_tcp.c:matchnet
Unexecuted instantiation: tcp_common.c:matchnet
Unexecuted instantiation: net_udp.c:matchnet
Unexecuted instantiation: tcp_conn_profile.c:matchnet
Unexecuted instantiation: trans_trace.c:matchnet
Unexecuted instantiation: net_tcp_report.c:matchnet
Unexecuted instantiation: shm_mem.c:matchnet
Unexecuted instantiation: mi.c:matchnet
Unexecuted instantiation: item.c:matchnet
Unexecuted instantiation: msg_parser.c:matchnet
Unexecuted instantiation: parse_uri.c:matchnet
Unexecuted instantiation: parse_fline.c:matchnet
Unexecuted instantiation: parse_methods.c:matchnet
Unexecuted instantiation: parse_hname2.c:matchnet
Unexecuted instantiation: parse_content.c:matchnet
Unexecuted instantiation: hf.c:matchnet
Unexecuted instantiation: parse_to.c:matchnet
Unexecuted instantiation: parse_via.c:matchnet
Unexecuted instantiation: event_interface.c:matchnet
Unexecuted instantiation: receive.c:matchnet
Unexecuted instantiation: error.c:matchnet
Unexecuted instantiation: script_cb.c:matchnet
Unexecuted instantiation: ip_addr.c:matchnet
Unexecuted instantiation: data_lump_rpl.c:matchnet
Unexecuted instantiation: async.c:matchnet
Unexecuted instantiation: daemonize.c:matchnet
Unexecuted instantiation: timer.c:matchnet
Unexecuted instantiation: trace_api.c:matchnet
Unexecuted instantiation: mod_fix.c:matchnet
Unexecuted instantiation: reactor.c:matchnet
Unexecuted instantiation: strcommon.c:matchnet
Unexecuted instantiation: forward.c:matchnet
Unexecuted instantiation: xlog.c:matchnet
Unexecuted instantiation: blacklists.c:matchnet
Unexecuted instantiation: msg_callbacks.c:matchnet
Unexecuted instantiation: usr_avp.c:matchnet
Unexecuted instantiation: sl_cb.c:matchnet
Unexecuted instantiation: sdp_ops.c:matchnet
Unexecuted instantiation: resolve.c:matchnet
Unexecuted instantiation: io_wait.c:matchnet
Unexecuted instantiation: transformations.c:matchnet
Unexecuted instantiation: pvar.c:matchnet
Unexecuted instantiation: sr_module_deps.c:matchnet
Unexecuted instantiation: cfg_reload.c:matchnet
Unexecuted instantiation: socket_info.c:matchnet
Unexecuted instantiation: time_rec.c:matchnet
Unexecuted instantiation: data_lump.c:matchnet
Unexecuted instantiation: status_report.c:matchnet
Unexecuted instantiation: pt_scaling.c:matchnet
Unexecuted instantiation: name_alias.c:matchnet
Unexecuted instantiation: signals.c:matchnet
Unexecuted instantiation: flags.c:matchnet
Unexecuted instantiation: db_id.c:matchnet
Unexecuted instantiation: trans.c:matchnet
Unexecuted instantiation: sdp.c:matchnet
Unexecuted instantiation: sdp_helpr_funcs.c:matchnet
Unexecuted instantiation: digest_parser.c:matchnet
Unexecuted instantiation: param_parser.c:matchnet
Unexecuted instantiation: digest.c:matchnet
Unexecuted instantiation: parse_contact.c:matchnet
Unexecuted instantiation: parse_body.c:matchnet
Unexecuted instantiation: parse_security.c:matchnet
Unexecuted instantiation: parse_call_info.c:matchnet
Unexecuted instantiation: parse_event.c:matchnet
Unexecuted instantiation: parse_disposition.c:matchnet
Unexecuted instantiation: parse_authenticate.c:matchnet
Unexecuted instantiation: parser_f.c:matchnet
Unexecuted instantiation: parse_rpid.c:matchnet
Unexecuted instantiation: parse_ppi.c:matchnet
Unexecuted instantiation: parse_fcaps.c:matchnet
Unexecuted instantiation: parse_sst.c:matchnet
Unexecuted instantiation: parse_rr.c:matchnet
Unexecuted instantiation: parse_param.c:matchnet
Unexecuted instantiation: parse_diversion.c:matchnet
Unexecuted instantiation: parse_nameaddr.c:matchnet
Unexecuted instantiation: parse_expires.c:matchnet
Unexecuted instantiation: parse_refer_to.c:matchnet
Unexecuted instantiation: parse_from.c:matchnet
Unexecuted instantiation: parse_pai.c:matchnet
Unexecuted instantiation: evi_transport.c:matchnet
Unexecuted instantiation: msg_translator.c:matchnet
Unexecuted instantiation: md5utils.c:matchnet
Unexecuted instantiation: cfg.tab.c:matchnet
Unexecuted instantiation: modparam.c:matchnet
Unexecuted instantiation: crc.c:matchnet
Unexecuted instantiation: re.c:matchnet
Unexecuted instantiation: lex.yy.c:matchnet
Unexecuted instantiation: cfg_pp.c:matchnet
Unexecuted instantiation: proxy.c:matchnet
Unexecuted instantiation: shutdown.c:matchnet
Unexecuted instantiation: cmds.c:matchnet
Unexecuted instantiation: core_cmds.c:matchnet
Unexecuted instantiation: serialize.c:matchnet
Unexecuted instantiation: cachedb.c:matchnet
Unexecuted instantiation: cachedb_id.c:matchnet
209
210
211
212
213
/*! \brief inits an ip_addr pointer from a sockaddr structure*/
214
static inline void sockaddr2ip_addr(struct ip_addr* ip, const struct sockaddr* sa)
215
0
{
216
0
  void *copyfrom;
217
218
0
  switch(sa->sa_family){
219
0
  case AF_INET:
220
0
      ip->af=AF_INET;
221
0
      ip->len=4;
222
0
      copyfrom = &((struct sockaddr_in*)(void *)sa)->sin_addr;
223
0
      break;
224
0
  case AF_INET6:
225
0
      ip->af=AF_INET6;
226
0
      ip->len=16;
227
0
      copyfrom = &((struct sockaddr_in6*)(void *)sa)->sin6_addr;
228
0
      break;
229
0
  default:
230
0
      LM_CRIT("unknown address family %d\n", sa->sa_family);
231
      /* clear the structure to prevent uninitialized warnings */
232
0
      ip->af=sa->sa_family;
233
0
      return;
234
0
  }
235
0
  memcpy(ip->u.addr, copyfrom, ip->len);
236
0
}
Unexecuted instantiation: fuzz_csv_parser.c:sockaddr2ip_addr
Unexecuted instantiation: csv.c:sockaddr2ip_addr
Unexecuted instantiation: dprint.c:sockaddr2ip_addr
Unexecuted instantiation: pt.c:sockaddr2ip_addr
Unexecuted instantiation: ut.c:sockaddr2ip_addr
Unexecuted instantiation: statistics.c:sockaddr2ip_addr
Unexecuted instantiation: route.c:sockaddr2ip_addr
Unexecuted instantiation: globals.c:sockaddr2ip_addr
Unexecuted instantiation: ipc.c:sockaddr2ip_addr
Unexecuted instantiation: core_stats.c:sockaddr2ip_addr
Unexecuted instantiation: route_struct.c:sockaddr2ip_addr
Unexecuted instantiation: dset.c:sockaddr2ip_addr
Unexecuted instantiation: pt_load.c:sockaddr2ip_addr
Unexecuted instantiation: sr_module.c:sockaddr2ip_addr
Unexecuted instantiation: action.c:sockaddr2ip_addr
Unexecuted instantiation: db_insertq.c:sockaddr2ip_addr
Unexecuted instantiation: db.c:sockaddr2ip_addr
Unexecuted instantiation: proto_tcp.c:sockaddr2ip_addr
Unexecuted instantiation: proto_udp.c:sockaddr2ip_addr
Unexecuted instantiation: net_tcp_proc.c:sockaddr2ip_addr
Unexecuted instantiation: net_tcp.c:sockaddr2ip_addr
Unexecuted instantiation: tcp_common.c:sockaddr2ip_addr
Unexecuted instantiation: net_udp.c:sockaddr2ip_addr
Unexecuted instantiation: tcp_conn_profile.c:sockaddr2ip_addr
Unexecuted instantiation: trans_trace.c:sockaddr2ip_addr
Unexecuted instantiation: net_tcp_report.c:sockaddr2ip_addr
Unexecuted instantiation: shm_mem.c:sockaddr2ip_addr
Unexecuted instantiation: mi.c:sockaddr2ip_addr
Unexecuted instantiation: item.c:sockaddr2ip_addr
Unexecuted instantiation: msg_parser.c:sockaddr2ip_addr
Unexecuted instantiation: parse_uri.c:sockaddr2ip_addr
Unexecuted instantiation: parse_fline.c:sockaddr2ip_addr
Unexecuted instantiation: parse_methods.c:sockaddr2ip_addr
Unexecuted instantiation: parse_hname2.c:sockaddr2ip_addr
Unexecuted instantiation: parse_content.c:sockaddr2ip_addr
Unexecuted instantiation: hf.c:sockaddr2ip_addr
Unexecuted instantiation: parse_to.c:sockaddr2ip_addr
Unexecuted instantiation: parse_via.c:sockaddr2ip_addr
Unexecuted instantiation: event_interface.c:sockaddr2ip_addr
Unexecuted instantiation: receive.c:sockaddr2ip_addr
Unexecuted instantiation: error.c:sockaddr2ip_addr
Unexecuted instantiation: script_cb.c:sockaddr2ip_addr
Unexecuted instantiation: ip_addr.c:sockaddr2ip_addr
Unexecuted instantiation: data_lump_rpl.c:sockaddr2ip_addr
Unexecuted instantiation: async.c:sockaddr2ip_addr
Unexecuted instantiation: daemonize.c:sockaddr2ip_addr
Unexecuted instantiation: timer.c:sockaddr2ip_addr
Unexecuted instantiation: trace_api.c:sockaddr2ip_addr
Unexecuted instantiation: mod_fix.c:sockaddr2ip_addr
Unexecuted instantiation: reactor.c:sockaddr2ip_addr
Unexecuted instantiation: strcommon.c:sockaddr2ip_addr
Unexecuted instantiation: forward.c:sockaddr2ip_addr
Unexecuted instantiation: xlog.c:sockaddr2ip_addr
Unexecuted instantiation: blacklists.c:sockaddr2ip_addr
Unexecuted instantiation: msg_callbacks.c:sockaddr2ip_addr
Unexecuted instantiation: usr_avp.c:sockaddr2ip_addr
Unexecuted instantiation: sl_cb.c:sockaddr2ip_addr
Unexecuted instantiation: sdp_ops.c:sockaddr2ip_addr
Unexecuted instantiation: resolve.c:sockaddr2ip_addr
Unexecuted instantiation: io_wait.c:sockaddr2ip_addr
Unexecuted instantiation: transformations.c:sockaddr2ip_addr
Unexecuted instantiation: pvar.c:sockaddr2ip_addr
Unexecuted instantiation: sr_module_deps.c:sockaddr2ip_addr
Unexecuted instantiation: cfg_reload.c:sockaddr2ip_addr
Unexecuted instantiation: socket_info.c:sockaddr2ip_addr
Unexecuted instantiation: time_rec.c:sockaddr2ip_addr
Unexecuted instantiation: data_lump.c:sockaddr2ip_addr
Unexecuted instantiation: status_report.c:sockaddr2ip_addr
Unexecuted instantiation: pt_scaling.c:sockaddr2ip_addr
Unexecuted instantiation: name_alias.c:sockaddr2ip_addr
Unexecuted instantiation: signals.c:sockaddr2ip_addr
Unexecuted instantiation: flags.c:sockaddr2ip_addr
Unexecuted instantiation: db_id.c:sockaddr2ip_addr
Unexecuted instantiation: trans.c:sockaddr2ip_addr
Unexecuted instantiation: sdp.c:sockaddr2ip_addr
Unexecuted instantiation: sdp_helpr_funcs.c:sockaddr2ip_addr
Unexecuted instantiation: digest_parser.c:sockaddr2ip_addr
Unexecuted instantiation: param_parser.c:sockaddr2ip_addr
Unexecuted instantiation: digest.c:sockaddr2ip_addr
Unexecuted instantiation: parse_contact.c:sockaddr2ip_addr
Unexecuted instantiation: parse_body.c:sockaddr2ip_addr
Unexecuted instantiation: parse_security.c:sockaddr2ip_addr
Unexecuted instantiation: parse_call_info.c:sockaddr2ip_addr
Unexecuted instantiation: parse_event.c:sockaddr2ip_addr
Unexecuted instantiation: parse_disposition.c:sockaddr2ip_addr
Unexecuted instantiation: parse_authenticate.c:sockaddr2ip_addr
Unexecuted instantiation: parser_f.c:sockaddr2ip_addr
Unexecuted instantiation: parse_rpid.c:sockaddr2ip_addr
Unexecuted instantiation: parse_ppi.c:sockaddr2ip_addr
Unexecuted instantiation: parse_fcaps.c:sockaddr2ip_addr
Unexecuted instantiation: parse_sst.c:sockaddr2ip_addr
Unexecuted instantiation: parse_rr.c:sockaddr2ip_addr
Unexecuted instantiation: parse_param.c:sockaddr2ip_addr
Unexecuted instantiation: parse_diversion.c:sockaddr2ip_addr
Unexecuted instantiation: parse_nameaddr.c:sockaddr2ip_addr
Unexecuted instantiation: parse_expires.c:sockaddr2ip_addr
Unexecuted instantiation: parse_refer_to.c:sockaddr2ip_addr
Unexecuted instantiation: parse_from.c:sockaddr2ip_addr
Unexecuted instantiation: parse_pai.c:sockaddr2ip_addr
Unexecuted instantiation: evi_transport.c:sockaddr2ip_addr
Unexecuted instantiation: msg_translator.c:sockaddr2ip_addr
Unexecuted instantiation: md5utils.c:sockaddr2ip_addr
Unexecuted instantiation: cfg.tab.c:sockaddr2ip_addr
Unexecuted instantiation: modparam.c:sockaddr2ip_addr
Unexecuted instantiation: crc.c:sockaddr2ip_addr
Unexecuted instantiation: re.c:sockaddr2ip_addr
Unexecuted instantiation: lex.yy.c:sockaddr2ip_addr
Unexecuted instantiation: cfg_pp.c:sockaddr2ip_addr
Unexecuted instantiation: proxy.c:sockaddr2ip_addr
Unexecuted instantiation: shutdown.c:sockaddr2ip_addr
Unexecuted instantiation: cmds.c:sockaddr2ip_addr
Unexecuted instantiation: core_cmds.c:sockaddr2ip_addr
Unexecuted instantiation: serialize.c:sockaddr2ip_addr
Unexecuted instantiation: cachedb.c:sockaddr2ip_addr
Unexecuted instantiation: cachedb_id.c:sockaddr2ip_addr
237
238
239
240
/*! \brief compare 2 ip_addrs (both args are pointers)*/
241
#define ip_addr_cmp(ip1, ip2) \
242
0
  (((ip1)->af==(ip2)->af)&& \
243
0
    (memcmp((ip1)->u.addr, (ip2)->u.addr, (ip1)->len)==0))
244
245
246
247
/*! \brief compare 2 sockaddr_unions */
248
static inline int su_cmp(union sockaddr_union* s1, union sockaddr_union* s2)
249
0
{
250
0
  if (s1->s.sa_family!=s2->s.sa_family) return 0;
251
0
  switch(s1->s.sa_family){
252
0
    case AF_INET:
253
0
      return (s1->sin.sin_port==s2->sin.sin_port)&&
254
0
          (memcmp(&s1->sin.sin_addr, &s2->sin.sin_addr, 4)==0);
255
0
    case AF_INET6:
256
0
      return (s1->sin6.sin6_port==s2->sin6.sin6_port)&&
257
0
          (memcmp(&s1->sin6.sin6_addr, &s2->sin6.sin6_addr, 16)==0);
258
0
    default:
259
0
      LM_CRIT("unknown address family %d\n",
260
0
            s1->s.sa_family);
261
0
      return 0;
262
0
  }
263
0
}
Unexecuted instantiation: fuzz_csv_parser.c:su_cmp
Unexecuted instantiation: csv.c:su_cmp
Unexecuted instantiation: dprint.c:su_cmp
Unexecuted instantiation: pt.c:su_cmp
Unexecuted instantiation: ut.c:su_cmp
Unexecuted instantiation: statistics.c:su_cmp
Unexecuted instantiation: route.c:su_cmp
Unexecuted instantiation: globals.c:su_cmp
Unexecuted instantiation: ipc.c:su_cmp
Unexecuted instantiation: core_stats.c:su_cmp
Unexecuted instantiation: route_struct.c:su_cmp
Unexecuted instantiation: dset.c:su_cmp
Unexecuted instantiation: pt_load.c:su_cmp
Unexecuted instantiation: sr_module.c:su_cmp
Unexecuted instantiation: action.c:su_cmp
Unexecuted instantiation: db_insertq.c:su_cmp
Unexecuted instantiation: db.c:su_cmp
Unexecuted instantiation: proto_tcp.c:su_cmp
Unexecuted instantiation: proto_udp.c:su_cmp
Unexecuted instantiation: net_tcp_proc.c:su_cmp
Unexecuted instantiation: net_tcp.c:su_cmp
Unexecuted instantiation: tcp_common.c:su_cmp
Unexecuted instantiation: net_udp.c:su_cmp
Unexecuted instantiation: tcp_conn_profile.c:su_cmp
Unexecuted instantiation: trans_trace.c:su_cmp
Unexecuted instantiation: net_tcp_report.c:su_cmp
Unexecuted instantiation: shm_mem.c:su_cmp
Unexecuted instantiation: mi.c:su_cmp
Unexecuted instantiation: item.c:su_cmp
Unexecuted instantiation: msg_parser.c:su_cmp
Unexecuted instantiation: parse_uri.c:su_cmp
Unexecuted instantiation: parse_fline.c:su_cmp
Unexecuted instantiation: parse_methods.c:su_cmp
Unexecuted instantiation: parse_hname2.c:su_cmp
Unexecuted instantiation: parse_content.c:su_cmp
Unexecuted instantiation: hf.c:su_cmp
Unexecuted instantiation: parse_to.c:su_cmp
Unexecuted instantiation: parse_via.c:su_cmp
Unexecuted instantiation: event_interface.c:su_cmp
Unexecuted instantiation: receive.c:su_cmp
Unexecuted instantiation: error.c:su_cmp
Unexecuted instantiation: script_cb.c:su_cmp
Unexecuted instantiation: ip_addr.c:su_cmp
Unexecuted instantiation: data_lump_rpl.c:su_cmp
Unexecuted instantiation: async.c:su_cmp
Unexecuted instantiation: daemonize.c:su_cmp
Unexecuted instantiation: timer.c:su_cmp
Unexecuted instantiation: trace_api.c:su_cmp
Unexecuted instantiation: mod_fix.c:su_cmp
Unexecuted instantiation: reactor.c:su_cmp
Unexecuted instantiation: strcommon.c:su_cmp
Unexecuted instantiation: forward.c:su_cmp
Unexecuted instantiation: xlog.c:su_cmp
Unexecuted instantiation: blacklists.c:su_cmp
Unexecuted instantiation: msg_callbacks.c:su_cmp
Unexecuted instantiation: usr_avp.c:su_cmp
Unexecuted instantiation: sl_cb.c:su_cmp
Unexecuted instantiation: sdp_ops.c:su_cmp
Unexecuted instantiation: resolve.c:su_cmp
Unexecuted instantiation: io_wait.c:su_cmp
Unexecuted instantiation: transformations.c:su_cmp
Unexecuted instantiation: pvar.c:su_cmp
Unexecuted instantiation: sr_module_deps.c:su_cmp
Unexecuted instantiation: cfg_reload.c:su_cmp
Unexecuted instantiation: socket_info.c:su_cmp
Unexecuted instantiation: time_rec.c:su_cmp
Unexecuted instantiation: data_lump.c:su_cmp
Unexecuted instantiation: status_report.c:su_cmp
Unexecuted instantiation: pt_scaling.c:su_cmp
Unexecuted instantiation: name_alias.c:su_cmp
Unexecuted instantiation: signals.c:su_cmp
Unexecuted instantiation: flags.c:su_cmp
Unexecuted instantiation: db_id.c:su_cmp
Unexecuted instantiation: trans.c:su_cmp
Unexecuted instantiation: sdp.c:su_cmp
Unexecuted instantiation: sdp_helpr_funcs.c:su_cmp
Unexecuted instantiation: digest_parser.c:su_cmp
Unexecuted instantiation: param_parser.c:su_cmp
Unexecuted instantiation: digest.c:su_cmp
Unexecuted instantiation: parse_contact.c:su_cmp
Unexecuted instantiation: parse_body.c:su_cmp
Unexecuted instantiation: parse_security.c:su_cmp
Unexecuted instantiation: parse_call_info.c:su_cmp
Unexecuted instantiation: parse_event.c:su_cmp
Unexecuted instantiation: parse_disposition.c:su_cmp
Unexecuted instantiation: parse_authenticate.c:su_cmp
Unexecuted instantiation: parser_f.c:su_cmp
Unexecuted instantiation: parse_rpid.c:su_cmp
Unexecuted instantiation: parse_ppi.c:su_cmp
Unexecuted instantiation: parse_fcaps.c:su_cmp
Unexecuted instantiation: parse_sst.c:su_cmp
Unexecuted instantiation: parse_rr.c:su_cmp
Unexecuted instantiation: parse_param.c:su_cmp
Unexecuted instantiation: parse_diversion.c:su_cmp
Unexecuted instantiation: parse_nameaddr.c:su_cmp
Unexecuted instantiation: parse_expires.c:su_cmp
Unexecuted instantiation: parse_refer_to.c:su_cmp
Unexecuted instantiation: parse_from.c:su_cmp
Unexecuted instantiation: parse_pai.c:su_cmp
Unexecuted instantiation: evi_transport.c:su_cmp
Unexecuted instantiation: msg_translator.c:su_cmp
Unexecuted instantiation: md5utils.c:su_cmp
Unexecuted instantiation: cfg.tab.c:su_cmp
Unexecuted instantiation: modparam.c:su_cmp
Unexecuted instantiation: crc.c:su_cmp
Unexecuted instantiation: re.c:su_cmp
Unexecuted instantiation: lex.yy.c:su_cmp
Unexecuted instantiation: cfg_pp.c:su_cmp
Unexecuted instantiation: proxy.c:su_cmp
Unexecuted instantiation: shutdown.c:su_cmp
Unexecuted instantiation: cmds.c:su_cmp
Unexecuted instantiation: core_cmds.c:su_cmp
Unexecuted instantiation: serialize.c:su_cmp
Unexecuted instantiation: cachedb.c:su_cmp
Unexecuted instantiation: cachedb_id.c:su_cmp
264
265
266
267
/*! \brief gets the port number (host byte order) */
268
static inline unsigned short su_getport(const union sockaddr_union* su)
269
0
{
270
0
  if(su==0)
271
0
    return 0;
272
273
0
  switch(su->s.sa_family){
274
0
    case AF_INET:
275
0
      return ntohs(su->sin.sin_port);
276
0
    case AF_INET6:
277
0
      return ntohs(su->sin6.sin6_port);
278
0
    default:
279
0
      LM_CRIT("unknown address family %d\n", su->s.sa_family);
280
0
      return 0;
281
0
  }
282
0
}
Unexecuted instantiation: fuzz_csv_parser.c:su_getport
Unexecuted instantiation: csv.c:su_getport
Unexecuted instantiation: dprint.c:su_getport
Unexecuted instantiation: pt.c:su_getport
Unexecuted instantiation: ut.c:su_getport
Unexecuted instantiation: statistics.c:su_getport
Unexecuted instantiation: route.c:su_getport
Unexecuted instantiation: globals.c:su_getport
Unexecuted instantiation: ipc.c:su_getport
Unexecuted instantiation: core_stats.c:su_getport
Unexecuted instantiation: route_struct.c:su_getport
Unexecuted instantiation: dset.c:su_getport
Unexecuted instantiation: pt_load.c:su_getport
Unexecuted instantiation: sr_module.c:su_getport
Unexecuted instantiation: action.c:su_getport
Unexecuted instantiation: db_insertq.c:su_getport
Unexecuted instantiation: db.c:su_getport
Unexecuted instantiation: proto_tcp.c:su_getport
Unexecuted instantiation: proto_udp.c:su_getport
Unexecuted instantiation: net_tcp_proc.c:su_getport
Unexecuted instantiation: net_tcp.c:su_getport
Unexecuted instantiation: tcp_common.c:su_getport
Unexecuted instantiation: net_udp.c:su_getport
Unexecuted instantiation: tcp_conn_profile.c:su_getport
Unexecuted instantiation: trans_trace.c:su_getport
Unexecuted instantiation: net_tcp_report.c:su_getport
Unexecuted instantiation: shm_mem.c:su_getport
Unexecuted instantiation: mi.c:su_getport
Unexecuted instantiation: item.c:su_getport
Unexecuted instantiation: msg_parser.c:su_getport
Unexecuted instantiation: parse_uri.c:su_getport
Unexecuted instantiation: parse_fline.c:su_getport
Unexecuted instantiation: parse_methods.c:su_getport
Unexecuted instantiation: parse_hname2.c:su_getport
Unexecuted instantiation: parse_content.c:su_getport
Unexecuted instantiation: hf.c:su_getport
Unexecuted instantiation: parse_to.c:su_getport
Unexecuted instantiation: parse_via.c:su_getport
Unexecuted instantiation: event_interface.c:su_getport
Unexecuted instantiation: receive.c:su_getport
Unexecuted instantiation: error.c:su_getport
Unexecuted instantiation: script_cb.c:su_getport
Unexecuted instantiation: ip_addr.c:su_getport
Unexecuted instantiation: data_lump_rpl.c:su_getport
Unexecuted instantiation: async.c:su_getport
Unexecuted instantiation: daemonize.c:su_getport
Unexecuted instantiation: timer.c:su_getport
Unexecuted instantiation: trace_api.c:su_getport
Unexecuted instantiation: mod_fix.c:su_getport
Unexecuted instantiation: reactor.c:su_getport
Unexecuted instantiation: strcommon.c:su_getport
Unexecuted instantiation: forward.c:su_getport
Unexecuted instantiation: xlog.c:su_getport
Unexecuted instantiation: blacklists.c:su_getport
Unexecuted instantiation: msg_callbacks.c:su_getport
Unexecuted instantiation: usr_avp.c:su_getport
Unexecuted instantiation: sl_cb.c:su_getport
Unexecuted instantiation: sdp_ops.c:su_getport
Unexecuted instantiation: resolve.c:su_getport
Unexecuted instantiation: io_wait.c:su_getport
Unexecuted instantiation: transformations.c:su_getport
Unexecuted instantiation: pvar.c:su_getport
Unexecuted instantiation: sr_module_deps.c:su_getport
Unexecuted instantiation: cfg_reload.c:su_getport
Unexecuted instantiation: socket_info.c:su_getport
Unexecuted instantiation: time_rec.c:su_getport
Unexecuted instantiation: data_lump.c:su_getport
Unexecuted instantiation: status_report.c:su_getport
Unexecuted instantiation: pt_scaling.c:su_getport
Unexecuted instantiation: name_alias.c:su_getport
Unexecuted instantiation: signals.c:su_getport
Unexecuted instantiation: flags.c:su_getport
Unexecuted instantiation: db_id.c:su_getport
Unexecuted instantiation: trans.c:su_getport
Unexecuted instantiation: sdp.c:su_getport
Unexecuted instantiation: sdp_helpr_funcs.c:su_getport
Unexecuted instantiation: digest_parser.c:su_getport
Unexecuted instantiation: param_parser.c:su_getport
Unexecuted instantiation: digest.c:su_getport
Unexecuted instantiation: parse_contact.c:su_getport
Unexecuted instantiation: parse_body.c:su_getport
Unexecuted instantiation: parse_security.c:su_getport
Unexecuted instantiation: parse_call_info.c:su_getport
Unexecuted instantiation: parse_event.c:su_getport
Unexecuted instantiation: parse_disposition.c:su_getport
Unexecuted instantiation: parse_authenticate.c:su_getport
Unexecuted instantiation: parser_f.c:su_getport
Unexecuted instantiation: parse_rpid.c:su_getport
Unexecuted instantiation: parse_ppi.c:su_getport
Unexecuted instantiation: parse_fcaps.c:su_getport
Unexecuted instantiation: parse_sst.c:su_getport
Unexecuted instantiation: parse_rr.c:su_getport
Unexecuted instantiation: parse_param.c:su_getport
Unexecuted instantiation: parse_diversion.c:su_getport
Unexecuted instantiation: parse_nameaddr.c:su_getport
Unexecuted instantiation: parse_expires.c:su_getport
Unexecuted instantiation: parse_refer_to.c:su_getport
Unexecuted instantiation: parse_from.c:su_getport
Unexecuted instantiation: parse_pai.c:su_getport
Unexecuted instantiation: evi_transport.c:su_getport
Unexecuted instantiation: msg_translator.c:su_getport
Unexecuted instantiation: md5utils.c:su_getport
Unexecuted instantiation: cfg.tab.c:su_getport
Unexecuted instantiation: modparam.c:su_getport
Unexecuted instantiation: crc.c:su_getport
Unexecuted instantiation: re.c:su_getport
Unexecuted instantiation: lex.yy.c:su_getport
Unexecuted instantiation: cfg_pp.c:su_getport
Unexecuted instantiation: proxy.c:su_getport
Unexecuted instantiation: shutdown.c:su_getport
Unexecuted instantiation: cmds.c:su_getport
Unexecuted instantiation: core_cmds.c:su_getport
Unexecuted instantiation: serialize.c:su_getport
Unexecuted instantiation: cachedb.c:su_getport
Unexecuted instantiation: cachedb_id.c:su_getport
283
284
/*! \brief sets the port number (host byte order) */
285
static inline void su_setport(union sockaddr_union* su, unsigned short port)
286
0
{
287
0
  switch(su->s.sa_family){
288
0
    case AF_INET:
289
0
      su->sin.sin_port=htons(port);
290
0
      break;
291
0
    case AF_INET6:
292
0
       su->sin6.sin6_port=htons(port);
293
0
       break;
294
0
    default:
295
0
      LM_CRIT("unknown address family %d\n", su->s.sa_family);
296
0
  }
297
0
}
Unexecuted instantiation: fuzz_csv_parser.c:su_setport
Unexecuted instantiation: csv.c:su_setport
Unexecuted instantiation: dprint.c:su_setport
Unexecuted instantiation: pt.c:su_setport
Unexecuted instantiation: ut.c:su_setport
Unexecuted instantiation: statistics.c:su_setport
Unexecuted instantiation: route.c:su_setport
Unexecuted instantiation: globals.c:su_setport
Unexecuted instantiation: ipc.c:su_setport
Unexecuted instantiation: core_stats.c:su_setport
Unexecuted instantiation: route_struct.c:su_setport
Unexecuted instantiation: dset.c:su_setport
Unexecuted instantiation: pt_load.c:su_setport
Unexecuted instantiation: sr_module.c:su_setport
Unexecuted instantiation: action.c:su_setport
Unexecuted instantiation: db_insertq.c:su_setport
Unexecuted instantiation: db.c:su_setport
Unexecuted instantiation: proto_tcp.c:su_setport
Unexecuted instantiation: proto_udp.c:su_setport
Unexecuted instantiation: net_tcp_proc.c:su_setport
Unexecuted instantiation: net_tcp.c:su_setport
Unexecuted instantiation: tcp_common.c:su_setport
Unexecuted instantiation: net_udp.c:su_setport
Unexecuted instantiation: tcp_conn_profile.c:su_setport
Unexecuted instantiation: trans_trace.c:su_setport
Unexecuted instantiation: net_tcp_report.c:su_setport
Unexecuted instantiation: shm_mem.c:su_setport
Unexecuted instantiation: mi.c:su_setport
Unexecuted instantiation: item.c:su_setport
Unexecuted instantiation: msg_parser.c:su_setport
Unexecuted instantiation: parse_uri.c:su_setport
Unexecuted instantiation: parse_fline.c:su_setport
Unexecuted instantiation: parse_methods.c:su_setport
Unexecuted instantiation: parse_hname2.c:su_setport
Unexecuted instantiation: parse_content.c:su_setport
Unexecuted instantiation: hf.c:su_setport
Unexecuted instantiation: parse_to.c:su_setport
Unexecuted instantiation: parse_via.c:su_setport
Unexecuted instantiation: event_interface.c:su_setport
Unexecuted instantiation: receive.c:su_setport
Unexecuted instantiation: error.c:su_setport
Unexecuted instantiation: script_cb.c:su_setport
Unexecuted instantiation: ip_addr.c:su_setport
Unexecuted instantiation: data_lump_rpl.c:su_setport
Unexecuted instantiation: async.c:su_setport
Unexecuted instantiation: daemonize.c:su_setport
Unexecuted instantiation: timer.c:su_setport
Unexecuted instantiation: trace_api.c:su_setport
Unexecuted instantiation: mod_fix.c:su_setport
Unexecuted instantiation: reactor.c:su_setport
Unexecuted instantiation: strcommon.c:su_setport
Unexecuted instantiation: forward.c:su_setport
Unexecuted instantiation: xlog.c:su_setport
Unexecuted instantiation: blacklists.c:su_setport
Unexecuted instantiation: msg_callbacks.c:su_setport
Unexecuted instantiation: usr_avp.c:su_setport
Unexecuted instantiation: sl_cb.c:su_setport
Unexecuted instantiation: sdp_ops.c:su_setport
Unexecuted instantiation: resolve.c:su_setport
Unexecuted instantiation: io_wait.c:su_setport
Unexecuted instantiation: transformations.c:su_setport
Unexecuted instantiation: pvar.c:su_setport
Unexecuted instantiation: sr_module_deps.c:su_setport
Unexecuted instantiation: cfg_reload.c:su_setport
Unexecuted instantiation: socket_info.c:su_setport
Unexecuted instantiation: time_rec.c:su_setport
Unexecuted instantiation: data_lump.c:su_setport
Unexecuted instantiation: status_report.c:su_setport
Unexecuted instantiation: pt_scaling.c:su_setport
Unexecuted instantiation: name_alias.c:su_setport
Unexecuted instantiation: signals.c:su_setport
Unexecuted instantiation: flags.c:su_setport
Unexecuted instantiation: db_id.c:su_setport
Unexecuted instantiation: trans.c:su_setport
Unexecuted instantiation: sdp.c:su_setport
Unexecuted instantiation: sdp_helpr_funcs.c:su_setport
Unexecuted instantiation: digest_parser.c:su_setport
Unexecuted instantiation: param_parser.c:su_setport
Unexecuted instantiation: digest.c:su_setport
Unexecuted instantiation: parse_contact.c:su_setport
Unexecuted instantiation: parse_body.c:su_setport
Unexecuted instantiation: parse_security.c:su_setport
Unexecuted instantiation: parse_call_info.c:su_setport
Unexecuted instantiation: parse_event.c:su_setport
Unexecuted instantiation: parse_disposition.c:su_setport
Unexecuted instantiation: parse_authenticate.c:su_setport
Unexecuted instantiation: parser_f.c:su_setport
Unexecuted instantiation: parse_rpid.c:su_setport
Unexecuted instantiation: parse_ppi.c:su_setport
Unexecuted instantiation: parse_fcaps.c:su_setport
Unexecuted instantiation: parse_sst.c:su_setport
Unexecuted instantiation: parse_rr.c:su_setport
Unexecuted instantiation: parse_param.c:su_setport
Unexecuted instantiation: parse_diversion.c:su_setport
Unexecuted instantiation: parse_nameaddr.c:su_setport
Unexecuted instantiation: parse_expires.c:su_setport
Unexecuted instantiation: parse_refer_to.c:su_setport
Unexecuted instantiation: parse_from.c:su_setport
Unexecuted instantiation: parse_pai.c:su_setport
Unexecuted instantiation: evi_transport.c:su_setport
Unexecuted instantiation: msg_translator.c:su_setport
Unexecuted instantiation: md5utils.c:su_setport
Unexecuted instantiation: cfg.tab.c:su_setport
Unexecuted instantiation: modparam.c:su_setport
Unexecuted instantiation: crc.c:su_setport
Unexecuted instantiation: re.c:su_setport
Unexecuted instantiation: lex.yy.c:su_setport
Unexecuted instantiation: cfg_pp.c:su_setport
Unexecuted instantiation: proxy.c:su_setport
Unexecuted instantiation: shutdown.c:su_setport
Unexecuted instantiation: cmds.c:su_setport
Unexecuted instantiation: core_cmds.c:su_setport
Unexecuted instantiation: serialize.c:su_setport
Unexecuted instantiation: cachedb.c:su_setport
Unexecuted instantiation: cachedb_id.c:su_setport
298
299
/*! \brief inits an ip_addr pointer from a sockaddr_union ip address */
300
static inline void su2ip_addr(struct ip_addr* ip, const union sockaddr_union* su)
301
0
{
302
0
  switch(su->s.sa_family){
303
0
  case AF_INET:
304
0
    ip->af=AF_INET;
305
0
    ip->len=4;
306
0
    memcpy(ip->u.addr, &su->sin.sin_addr, 4);
307
0
    break;
308
0
  case AF_INET6:
309
0
    ip->af=AF_INET6;
310
0
    ip->len=16;
311
0
    memcpy(ip->u.addr, &su->sin6.sin6_addr, 16);
312
0
    break;
313
0
  default:
314
0
    LM_CRIT("Unknown address family %d\n", su->s.sa_family);
315
0
    ip->af=0;
316
0
    ip->len=0;
317
0
  }
318
0
}
Unexecuted instantiation: fuzz_csv_parser.c:su2ip_addr
Unexecuted instantiation: csv.c:su2ip_addr
Unexecuted instantiation: dprint.c:su2ip_addr
Unexecuted instantiation: pt.c:su2ip_addr
Unexecuted instantiation: ut.c:su2ip_addr
Unexecuted instantiation: statistics.c:su2ip_addr
Unexecuted instantiation: route.c:su2ip_addr
Unexecuted instantiation: globals.c:su2ip_addr
Unexecuted instantiation: ipc.c:su2ip_addr
Unexecuted instantiation: core_stats.c:su2ip_addr
Unexecuted instantiation: route_struct.c:su2ip_addr
Unexecuted instantiation: dset.c:su2ip_addr
Unexecuted instantiation: pt_load.c:su2ip_addr
Unexecuted instantiation: sr_module.c:su2ip_addr
Unexecuted instantiation: action.c:su2ip_addr
Unexecuted instantiation: db_insertq.c:su2ip_addr
Unexecuted instantiation: db.c:su2ip_addr
Unexecuted instantiation: proto_tcp.c:su2ip_addr
Unexecuted instantiation: proto_udp.c:su2ip_addr
Unexecuted instantiation: net_tcp_proc.c:su2ip_addr
Unexecuted instantiation: net_tcp.c:su2ip_addr
Unexecuted instantiation: tcp_common.c:su2ip_addr
Unexecuted instantiation: net_udp.c:su2ip_addr
Unexecuted instantiation: tcp_conn_profile.c:su2ip_addr
Unexecuted instantiation: trans_trace.c:su2ip_addr
Unexecuted instantiation: net_tcp_report.c:su2ip_addr
Unexecuted instantiation: shm_mem.c:su2ip_addr
Unexecuted instantiation: mi.c:su2ip_addr
Unexecuted instantiation: item.c:su2ip_addr
Unexecuted instantiation: msg_parser.c:su2ip_addr
Unexecuted instantiation: parse_uri.c:su2ip_addr
Unexecuted instantiation: parse_fline.c:su2ip_addr
Unexecuted instantiation: parse_methods.c:su2ip_addr
Unexecuted instantiation: parse_hname2.c:su2ip_addr
Unexecuted instantiation: parse_content.c:su2ip_addr
Unexecuted instantiation: hf.c:su2ip_addr
Unexecuted instantiation: parse_to.c:su2ip_addr
Unexecuted instantiation: parse_via.c:su2ip_addr
Unexecuted instantiation: event_interface.c:su2ip_addr
Unexecuted instantiation: receive.c:su2ip_addr
Unexecuted instantiation: error.c:su2ip_addr
Unexecuted instantiation: script_cb.c:su2ip_addr
Unexecuted instantiation: ip_addr.c:su2ip_addr
Unexecuted instantiation: data_lump_rpl.c:su2ip_addr
Unexecuted instantiation: async.c:su2ip_addr
Unexecuted instantiation: daemonize.c:su2ip_addr
Unexecuted instantiation: timer.c:su2ip_addr
Unexecuted instantiation: trace_api.c:su2ip_addr
Unexecuted instantiation: mod_fix.c:su2ip_addr
Unexecuted instantiation: reactor.c:su2ip_addr
Unexecuted instantiation: strcommon.c:su2ip_addr
Unexecuted instantiation: forward.c:su2ip_addr
Unexecuted instantiation: xlog.c:su2ip_addr
Unexecuted instantiation: blacklists.c:su2ip_addr
Unexecuted instantiation: msg_callbacks.c:su2ip_addr
Unexecuted instantiation: usr_avp.c:su2ip_addr
Unexecuted instantiation: sl_cb.c:su2ip_addr
Unexecuted instantiation: sdp_ops.c:su2ip_addr
Unexecuted instantiation: resolve.c:su2ip_addr
Unexecuted instantiation: io_wait.c:su2ip_addr
Unexecuted instantiation: transformations.c:su2ip_addr
Unexecuted instantiation: pvar.c:su2ip_addr
Unexecuted instantiation: sr_module_deps.c:su2ip_addr
Unexecuted instantiation: cfg_reload.c:su2ip_addr
Unexecuted instantiation: socket_info.c:su2ip_addr
Unexecuted instantiation: time_rec.c:su2ip_addr
Unexecuted instantiation: data_lump.c:su2ip_addr
Unexecuted instantiation: status_report.c:su2ip_addr
Unexecuted instantiation: pt_scaling.c:su2ip_addr
Unexecuted instantiation: name_alias.c:su2ip_addr
Unexecuted instantiation: signals.c:su2ip_addr
Unexecuted instantiation: flags.c:su2ip_addr
Unexecuted instantiation: db_id.c:su2ip_addr
Unexecuted instantiation: trans.c:su2ip_addr
Unexecuted instantiation: sdp.c:su2ip_addr
Unexecuted instantiation: sdp_helpr_funcs.c:su2ip_addr
Unexecuted instantiation: digest_parser.c:su2ip_addr
Unexecuted instantiation: param_parser.c:su2ip_addr
Unexecuted instantiation: digest.c:su2ip_addr
Unexecuted instantiation: parse_contact.c:su2ip_addr
Unexecuted instantiation: parse_body.c:su2ip_addr
Unexecuted instantiation: parse_security.c:su2ip_addr
Unexecuted instantiation: parse_call_info.c:su2ip_addr
Unexecuted instantiation: parse_event.c:su2ip_addr
Unexecuted instantiation: parse_disposition.c:su2ip_addr
Unexecuted instantiation: parse_authenticate.c:su2ip_addr
Unexecuted instantiation: parser_f.c:su2ip_addr
Unexecuted instantiation: parse_rpid.c:su2ip_addr
Unexecuted instantiation: parse_ppi.c:su2ip_addr
Unexecuted instantiation: parse_fcaps.c:su2ip_addr
Unexecuted instantiation: parse_sst.c:su2ip_addr
Unexecuted instantiation: parse_rr.c:su2ip_addr
Unexecuted instantiation: parse_param.c:su2ip_addr
Unexecuted instantiation: parse_diversion.c:su2ip_addr
Unexecuted instantiation: parse_nameaddr.c:su2ip_addr
Unexecuted instantiation: parse_expires.c:su2ip_addr
Unexecuted instantiation: parse_refer_to.c:su2ip_addr
Unexecuted instantiation: parse_from.c:su2ip_addr
Unexecuted instantiation: parse_pai.c:su2ip_addr
Unexecuted instantiation: evi_transport.c:su2ip_addr
Unexecuted instantiation: msg_translator.c:su2ip_addr
Unexecuted instantiation: md5utils.c:su2ip_addr
Unexecuted instantiation: cfg.tab.c:su2ip_addr
Unexecuted instantiation: modparam.c:su2ip_addr
Unexecuted instantiation: crc.c:su2ip_addr
Unexecuted instantiation: re.c:su2ip_addr
Unexecuted instantiation: lex.yy.c:su2ip_addr
Unexecuted instantiation: cfg_pp.c:su2ip_addr
Unexecuted instantiation: proxy.c:su2ip_addr
Unexecuted instantiation: shutdown.c:su2ip_addr
Unexecuted instantiation: cmds.c:su2ip_addr
Unexecuted instantiation: core_cmds.c:su2ip_addr
Unexecuted instantiation: serialize.c:su2ip_addr
Unexecuted instantiation: cachedb.c:su2ip_addr
Unexecuted instantiation: cachedb_id.c:su2ip_addr
319
320
321
/*! \brief ip_addr2su -> the same as \ref init_su() */
322
#define ip_addr2su init_su
323
324
/*! \brief inits a struct sockaddr_union from a struct ip_addr and a port no
325
 * \return 0 if ok, -1 on error (unknown address family)
326
 * \note the port number is in host byte order */
327
static inline int init_su( union sockaddr_union* su,
328
              const struct ip_addr* ip,
329
              unsigned short   port )
330
0
{
331
0
  memset(su, 0, sizeof(union sockaddr_union));/*needed on freebsd*/
332
0
  su->s.sa_family=ip->af;
333
0
  switch(ip->af){
334
0
  case  AF_INET6:
335
0
    memcpy(&su->sin6.sin6_addr, ip->u.addr, ip->len);
336
    #ifdef HAVE_SOCKADDR_SA_LEN
337
      su->sin6.sin6_len=sizeof(struct sockaddr_in6);
338
    #endif
339
0
    su->sin6.sin6_port=htons(port);
340
0
    break;
341
0
  case AF_INET:
342
0
    memcpy(&su->sin.sin_addr, ip->u.addr, ip->len);
343
    #ifdef HAVE_SOCKADDR_SA_LEN
344
      su->sin.sin_len=sizeof(struct sockaddr_in);
345
    #endif
346
0
    su->sin.sin_port=htons(port);
347
0
    break;
348
0
  default:
349
0
    LM_CRIT("unknown address family %d\n", ip->af);
350
0
    return -1;
351
0
  }
352
0
  return 0;
353
0
}
Unexecuted instantiation: fuzz_csv_parser.c:init_su
Unexecuted instantiation: csv.c:init_su
Unexecuted instantiation: dprint.c:init_su
Unexecuted instantiation: pt.c:init_su
Unexecuted instantiation: ut.c:init_su
Unexecuted instantiation: statistics.c:init_su
Unexecuted instantiation: route.c:init_su
Unexecuted instantiation: globals.c:init_su
Unexecuted instantiation: ipc.c:init_su
Unexecuted instantiation: core_stats.c:init_su
Unexecuted instantiation: route_struct.c:init_su
Unexecuted instantiation: dset.c:init_su
Unexecuted instantiation: pt_load.c:init_su
Unexecuted instantiation: sr_module.c:init_su
Unexecuted instantiation: action.c:init_su
Unexecuted instantiation: db_insertq.c:init_su
Unexecuted instantiation: db.c:init_su
Unexecuted instantiation: proto_tcp.c:init_su
Unexecuted instantiation: proto_udp.c:init_su
Unexecuted instantiation: net_tcp_proc.c:init_su
Unexecuted instantiation: net_tcp.c:init_su
Unexecuted instantiation: tcp_common.c:init_su
Unexecuted instantiation: net_udp.c:init_su
Unexecuted instantiation: tcp_conn_profile.c:init_su
Unexecuted instantiation: trans_trace.c:init_su
Unexecuted instantiation: net_tcp_report.c:init_su
Unexecuted instantiation: shm_mem.c:init_su
Unexecuted instantiation: mi.c:init_su
Unexecuted instantiation: item.c:init_su
Unexecuted instantiation: msg_parser.c:init_su
Unexecuted instantiation: parse_uri.c:init_su
Unexecuted instantiation: parse_fline.c:init_su
Unexecuted instantiation: parse_methods.c:init_su
Unexecuted instantiation: parse_hname2.c:init_su
Unexecuted instantiation: parse_content.c:init_su
Unexecuted instantiation: hf.c:init_su
Unexecuted instantiation: parse_to.c:init_su
Unexecuted instantiation: parse_via.c:init_su
Unexecuted instantiation: event_interface.c:init_su
Unexecuted instantiation: receive.c:init_su
Unexecuted instantiation: error.c:init_su
Unexecuted instantiation: script_cb.c:init_su
Unexecuted instantiation: ip_addr.c:init_su
Unexecuted instantiation: data_lump_rpl.c:init_su
Unexecuted instantiation: async.c:init_su
Unexecuted instantiation: daemonize.c:init_su
Unexecuted instantiation: timer.c:init_su
Unexecuted instantiation: trace_api.c:init_su
Unexecuted instantiation: mod_fix.c:init_su
Unexecuted instantiation: reactor.c:init_su
Unexecuted instantiation: strcommon.c:init_su
Unexecuted instantiation: forward.c:init_su
Unexecuted instantiation: xlog.c:init_su
Unexecuted instantiation: blacklists.c:init_su
Unexecuted instantiation: msg_callbacks.c:init_su
Unexecuted instantiation: usr_avp.c:init_su
Unexecuted instantiation: sl_cb.c:init_su
Unexecuted instantiation: sdp_ops.c:init_su
Unexecuted instantiation: resolve.c:init_su
Unexecuted instantiation: io_wait.c:init_su
Unexecuted instantiation: transformations.c:init_su
Unexecuted instantiation: pvar.c:init_su
Unexecuted instantiation: sr_module_deps.c:init_su
Unexecuted instantiation: cfg_reload.c:init_su
Unexecuted instantiation: socket_info.c:init_su
Unexecuted instantiation: time_rec.c:init_su
Unexecuted instantiation: data_lump.c:init_su
Unexecuted instantiation: status_report.c:init_su
Unexecuted instantiation: pt_scaling.c:init_su
Unexecuted instantiation: name_alias.c:init_su
Unexecuted instantiation: signals.c:init_su
Unexecuted instantiation: flags.c:init_su
Unexecuted instantiation: db_id.c:init_su
Unexecuted instantiation: trans.c:init_su
Unexecuted instantiation: sdp.c:init_su
Unexecuted instantiation: sdp_helpr_funcs.c:init_su
Unexecuted instantiation: digest_parser.c:init_su
Unexecuted instantiation: param_parser.c:init_su
Unexecuted instantiation: digest.c:init_su
Unexecuted instantiation: parse_contact.c:init_su
Unexecuted instantiation: parse_body.c:init_su
Unexecuted instantiation: parse_security.c:init_su
Unexecuted instantiation: parse_call_info.c:init_su
Unexecuted instantiation: parse_event.c:init_su
Unexecuted instantiation: parse_disposition.c:init_su
Unexecuted instantiation: parse_authenticate.c:init_su
Unexecuted instantiation: parser_f.c:init_su
Unexecuted instantiation: parse_rpid.c:init_su
Unexecuted instantiation: parse_ppi.c:init_su
Unexecuted instantiation: parse_fcaps.c:init_su
Unexecuted instantiation: parse_sst.c:init_su
Unexecuted instantiation: parse_rr.c:init_su
Unexecuted instantiation: parse_param.c:init_su
Unexecuted instantiation: parse_diversion.c:init_su
Unexecuted instantiation: parse_nameaddr.c:init_su
Unexecuted instantiation: parse_expires.c:init_su
Unexecuted instantiation: parse_refer_to.c:init_su
Unexecuted instantiation: parse_from.c:init_su
Unexecuted instantiation: parse_pai.c:init_su
Unexecuted instantiation: evi_transport.c:init_su
Unexecuted instantiation: msg_translator.c:init_su
Unexecuted instantiation: md5utils.c:init_su
Unexecuted instantiation: cfg.tab.c:init_su
Unexecuted instantiation: modparam.c:init_su
Unexecuted instantiation: crc.c:init_su
Unexecuted instantiation: re.c:init_su
Unexecuted instantiation: lex.yy.c:init_su
Unexecuted instantiation: cfg_pp.c:init_su
Unexecuted instantiation: proxy.c:init_su
Unexecuted instantiation: shutdown.c:init_su
Unexecuted instantiation: cmds.c:init_su
Unexecuted instantiation: core_cmds.c:init_su
Unexecuted instantiation: serialize.c:init_su
Unexecuted instantiation: cachedb.c:init_su
Unexecuted instantiation: cachedb_id.c:init_su
354
355
356
357
/*! \brief inits a struct sockaddr_union from a struct hostent, an address index in
358
 * the hostent structure and a port no. (host byte order)
359
 * WARNING: no index overflow  checks!
360
 * \return 0 if ok, -1 on error (unknown address family) */
361
static inline int hostent2su( union sockaddr_union* su,
362
                const struct hostent* he,
363
                unsigned int idx,
364
                unsigned short   port )
365
0
{
366
0
  memset(su, 0, sizeof(union sockaddr_union)); /*needed on freebsd*/
367
0
  su->s.sa_family=he->h_addrtype;
368
0
  switch(he->h_addrtype){
369
0
  case  AF_INET6:
370
0
    memcpy(&su->sin6.sin6_addr, he->h_addr_list[idx], he->h_length);
371
    #ifdef HAVE_SOCKADDR_SA_LEN
372
      su->sin6.sin6_len=sizeof(struct sockaddr_in6);
373
    #endif
374
0
    su->sin6.sin6_port=htons(port);
375
0
    break;
376
0
  case AF_INET:
377
0
    memcpy(&su->sin.sin_addr, he->h_addr_list[idx], he->h_length);
378
    #ifdef HAVE_SOCKADDR_SA_LEN
379
      su->sin.sin_len=sizeof(struct sockaddr_in);
380
    #endif
381
0
    su->sin.sin_port=htons(port);
382
0
    break;
383
0
  default:
384
0
    LM_CRIT("unknown address family %d\n", he->h_addrtype);
385
0
    return -1;
386
0
  }
387
0
  return 0;
388
0
}
Unexecuted instantiation: fuzz_csv_parser.c:hostent2su
Unexecuted instantiation: csv.c:hostent2su
Unexecuted instantiation: dprint.c:hostent2su
Unexecuted instantiation: pt.c:hostent2su
Unexecuted instantiation: ut.c:hostent2su
Unexecuted instantiation: statistics.c:hostent2su
Unexecuted instantiation: route.c:hostent2su
Unexecuted instantiation: globals.c:hostent2su
Unexecuted instantiation: ipc.c:hostent2su
Unexecuted instantiation: core_stats.c:hostent2su
Unexecuted instantiation: route_struct.c:hostent2su
Unexecuted instantiation: dset.c:hostent2su
Unexecuted instantiation: pt_load.c:hostent2su
Unexecuted instantiation: sr_module.c:hostent2su
Unexecuted instantiation: action.c:hostent2su
Unexecuted instantiation: db_insertq.c:hostent2su
Unexecuted instantiation: db.c:hostent2su
Unexecuted instantiation: proto_tcp.c:hostent2su
Unexecuted instantiation: proto_udp.c:hostent2su
Unexecuted instantiation: net_tcp_proc.c:hostent2su
Unexecuted instantiation: net_tcp.c:hostent2su
Unexecuted instantiation: tcp_common.c:hostent2su
Unexecuted instantiation: net_udp.c:hostent2su
Unexecuted instantiation: tcp_conn_profile.c:hostent2su
Unexecuted instantiation: trans_trace.c:hostent2su
Unexecuted instantiation: net_tcp_report.c:hostent2su
Unexecuted instantiation: shm_mem.c:hostent2su
Unexecuted instantiation: mi.c:hostent2su
Unexecuted instantiation: item.c:hostent2su
Unexecuted instantiation: msg_parser.c:hostent2su
Unexecuted instantiation: parse_uri.c:hostent2su
Unexecuted instantiation: parse_fline.c:hostent2su
Unexecuted instantiation: parse_methods.c:hostent2su
Unexecuted instantiation: parse_hname2.c:hostent2su
Unexecuted instantiation: parse_content.c:hostent2su
Unexecuted instantiation: hf.c:hostent2su
Unexecuted instantiation: parse_to.c:hostent2su
Unexecuted instantiation: parse_via.c:hostent2su
Unexecuted instantiation: event_interface.c:hostent2su
Unexecuted instantiation: receive.c:hostent2su
Unexecuted instantiation: error.c:hostent2su
Unexecuted instantiation: script_cb.c:hostent2su
Unexecuted instantiation: ip_addr.c:hostent2su
Unexecuted instantiation: data_lump_rpl.c:hostent2su
Unexecuted instantiation: async.c:hostent2su
Unexecuted instantiation: daemonize.c:hostent2su
Unexecuted instantiation: timer.c:hostent2su
Unexecuted instantiation: trace_api.c:hostent2su
Unexecuted instantiation: mod_fix.c:hostent2su
Unexecuted instantiation: reactor.c:hostent2su
Unexecuted instantiation: strcommon.c:hostent2su
Unexecuted instantiation: forward.c:hostent2su
Unexecuted instantiation: xlog.c:hostent2su
Unexecuted instantiation: blacklists.c:hostent2su
Unexecuted instantiation: msg_callbacks.c:hostent2su
Unexecuted instantiation: usr_avp.c:hostent2su
Unexecuted instantiation: sl_cb.c:hostent2su
Unexecuted instantiation: sdp_ops.c:hostent2su
Unexecuted instantiation: resolve.c:hostent2su
Unexecuted instantiation: io_wait.c:hostent2su
Unexecuted instantiation: transformations.c:hostent2su
Unexecuted instantiation: pvar.c:hostent2su
Unexecuted instantiation: sr_module_deps.c:hostent2su
Unexecuted instantiation: cfg_reload.c:hostent2su
Unexecuted instantiation: socket_info.c:hostent2su
Unexecuted instantiation: time_rec.c:hostent2su
Unexecuted instantiation: data_lump.c:hostent2su
Unexecuted instantiation: status_report.c:hostent2su
Unexecuted instantiation: pt_scaling.c:hostent2su
Unexecuted instantiation: name_alias.c:hostent2su
Unexecuted instantiation: signals.c:hostent2su
Unexecuted instantiation: flags.c:hostent2su
Unexecuted instantiation: db_id.c:hostent2su
Unexecuted instantiation: trans.c:hostent2su
Unexecuted instantiation: sdp.c:hostent2su
Unexecuted instantiation: sdp_helpr_funcs.c:hostent2su
Unexecuted instantiation: digest_parser.c:hostent2su
Unexecuted instantiation: param_parser.c:hostent2su
Unexecuted instantiation: digest.c:hostent2su
Unexecuted instantiation: parse_contact.c:hostent2su
Unexecuted instantiation: parse_body.c:hostent2su
Unexecuted instantiation: parse_security.c:hostent2su
Unexecuted instantiation: parse_call_info.c:hostent2su
Unexecuted instantiation: parse_event.c:hostent2su
Unexecuted instantiation: parse_disposition.c:hostent2su
Unexecuted instantiation: parse_authenticate.c:hostent2su
Unexecuted instantiation: parser_f.c:hostent2su
Unexecuted instantiation: parse_rpid.c:hostent2su
Unexecuted instantiation: parse_ppi.c:hostent2su
Unexecuted instantiation: parse_fcaps.c:hostent2su
Unexecuted instantiation: parse_sst.c:hostent2su
Unexecuted instantiation: parse_rr.c:hostent2su
Unexecuted instantiation: parse_param.c:hostent2su
Unexecuted instantiation: parse_diversion.c:hostent2su
Unexecuted instantiation: parse_nameaddr.c:hostent2su
Unexecuted instantiation: parse_expires.c:hostent2su
Unexecuted instantiation: parse_refer_to.c:hostent2su
Unexecuted instantiation: parse_from.c:hostent2su
Unexecuted instantiation: parse_pai.c:hostent2su
Unexecuted instantiation: evi_transport.c:hostent2su
Unexecuted instantiation: msg_translator.c:hostent2su
Unexecuted instantiation: md5utils.c:hostent2su
Unexecuted instantiation: cfg.tab.c:hostent2su
Unexecuted instantiation: modparam.c:hostent2su
Unexecuted instantiation: crc.c:hostent2su
Unexecuted instantiation: re.c:hostent2su
Unexecuted instantiation: lex.yy.c:hostent2su
Unexecuted instantiation: cfg_pp.c:hostent2su
Unexecuted instantiation: proxy.c:hostent2su
Unexecuted instantiation: shutdown.c:hostent2su
Unexecuted instantiation: cmds.c:hostent2su
Unexecuted instantiation: core_cmds.c:hostent2su
Unexecuted instantiation: serialize.c:hostent2su
Unexecuted instantiation: cachedb.c:hostent2su
Unexecuted instantiation: cachedb_id.c:hostent2su
389
390
/*! \brief maximum size of a str returned by ip_addr2a (including \\0') */
391
0
#define IP_ADDR_MAX_STR_SIZE 40 /* 1234:5678:9012:3456:7890:1234:5678:9012\0 */
392
0
#define IP_ADDR2STR_BUF_NO 4
393
394
/*! \brief fast ip_addr -> string converter;
395
 * it uses an internal buffer
396
 */
397
extern char _ip_addr_A_buffs[IP_ADDR2STR_BUF_NO][IP_ADDR_MAX_STR_SIZE];
398
static inline char* ip_addr2a(struct ip_addr* ip)
399
0
{
400
0
  static unsigned int it = 0;
401
0
  int offset;
402
0
  register unsigned char a,b,c;
403
0
  register unsigned char d;
404
0
  register unsigned short hex4;
405
0
  int r;
406
0
  char *_ip_addr_A_buff;
407
0
  #define HEXDIG(x) (((x)>=10)?(x)-10+'A':(x)+'0')
408
409
0
  if ((++it)==IP_ADDR2STR_BUF_NO) it = 0;
410
0
  _ip_addr_A_buff = _ip_addr_A_buffs[it];
411
412
0
  offset=0;
413
0
  switch(ip->af){
414
0
    case AF_INET6:
415
0
      for(r=0;r<7;r++){
416
0
        hex4=ntohs(ip->u.addr16[r]);
417
0
        a=hex4>>12;
418
0
        b=(hex4>>8)&0xf;
419
0
        c=(hex4>>4)&0xf;
420
0
        d=hex4&0xf;
421
0
        if (a){
422
0
          _ip_addr_A_buff[offset]=HEXDIG(a);
423
0
          _ip_addr_A_buff[offset+1]=HEXDIG(b);
424
0
          _ip_addr_A_buff[offset+2]=HEXDIG(c);
425
0
          _ip_addr_A_buff[offset+3]=HEXDIG(d);
426
0
          _ip_addr_A_buff[offset+4]=':';
427
0
          offset+=5;
428
0
        }else if(b){
429
0
          _ip_addr_A_buff[offset]=HEXDIG(b);
430
0
          _ip_addr_A_buff[offset+1]=HEXDIG(c);
431
0
          _ip_addr_A_buff[offset+2]=HEXDIG(d);
432
0
          _ip_addr_A_buff[offset+3]=':';
433
0
          offset+=4;
434
0
        }else if(c){
435
0
          _ip_addr_A_buff[offset]=HEXDIG(c);
436
0
          _ip_addr_A_buff[offset+1]=HEXDIG(d);
437
0
          _ip_addr_A_buff[offset+2]=':';
438
0
          offset+=3;
439
0
        }else{
440
0
          _ip_addr_A_buff[offset]=HEXDIG(d);
441
0
          _ip_addr_A_buff[offset+1]=':';
442
0
          offset+=2;
443
0
        }
444
0
      }
445
      /* last int16*/
446
0
      hex4=ntohs(ip->u.addr16[r]);
447
0
      a=hex4>>12;
448
0
      b=(hex4>>8)&0xf;
449
0
      c=(hex4>>4)&0xf;
450
0
      d=hex4&0xf;
451
0
      if (a){
452
0
        _ip_addr_A_buff[offset]=HEXDIG(a);
453
0
        _ip_addr_A_buff[offset+1]=HEXDIG(b);
454
0
        _ip_addr_A_buff[offset+2]=HEXDIG(c);
455
0
        _ip_addr_A_buff[offset+3]=HEXDIG(d);
456
0
        _ip_addr_A_buff[offset+4]=0;
457
0
      }else if(b){
458
0
        _ip_addr_A_buff[offset]=HEXDIG(b);
459
0
        _ip_addr_A_buff[offset+1]=HEXDIG(c);
460
0
        _ip_addr_A_buff[offset+2]=HEXDIG(d);
461
0
        _ip_addr_A_buff[offset+3]=0;
462
0
      }else if(c){
463
0
        _ip_addr_A_buff[offset]=HEXDIG(c);
464
0
        _ip_addr_A_buff[offset+1]=HEXDIG(d);
465
0
        _ip_addr_A_buff[offset+2]=0;
466
0
      }else{
467
0
        _ip_addr_A_buff[offset]=HEXDIG(d);
468
0
        _ip_addr_A_buff[offset+1]=0;
469
0
      }
470
0
      break;
471
0
    case AF_INET:
472
0
      for(r=0;r<3;r++){
473
0
        a=ip->u.addr[r]/100;
474
0
        c=ip->u.addr[r]%10;
475
0
        b=ip->u.addr[r]%100/10;
476
0
        if (a){
477
0
          _ip_addr_A_buff[offset]=a+'0';
478
0
          _ip_addr_A_buff[offset+1]=b+'0';
479
0
          _ip_addr_A_buff[offset+2]=c+'0';
480
0
          _ip_addr_A_buff[offset+3]='.';
481
0
          offset+=4;
482
0
        }else if (b){
483
0
          _ip_addr_A_buff[offset]=b+'0';
484
0
          _ip_addr_A_buff[offset+1]=c+'0';
485
0
          _ip_addr_A_buff[offset+2]='.';
486
0
          offset+=3;
487
0
        }else{
488
0
          _ip_addr_A_buff[offset]=c+'0';
489
0
          _ip_addr_A_buff[offset+1]='.';
490
0
          offset+=2;
491
0
        }
492
0
      }
493
      /* last number */
494
0
      a=ip->u.addr[r]/100;
495
0
      c=ip->u.addr[r]%10;
496
0
      b=ip->u.addr[r]%100/10;
497
0
      if (a){
498
0
        _ip_addr_A_buff[offset]=a+'0';
499
0
        _ip_addr_A_buff[offset+1]=b+'0';
500
0
        _ip_addr_A_buff[offset+2]=c+'0';
501
0
        _ip_addr_A_buff[offset+3]=0;
502
0
      }else if (b){
503
0
        _ip_addr_A_buff[offset]=b+'0';
504
0
        _ip_addr_A_buff[offset+1]=c+'0';
505
0
        _ip_addr_A_buff[offset+2]=0;
506
0
      }else{
507
0
        _ip_addr_A_buff[offset]=c+'0';
508
0
        _ip_addr_A_buff[offset+1]=0;
509
0
      }
510
0
      break;
511
512
0
    default:
513
0
      LM_CRIT("unknown address family %d\n", ip->af);
514
0
      _ip_addr_A_buff[0] = '\0';
515
0
  }
516
517
0
  return _ip_addr_A_buff;
518
0
}
Unexecuted instantiation: fuzz_csv_parser.c:ip_addr2a
Unexecuted instantiation: csv.c:ip_addr2a
Unexecuted instantiation: dprint.c:ip_addr2a
Unexecuted instantiation: pt.c:ip_addr2a
Unexecuted instantiation: ut.c:ip_addr2a
Unexecuted instantiation: statistics.c:ip_addr2a
Unexecuted instantiation: route.c:ip_addr2a
Unexecuted instantiation: globals.c:ip_addr2a
Unexecuted instantiation: ipc.c:ip_addr2a
Unexecuted instantiation: core_stats.c:ip_addr2a
Unexecuted instantiation: route_struct.c:ip_addr2a
Unexecuted instantiation: dset.c:ip_addr2a
Unexecuted instantiation: pt_load.c:ip_addr2a
Unexecuted instantiation: sr_module.c:ip_addr2a
Unexecuted instantiation: action.c:ip_addr2a
Unexecuted instantiation: db_insertq.c:ip_addr2a
Unexecuted instantiation: db.c:ip_addr2a
Unexecuted instantiation: proto_tcp.c:ip_addr2a
Unexecuted instantiation: proto_udp.c:ip_addr2a
Unexecuted instantiation: net_tcp_proc.c:ip_addr2a
Unexecuted instantiation: net_tcp.c:ip_addr2a
Unexecuted instantiation: tcp_common.c:ip_addr2a
Unexecuted instantiation: net_udp.c:ip_addr2a
Unexecuted instantiation: tcp_conn_profile.c:ip_addr2a
Unexecuted instantiation: trans_trace.c:ip_addr2a
Unexecuted instantiation: net_tcp_report.c:ip_addr2a
Unexecuted instantiation: shm_mem.c:ip_addr2a
Unexecuted instantiation: mi.c:ip_addr2a
Unexecuted instantiation: item.c:ip_addr2a
Unexecuted instantiation: msg_parser.c:ip_addr2a
Unexecuted instantiation: parse_uri.c:ip_addr2a
Unexecuted instantiation: parse_fline.c:ip_addr2a
Unexecuted instantiation: parse_methods.c:ip_addr2a
Unexecuted instantiation: parse_hname2.c:ip_addr2a
Unexecuted instantiation: parse_content.c:ip_addr2a
Unexecuted instantiation: hf.c:ip_addr2a
Unexecuted instantiation: parse_to.c:ip_addr2a
Unexecuted instantiation: parse_via.c:ip_addr2a
Unexecuted instantiation: event_interface.c:ip_addr2a
Unexecuted instantiation: receive.c:ip_addr2a
Unexecuted instantiation: error.c:ip_addr2a
Unexecuted instantiation: script_cb.c:ip_addr2a
Unexecuted instantiation: ip_addr.c:ip_addr2a
Unexecuted instantiation: data_lump_rpl.c:ip_addr2a
Unexecuted instantiation: async.c:ip_addr2a
Unexecuted instantiation: daemonize.c:ip_addr2a
Unexecuted instantiation: timer.c:ip_addr2a
Unexecuted instantiation: trace_api.c:ip_addr2a
Unexecuted instantiation: mod_fix.c:ip_addr2a
Unexecuted instantiation: reactor.c:ip_addr2a
Unexecuted instantiation: strcommon.c:ip_addr2a
Unexecuted instantiation: forward.c:ip_addr2a
Unexecuted instantiation: xlog.c:ip_addr2a
Unexecuted instantiation: blacklists.c:ip_addr2a
Unexecuted instantiation: msg_callbacks.c:ip_addr2a
Unexecuted instantiation: usr_avp.c:ip_addr2a
Unexecuted instantiation: sl_cb.c:ip_addr2a
Unexecuted instantiation: sdp_ops.c:ip_addr2a
Unexecuted instantiation: resolve.c:ip_addr2a
Unexecuted instantiation: io_wait.c:ip_addr2a
Unexecuted instantiation: transformations.c:ip_addr2a
Unexecuted instantiation: pvar.c:ip_addr2a
Unexecuted instantiation: sr_module_deps.c:ip_addr2a
Unexecuted instantiation: cfg_reload.c:ip_addr2a
Unexecuted instantiation: socket_info.c:ip_addr2a
Unexecuted instantiation: time_rec.c:ip_addr2a
Unexecuted instantiation: data_lump.c:ip_addr2a
Unexecuted instantiation: status_report.c:ip_addr2a
Unexecuted instantiation: pt_scaling.c:ip_addr2a
Unexecuted instantiation: name_alias.c:ip_addr2a
Unexecuted instantiation: signals.c:ip_addr2a
Unexecuted instantiation: flags.c:ip_addr2a
Unexecuted instantiation: db_id.c:ip_addr2a
Unexecuted instantiation: trans.c:ip_addr2a
Unexecuted instantiation: sdp.c:ip_addr2a
Unexecuted instantiation: sdp_helpr_funcs.c:ip_addr2a
Unexecuted instantiation: digest_parser.c:ip_addr2a
Unexecuted instantiation: param_parser.c:ip_addr2a
Unexecuted instantiation: digest.c:ip_addr2a
Unexecuted instantiation: parse_contact.c:ip_addr2a
Unexecuted instantiation: parse_body.c:ip_addr2a
Unexecuted instantiation: parse_security.c:ip_addr2a
Unexecuted instantiation: parse_call_info.c:ip_addr2a
Unexecuted instantiation: parse_event.c:ip_addr2a
Unexecuted instantiation: parse_disposition.c:ip_addr2a
Unexecuted instantiation: parse_authenticate.c:ip_addr2a
Unexecuted instantiation: parser_f.c:ip_addr2a
Unexecuted instantiation: parse_rpid.c:ip_addr2a
Unexecuted instantiation: parse_ppi.c:ip_addr2a
Unexecuted instantiation: parse_fcaps.c:ip_addr2a
Unexecuted instantiation: parse_sst.c:ip_addr2a
Unexecuted instantiation: parse_rr.c:ip_addr2a
Unexecuted instantiation: parse_param.c:ip_addr2a
Unexecuted instantiation: parse_diversion.c:ip_addr2a
Unexecuted instantiation: parse_nameaddr.c:ip_addr2a
Unexecuted instantiation: parse_expires.c:ip_addr2a
Unexecuted instantiation: parse_refer_to.c:ip_addr2a
Unexecuted instantiation: parse_from.c:ip_addr2a
Unexecuted instantiation: parse_pai.c:ip_addr2a
Unexecuted instantiation: evi_transport.c:ip_addr2a
Unexecuted instantiation: msg_translator.c:ip_addr2a
Unexecuted instantiation: md5utils.c:ip_addr2a
Unexecuted instantiation: cfg.tab.c:ip_addr2a
Unexecuted instantiation: modparam.c:ip_addr2a
Unexecuted instantiation: crc.c:ip_addr2a
Unexecuted instantiation: re.c:ip_addr2a
Unexecuted instantiation: lex.yy.c:ip_addr2a
Unexecuted instantiation: cfg_pp.c:ip_addr2a
Unexecuted instantiation: proxy.c:ip_addr2a
Unexecuted instantiation: shutdown.c:ip_addr2a
Unexecuted instantiation: cmds.c:ip_addr2a
Unexecuted instantiation: core_cmds.c:ip_addr2a
Unexecuted instantiation: serialize.c:ip_addr2a
Unexecuted instantiation: cachedb.c:ip_addr2a
Unexecuted instantiation: cachedb_id.c:ip_addr2a
519
520
521
/*! \brief converts a str to an ipv4 address, returns the address or 0 on error
522
   Warning: the result is a pointer to a statically allocated structure */
523
static inline struct ip_addr* str2ip(str* st)
524
0
{
525
0
  int i, j;
526
0
  unsigned char *limit;
527
0
  static struct ip_addr ip;
528
0
  unsigned char *s;
529
530
0
  if (st == NULL || st->s == NULL) goto error_null;
531
0
  s=(unsigned char*)st->s;
532
533
  /*init*/
534
0
  ip.u.addr32[0]=0;
535
0
  i=j=0;
536
0
  limit=(unsigned char*)(st->s + st->len);
537
538
  /* first char must be different than '0' */
539
0
  if ((*s > '9' ) || (*s < '0')) goto error_char;
540
0
  ip.u.addr[i]=ip.u.addr[i]*10+*s-'0';
541
0
  s++;
542
0
  j++;
543
0
  for(;s<limit ;s++){
544
0
    if (*s=='.'){
545
0
        i++;
546
0
        j=0;
547
0
        if (i>3) goto error_dots;
548
0
        s++;
549
0
        if (s==limit) break;
550
0
        if ( (*s <= '9' ) && (*s >= '0') ){
551
0
          j++;
552
0
          ip.u.addr[i]=ip.u.addr[i]*10+*s-'0';
553
0
        } else {
554
0
          goto error_char;
555
0
        }
556
0
    }else if ( (j==1) && (*s <= '9' ) && (*s >= '0') ){
557
        /* if first char is '0' then fail conversion */
558
0
        if (ip.u.addr[i]==0) goto error_char;
559
0
        j++;
560
0
        ip.u.addr[i]=ip.u.addr[i]*10+*s-'0';
561
0
    }else if ( (j==2) && (*s <= '9' ) && (*s >= '0') ){
562
        /* if first two chars are bigger then '25' then fail conversion */
563
0
        if (ip.u.addr[i]>25) goto error_char;
564
        /* if first three chars are bigger then '255' then fail conversion */
565
0
        if (ip.u.addr[i]==25 && *s > '5') goto error_char;
566
0
        j++;
567
0
        ip.u.addr[i]=ip.u.addr[i]*10+*s-'0';
568
0
    }else{
569
        //error unknown char
570
0
        goto error_char;
571
0
    }
572
0
  }
573
0
  if (i<3) goto error_dots;
574
0
  ip.af=AF_INET;
575
0
  ip.len=4;
576
577
0
  return &ip;
578
0
error_null:
579
0
  LM_DBG("Null pointer detected\n");
580
0
  return NULL;
581
0
error_dots:
582
0
  LM_DBG("too %s dots in [%.*s]\n", (i>3)?"many":"few",
583
0
      st->len, st->s);
584
0
  return NULL;
585
0
 error_char:
586
  /*
587
  LM_ERR("unexpected char [%p]->[%c] in [%p]->[%.*s] while i=[%d] j=[%d]\n",
588
    s, *s, st->s, st->len, st->s, i, j);
589
  */
590
0
  return NULL;
591
0
}
Unexecuted instantiation: fuzz_csv_parser.c:str2ip
Unexecuted instantiation: csv.c:str2ip
Unexecuted instantiation: dprint.c:str2ip
Unexecuted instantiation: pt.c:str2ip
Unexecuted instantiation: ut.c:str2ip
Unexecuted instantiation: statistics.c:str2ip
Unexecuted instantiation: route.c:str2ip
Unexecuted instantiation: globals.c:str2ip
Unexecuted instantiation: ipc.c:str2ip
Unexecuted instantiation: core_stats.c:str2ip
Unexecuted instantiation: route_struct.c:str2ip
Unexecuted instantiation: dset.c:str2ip
Unexecuted instantiation: pt_load.c:str2ip
Unexecuted instantiation: sr_module.c:str2ip
Unexecuted instantiation: action.c:str2ip
Unexecuted instantiation: db_insertq.c:str2ip
Unexecuted instantiation: db.c:str2ip
Unexecuted instantiation: proto_tcp.c:str2ip
Unexecuted instantiation: proto_udp.c:str2ip
Unexecuted instantiation: net_tcp_proc.c:str2ip
Unexecuted instantiation: net_tcp.c:str2ip
Unexecuted instantiation: tcp_common.c:str2ip
Unexecuted instantiation: net_udp.c:str2ip
Unexecuted instantiation: tcp_conn_profile.c:str2ip
Unexecuted instantiation: trans_trace.c:str2ip
Unexecuted instantiation: net_tcp_report.c:str2ip
Unexecuted instantiation: shm_mem.c:str2ip
Unexecuted instantiation: mi.c:str2ip
Unexecuted instantiation: item.c:str2ip
Unexecuted instantiation: msg_parser.c:str2ip
Unexecuted instantiation: parse_uri.c:str2ip
Unexecuted instantiation: parse_fline.c:str2ip
Unexecuted instantiation: parse_methods.c:str2ip
Unexecuted instantiation: parse_hname2.c:str2ip
Unexecuted instantiation: parse_content.c:str2ip
Unexecuted instantiation: hf.c:str2ip
Unexecuted instantiation: parse_to.c:str2ip
Unexecuted instantiation: parse_via.c:str2ip
Unexecuted instantiation: event_interface.c:str2ip
Unexecuted instantiation: receive.c:str2ip
Unexecuted instantiation: error.c:str2ip
Unexecuted instantiation: script_cb.c:str2ip
Unexecuted instantiation: ip_addr.c:str2ip
Unexecuted instantiation: data_lump_rpl.c:str2ip
Unexecuted instantiation: async.c:str2ip
Unexecuted instantiation: daemonize.c:str2ip
Unexecuted instantiation: timer.c:str2ip
Unexecuted instantiation: trace_api.c:str2ip
Unexecuted instantiation: mod_fix.c:str2ip
Unexecuted instantiation: reactor.c:str2ip
Unexecuted instantiation: strcommon.c:str2ip
Unexecuted instantiation: forward.c:str2ip
Unexecuted instantiation: xlog.c:str2ip
Unexecuted instantiation: blacklists.c:str2ip
Unexecuted instantiation: msg_callbacks.c:str2ip
Unexecuted instantiation: usr_avp.c:str2ip
Unexecuted instantiation: sl_cb.c:str2ip
Unexecuted instantiation: sdp_ops.c:str2ip
Unexecuted instantiation: resolve.c:str2ip
Unexecuted instantiation: io_wait.c:str2ip
Unexecuted instantiation: transformations.c:str2ip
Unexecuted instantiation: pvar.c:str2ip
Unexecuted instantiation: sr_module_deps.c:str2ip
Unexecuted instantiation: cfg_reload.c:str2ip
Unexecuted instantiation: socket_info.c:str2ip
Unexecuted instantiation: time_rec.c:str2ip
Unexecuted instantiation: data_lump.c:str2ip
Unexecuted instantiation: status_report.c:str2ip
Unexecuted instantiation: pt_scaling.c:str2ip
Unexecuted instantiation: name_alias.c:str2ip
Unexecuted instantiation: signals.c:str2ip
Unexecuted instantiation: flags.c:str2ip
Unexecuted instantiation: db_id.c:str2ip
Unexecuted instantiation: trans.c:str2ip
Unexecuted instantiation: sdp.c:str2ip
Unexecuted instantiation: sdp_helpr_funcs.c:str2ip
Unexecuted instantiation: digest_parser.c:str2ip
Unexecuted instantiation: param_parser.c:str2ip
Unexecuted instantiation: digest.c:str2ip
Unexecuted instantiation: parse_contact.c:str2ip
Unexecuted instantiation: parse_body.c:str2ip
Unexecuted instantiation: parse_security.c:str2ip
Unexecuted instantiation: parse_call_info.c:str2ip
Unexecuted instantiation: parse_event.c:str2ip
Unexecuted instantiation: parse_disposition.c:str2ip
Unexecuted instantiation: parse_authenticate.c:str2ip
Unexecuted instantiation: parser_f.c:str2ip
Unexecuted instantiation: parse_rpid.c:str2ip
Unexecuted instantiation: parse_ppi.c:str2ip
Unexecuted instantiation: parse_fcaps.c:str2ip
Unexecuted instantiation: parse_sst.c:str2ip
Unexecuted instantiation: parse_rr.c:str2ip
Unexecuted instantiation: parse_param.c:str2ip
Unexecuted instantiation: parse_diversion.c:str2ip
Unexecuted instantiation: parse_nameaddr.c:str2ip
Unexecuted instantiation: parse_expires.c:str2ip
Unexecuted instantiation: parse_refer_to.c:str2ip
Unexecuted instantiation: parse_from.c:str2ip
Unexecuted instantiation: parse_pai.c:str2ip
Unexecuted instantiation: evi_transport.c:str2ip
Unexecuted instantiation: msg_translator.c:str2ip
Unexecuted instantiation: md5utils.c:str2ip
Unexecuted instantiation: cfg.tab.c:str2ip
Unexecuted instantiation: modparam.c:str2ip
Unexecuted instantiation: crc.c:str2ip
Unexecuted instantiation: re.c:str2ip
Unexecuted instantiation: lex.yy.c:str2ip
Unexecuted instantiation: cfg_pp.c:str2ip
Unexecuted instantiation: proxy.c:str2ip
Unexecuted instantiation: shutdown.c:str2ip
Unexecuted instantiation: cmds.c:str2ip
Unexecuted instantiation: core_cmds.c:str2ip
Unexecuted instantiation: serialize.c:str2ip
Unexecuted instantiation: cachedb.c:str2ip
Unexecuted instantiation: cachedb_id.c:str2ip
592
593
594
/*! \brief returns an ip_addr struct.; on error returns 0
595
 * the ip_addr struct is static, so subsequent calls will destroy its content*/
596
static inline struct ip_addr* str2ip6(str* st)
597
0
{
598
0
  int i, idx1, rest;
599
0
  int no_colons;
600
0
  int double_colon;
601
0
  int hex;
602
0
  static struct ip_addr ip;
603
0
  unsigned short* addr_start;
604
0
  unsigned short addr_end[8];
605
0
  unsigned short* addr;
606
0
  unsigned char* limit;
607
0
  unsigned char* s;
608
609
0
  if (st == NULL || st->s == NULL) goto error_char;
610
  /* init */
611
0
  if ((st->len) && (st->s[0]=='[')){
612
    /* skip over [ ] */
613
0
    if (st->s[st->len-1]!=']') goto error_char;
614
0
    s=(unsigned char*)(st->s+1);
615
0
    limit=(unsigned char*)(st->s+st->len-1);
616
0
  }else{
617
0
    s=(unsigned char*)st->s;
618
0
    limit=(unsigned char*)(st->s+st->len);
619
0
  }
620
0
  i=idx1=rest=0;
621
0
  double_colon=0;
622
0
  no_colons=0;
623
0
  ip.af=AF_INET6;
624
0
  ip.len=16;
625
0
  addr_start=ip.u.addr16;
626
0
  addr=addr_start;
627
0
  memset(addr_start, 0 , 8*sizeof(unsigned short));
628
0
  memset(addr_end, 0 , 8*sizeof(unsigned short));
629
0
  for (; s<limit; s++){
630
0
    if (*s==':'){
631
0
      no_colons++;
632
0
      if (no_colons>7) goto error_too_many_colons;
633
0
      if (double_colon){
634
0
        idx1=i;
635
0
        i=0;
636
0
        if (addr==addr_end) goto error_colons;
637
0
        addr=addr_end;
638
0
      }else{
639
0
        double_colon=1;
640
0
        addr[i]=htons(addr[i]);
641
0
        i++;
642
0
      }
643
0
    }else if ((hex=HEX2I(*s))>=0){
644
0
        addr[i]=addr[i]*16+hex;
645
0
        double_colon=0;
646
0
    }else{
647
      /* error, unknown char */
648
0
      goto error_char;
649
0
    }
650
0
  }
651
0
  if (!double_colon){ /* not ending in ':' */
652
0
    addr[i]=htons(addr[i]);
653
0
    i++;
654
0
  }
655
  /* if address contained '::' fix it */
656
0
  if (addr==addr_end){
657
0
    rest=8-i-idx1;
658
0
    memcpy(addr_start+idx1+rest, addr_end, i*sizeof(unsigned short));
659
0
  }else{
660
    /* no double colons inside */
661
0
    if (no_colons<7) goto error_too_few_colons;
662
0
  }
663
/*
664
  DBG("str2ip6: idx1=%d, rest=%d, no_colons=%d, hex=%x\n",
665
      idx1, rest, no_colons, hex);
666
  DBG("str2ip6: address %x:%x:%x:%x:%x:%x:%x:%x\n",
667
      addr_start[0], addr_start[1], addr_start[2],
668
      addr_start[3], addr_start[4], addr_start[5],
669
      addr_start[6], addr_start[7] );
670
*/
671
0
  return &ip;
672
673
0
error_too_many_colons:
674
0
  LM_DBG("too many colons in [%.*s]\n", st->len, st->s);
675
0
  return 0;
676
677
0
error_too_few_colons:
678
0
  LM_DBG("too few colons in [%.*s]\n", st->len, st->s);
679
0
  return 0;
680
681
0
error_colons:
682
0
  LM_DBG("too many double colons in [%.*s]\n", st->len, st->s);
683
0
  return 0;
684
685
0
error_char:
686
  /*
687
  DBG("str2ip6: WARNING: unexpected char %c in [%.*s]\n", *s, st->len,
688
      st->s);*/
689
0
  return 0;
690
0
}
Unexecuted instantiation: fuzz_csv_parser.c:str2ip6
Unexecuted instantiation: csv.c:str2ip6
Unexecuted instantiation: dprint.c:str2ip6
Unexecuted instantiation: pt.c:str2ip6
Unexecuted instantiation: ut.c:str2ip6
Unexecuted instantiation: statistics.c:str2ip6
Unexecuted instantiation: route.c:str2ip6
Unexecuted instantiation: globals.c:str2ip6
Unexecuted instantiation: ipc.c:str2ip6
Unexecuted instantiation: core_stats.c:str2ip6
Unexecuted instantiation: route_struct.c:str2ip6
Unexecuted instantiation: dset.c:str2ip6
Unexecuted instantiation: pt_load.c:str2ip6
Unexecuted instantiation: sr_module.c:str2ip6
Unexecuted instantiation: action.c:str2ip6
Unexecuted instantiation: db_insertq.c:str2ip6
Unexecuted instantiation: db.c:str2ip6
Unexecuted instantiation: proto_tcp.c:str2ip6
Unexecuted instantiation: proto_udp.c:str2ip6
Unexecuted instantiation: net_tcp_proc.c:str2ip6
Unexecuted instantiation: net_tcp.c:str2ip6
Unexecuted instantiation: tcp_common.c:str2ip6
Unexecuted instantiation: net_udp.c:str2ip6
Unexecuted instantiation: tcp_conn_profile.c:str2ip6
Unexecuted instantiation: trans_trace.c:str2ip6
Unexecuted instantiation: net_tcp_report.c:str2ip6
Unexecuted instantiation: shm_mem.c:str2ip6
Unexecuted instantiation: mi.c:str2ip6
Unexecuted instantiation: item.c:str2ip6
Unexecuted instantiation: msg_parser.c:str2ip6
Unexecuted instantiation: parse_uri.c:str2ip6
Unexecuted instantiation: parse_fline.c:str2ip6
Unexecuted instantiation: parse_methods.c:str2ip6
Unexecuted instantiation: parse_hname2.c:str2ip6
Unexecuted instantiation: parse_content.c:str2ip6
Unexecuted instantiation: hf.c:str2ip6
Unexecuted instantiation: parse_to.c:str2ip6
Unexecuted instantiation: parse_via.c:str2ip6
Unexecuted instantiation: event_interface.c:str2ip6
Unexecuted instantiation: receive.c:str2ip6
Unexecuted instantiation: error.c:str2ip6
Unexecuted instantiation: script_cb.c:str2ip6
Unexecuted instantiation: ip_addr.c:str2ip6
Unexecuted instantiation: data_lump_rpl.c:str2ip6
Unexecuted instantiation: async.c:str2ip6
Unexecuted instantiation: daemonize.c:str2ip6
Unexecuted instantiation: timer.c:str2ip6
Unexecuted instantiation: trace_api.c:str2ip6
Unexecuted instantiation: mod_fix.c:str2ip6
Unexecuted instantiation: reactor.c:str2ip6
Unexecuted instantiation: strcommon.c:str2ip6
Unexecuted instantiation: forward.c:str2ip6
Unexecuted instantiation: xlog.c:str2ip6
Unexecuted instantiation: blacklists.c:str2ip6
Unexecuted instantiation: msg_callbacks.c:str2ip6
Unexecuted instantiation: usr_avp.c:str2ip6
Unexecuted instantiation: sl_cb.c:str2ip6
Unexecuted instantiation: sdp_ops.c:str2ip6
Unexecuted instantiation: resolve.c:str2ip6
Unexecuted instantiation: io_wait.c:str2ip6
Unexecuted instantiation: transformations.c:str2ip6
Unexecuted instantiation: pvar.c:str2ip6
Unexecuted instantiation: sr_module_deps.c:str2ip6
Unexecuted instantiation: cfg_reload.c:str2ip6
Unexecuted instantiation: socket_info.c:str2ip6
Unexecuted instantiation: time_rec.c:str2ip6
Unexecuted instantiation: data_lump.c:str2ip6
Unexecuted instantiation: status_report.c:str2ip6
Unexecuted instantiation: pt_scaling.c:str2ip6
Unexecuted instantiation: name_alias.c:str2ip6
Unexecuted instantiation: signals.c:str2ip6
Unexecuted instantiation: flags.c:str2ip6
Unexecuted instantiation: db_id.c:str2ip6
Unexecuted instantiation: trans.c:str2ip6
Unexecuted instantiation: sdp.c:str2ip6
Unexecuted instantiation: sdp_helpr_funcs.c:str2ip6
Unexecuted instantiation: digest_parser.c:str2ip6
Unexecuted instantiation: param_parser.c:str2ip6
Unexecuted instantiation: digest.c:str2ip6
Unexecuted instantiation: parse_contact.c:str2ip6
Unexecuted instantiation: parse_body.c:str2ip6
Unexecuted instantiation: parse_security.c:str2ip6
Unexecuted instantiation: parse_call_info.c:str2ip6
Unexecuted instantiation: parse_event.c:str2ip6
Unexecuted instantiation: parse_disposition.c:str2ip6
Unexecuted instantiation: parse_authenticate.c:str2ip6
Unexecuted instantiation: parser_f.c:str2ip6
Unexecuted instantiation: parse_rpid.c:str2ip6
Unexecuted instantiation: parse_ppi.c:str2ip6
Unexecuted instantiation: parse_fcaps.c:str2ip6
Unexecuted instantiation: parse_sst.c:str2ip6
Unexecuted instantiation: parse_rr.c:str2ip6
Unexecuted instantiation: parse_param.c:str2ip6
Unexecuted instantiation: parse_diversion.c:str2ip6
Unexecuted instantiation: parse_nameaddr.c:str2ip6
Unexecuted instantiation: parse_expires.c:str2ip6
Unexecuted instantiation: parse_refer_to.c:str2ip6
Unexecuted instantiation: parse_from.c:str2ip6
Unexecuted instantiation: parse_pai.c:str2ip6
Unexecuted instantiation: evi_transport.c:str2ip6
Unexecuted instantiation: msg_translator.c:str2ip6
Unexecuted instantiation: md5utils.c:str2ip6
Unexecuted instantiation: cfg.tab.c:str2ip6
Unexecuted instantiation: modparam.c:str2ip6
Unexecuted instantiation: crc.c:str2ip6
Unexecuted instantiation: re.c:str2ip6
Unexecuted instantiation: lex.yy.c:str2ip6
Unexecuted instantiation: cfg_pp.c:str2ip6
Unexecuted instantiation: proxy.c:str2ip6
Unexecuted instantiation: shutdown.c:str2ip6
Unexecuted instantiation: cmds.c:str2ip6
Unexecuted instantiation: core_cmds.c:str2ip6
Unexecuted instantiation: serialize.c:str2ip6
Unexecuted instantiation: cachedb.c:str2ip6
Unexecuted instantiation: cachedb_id.c:str2ip6
691
692
693
/*! \brief converts an ip_addr structure to a hostent
694
 * \return pointer to internal statical structure */
695
static inline struct hostent* ip_addr2he(str* name, struct ip_addr* ip)
696
0
{
697
0
  static struct hostent he;
698
0
  static char hostname[256];
699
0
  static char* p_aliases[1];
700
0
  static char* p_addr[2];
701
0
  static char address[16];
702
0
  int len;
703
704
0
  p_aliases[0]=0; /* no aliases*/
705
0
  p_addr[1]=0; /* only one address*/
706
0
  p_addr[0]=address;
707
0
  len = (name->len < 255) ? name->len : 255;
708
0
  strncpy(hostname, name->s, len);
709
0
  hostname[len] = 0;
710
0
  if (ip->len>16) return 0;
711
0
  memcpy(address, ip->u.addr, ip->len);
712
713
0
  he.h_addrtype=ip->af;
714
0
  he.h_length=ip->len;
715
0
  he.h_addr_list=p_addr;
716
0
  he.h_aliases=p_aliases;
717
0
  he.h_name=hostname;
718
0
  return &he;
719
0
}
Unexecuted instantiation: fuzz_csv_parser.c:ip_addr2he
Unexecuted instantiation: csv.c:ip_addr2he
Unexecuted instantiation: dprint.c:ip_addr2he
Unexecuted instantiation: pt.c:ip_addr2he
Unexecuted instantiation: ut.c:ip_addr2he
Unexecuted instantiation: statistics.c:ip_addr2he
Unexecuted instantiation: route.c:ip_addr2he
Unexecuted instantiation: globals.c:ip_addr2he
Unexecuted instantiation: ipc.c:ip_addr2he
Unexecuted instantiation: core_stats.c:ip_addr2he
Unexecuted instantiation: route_struct.c:ip_addr2he
Unexecuted instantiation: dset.c:ip_addr2he
Unexecuted instantiation: pt_load.c:ip_addr2he
Unexecuted instantiation: sr_module.c:ip_addr2he
Unexecuted instantiation: action.c:ip_addr2he
Unexecuted instantiation: db_insertq.c:ip_addr2he
Unexecuted instantiation: db.c:ip_addr2he
Unexecuted instantiation: proto_tcp.c:ip_addr2he
Unexecuted instantiation: proto_udp.c:ip_addr2he
Unexecuted instantiation: net_tcp_proc.c:ip_addr2he
Unexecuted instantiation: net_tcp.c:ip_addr2he
Unexecuted instantiation: tcp_common.c:ip_addr2he
Unexecuted instantiation: net_udp.c:ip_addr2he
Unexecuted instantiation: tcp_conn_profile.c:ip_addr2he
Unexecuted instantiation: trans_trace.c:ip_addr2he
Unexecuted instantiation: net_tcp_report.c:ip_addr2he
Unexecuted instantiation: shm_mem.c:ip_addr2he
Unexecuted instantiation: mi.c:ip_addr2he
Unexecuted instantiation: item.c:ip_addr2he
Unexecuted instantiation: msg_parser.c:ip_addr2he
Unexecuted instantiation: parse_uri.c:ip_addr2he
Unexecuted instantiation: parse_fline.c:ip_addr2he
Unexecuted instantiation: parse_methods.c:ip_addr2he
Unexecuted instantiation: parse_hname2.c:ip_addr2he
Unexecuted instantiation: parse_content.c:ip_addr2he
Unexecuted instantiation: hf.c:ip_addr2he
Unexecuted instantiation: parse_to.c:ip_addr2he
Unexecuted instantiation: parse_via.c:ip_addr2he
Unexecuted instantiation: event_interface.c:ip_addr2he
Unexecuted instantiation: receive.c:ip_addr2he
Unexecuted instantiation: error.c:ip_addr2he
Unexecuted instantiation: script_cb.c:ip_addr2he
Unexecuted instantiation: ip_addr.c:ip_addr2he
Unexecuted instantiation: data_lump_rpl.c:ip_addr2he
Unexecuted instantiation: async.c:ip_addr2he
Unexecuted instantiation: daemonize.c:ip_addr2he
Unexecuted instantiation: timer.c:ip_addr2he
Unexecuted instantiation: trace_api.c:ip_addr2he
Unexecuted instantiation: mod_fix.c:ip_addr2he
Unexecuted instantiation: reactor.c:ip_addr2he
Unexecuted instantiation: strcommon.c:ip_addr2he
Unexecuted instantiation: forward.c:ip_addr2he
Unexecuted instantiation: xlog.c:ip_addr2he
Unexecuted instantiation: blacklists.c:ip_addr2he
Unexecuted instantiation: msg_callbacks.c:ip_addr2he
Unexecuted instantiation: usr_avp.c:ip_addr2he
Unexecuted instantiation: sl_cb.c:ip_addr2he
Unexecuted instantiation: sdp_ops.c:ip_addr2he
Unexecuted instantiation: resolve.c:ip_addr2he
Unexecuted instantiation: io_wait.c:ip_addr2he
Unexecuted instantiation: transformations.c:ip_addr2he
Unexecuted instantiation: pvar.c:ip_addr2he
Unexecuted instantiation: sr_module_deps.c:ip_addr2he
Unexecuted instantiation: cfg_reload.c:ip_addr2he
Unexecuted instantiation: socket_info.c:ip_addr2he
Unexecuted instantiation: time_rec.c:ip_addr2he
Unexecuted instantiation: data_lump.c:ip_addr2he
Unexecuted instantiation: status_report.c:ip_addr2he
Unexecuted instantiation: pt_scaling.c:ip_addr2he
Unexecuted instantiation: name_alias.c:ip_addr2he
Unexecuted instantiation: signals.c:ip_addr2he
Unexecuted instantiation: flags.c:ip_addr2he
Unexecuted instantiation: db_id.c:ip_addr2he
Unexecuted instantiation: trans.c:ip_addr2he
Unexecuted instantiation: sdp.c:ip_addr2he
Unexecuted instantiation: sdp_helpr_funcs.c:ip_addr2he
Unexecuted instantiation: digest_parser.c:ip_addr2he
Unexecuted instantiation: param_parser.c:ip_addr2he
Unexecuted instantiation: digest.c:ip_addr2he
Unexecuted instantiation: parse_contact.c:ip_addr2he
Unexecuted instantiation: parse_body.c:ip_addr2he
Unexecuted instantiation: parse_security.c:ip_addr2he
Unexecuted instantiation: parse_call_info.c:ip_addr2he
Unexecuted instantiation: parse_event.c:ip_addr2he
Unexecuted instantiation: parse_disposition.c:ip_addr2he
Unexecuted instantiation: parse_authenticate.c:ip_addr2he
Unexecuted instantiation: parser_f.c:ip_addr2he
Unexecuted instantiation: parse_rpid.c:ip_addr2he
Unexecuted instantiation: parse_ppi.c:ip_addr2he
Unexecuted instantiation: parse_fcaps.c:ip_addr2he
Unexecuted instantiation: parse_sst.c:ip_addr2he
Unexecuted instantiation: parse_rr.c:ip_addr2he
Unexecuted instantiation: parse_param.c:ip_addr2he
Unexecuted instantiation: parse_diversion.c:ip_addr2he
Unexecuted instantiation: parse_nameaddr.c:ip_addr2he
Unexecuted instantiation: parse_expires.c:ip_addr2he
Unexecuted instantiation: parse_refer_to.c:ip_addr2he
Unexecuted instantiation: parse_from.c:ip_addr2he
Unexecuted instantiation: parse_pai.c:ip_addr2he
Unexecuted instantiation: evi_transport.c:ip_addr2he
Unexecuted instantiation: msg_translator.c:ip_addr2he
Unexecuted instantiation: md5utils.c:ip_addr2he
Unexecuted instantiation: cfg.tab.c:ip_addr2he
Unexecuted instantiation: modparam.c:ip_addr2he
Unexecuted instantiation: crc.c:ip_addr2he
Unexecuted instantiation: re.c:ip_addr2he
Unexecuted instantiation: lex.yy.c:ip_addr2he
Unexecuted instantiation: cfg_pp.c:ip_addr2he
Unexecuted instantiation: proxy.c:ip_addr2he
Unexecuted instantiation: shutdown.c:ip_addr2he
Unexecuted instantiation: cmds.c:ip_addr2he
Unexecuted instantiation: core_cmds.c:ip_addr2he
Unexecuted instantiation: serialize.c:ip_addr2he
Unexecuted instantiation: cachedb.c:ip_addr2he
Unexecuted instantiation: cachedb_id.c:ip_addr2he
720
#endif