Coverage Report

Created: 2025-10-10 06:06

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/opensips/qvalue.h
Line
Count
Source
1
/*
2
 * Handling of the q value
3
 *
4
 * Copyright (C) 2004 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
23
/*!
24
 * \file
25
 * \brief Functions related to the SIP q value
26
 */
27
28
#ifndef _QVALUE_H
29
#define _QVALUE_H 1
30
31
#include <string.h>
32
33
/*! \page QvalueHandling Q Value Handling
34
 *
35
 * The q value expresses the priority of a URI within a set of URIs
36
 * (Contact header field in the same SIP message or dset array in
37
 * ser. The higher is the q value of a URI the higher is the priority
38
 * of the URI.
39
 *
40
 * The q value is usually expressed as a floating point number with
41
 * limited number of decimal digits, for example 0.346. RFC3261 allows
42
 * 0-3 decimal digits.
43
 *
44
 * To speed things up we represent the q value as integer number, it
45
 * is then easier to handle/print the value. To convert float into
46
 * integer we multiply the q value by 1000, i.e.
47
 * (float)0.567 == (int)567. In the opposite direction, values
48
 * higher or equal to 1000 are converted to 1.0 and values below or
49
 * equal to 0 are converted to 0.
50
 *
51
 * Value Q_UNSPECIFIED (which is in fact -1) has a special meaning, it
52
 * means that the q value is not known and the parameter should not be
53
 * printed when printing Contacts, implementations will then use
54
 * implementation specific pre-defined values.
55
 */
56
57
typedef int qvalue_t;
58
59
/*! \brief
60
 * Use this if the value of q is not specified
61
 */
62
0
#define Q_UNSPECIFIED ((qvalue_t)-1)
63
64
65
0
#define MAX_Q ((qvalue_t)1000)
66
0
#define MIN_Q ((qvalue_t)0)
67
68
0
#define MAX_Q_STR "1"
69
0
#define MAX_Q_STR_LEN (sizeof(MAX_Q_STR) - 1)
70
71
0
#define MIN_Q_STR "0"
72
0
#define MIN_Q_STR_LEN (sizeof(MIN_Q_STR) - 1)
73
74
0
#define Q_PREFIX "0."
75
0
#define Q_PREFIX_LEN (sizeof(Q_PREFIX) - 1)
76
77
#define qverr2str(rc) \
78
0
  (rc == E_Q_INV_CHAR ? "bad characters" : \
79
0
   rc == E_Q_EMPTY ? "empty value" : \
80
0
   rc == E_Q_TOO_BIG ? "max value is 1.0" : "bad qvalue")
81
82
83
/*! \brief
84
 * Calculate the length of printed q
85
 */
86
static inline size_t len_q(qvalue_t q)
87
0
{
88
0
  if (q == Q_UNSPECIFIED) {
89
0
    return 0;
90
0
  } else if (q >= MAX_Q) {
91
0
    return MAX_Q_STR_LEN;
92
0
  } else if (q <= MIN_Q) {
93
0
    return MIN_Q_STR_LEN;
94
0
  } else if (q % 100 == 0) {
95
0
    return Q_PREFIX_LEN + 1;
96
0
  } else if (q % 10 == 0) {
97
0
    return Q_PREFIX_LEN + 2;
98
0
  } else {
99
0
    return Q_PREFIX_LEN + 3;
100
0
  }
101
0
}
Unexecuted instantiation: fuzz_csv_parser.c:len_q
Unexecuted instantiation: csv.c:len_q
Unexecuted instantiation: dprint.c:len_q
Unexecuted instantiation: pt.c:len_q
Unexecuted instantiation: ut.c:len_q
Unexecuted instantiation: statistics.c:len_q
Unexecuted instantiation: route.c:len_q
Unexecuted instantiation: ipc.c:len_q
Unexecuted instantiation: core_stats.c:len_q
Unexecuted instantiation: route_struct.c:len_q
Unexecuted instantiation: dset.c:len_q
Unexecuted instantiation: pt_load.c:len_q
Unexecuted instantiation: sr_module.c:len_q
Unexecuted instantiation: action.c:len_q
Unexecuted instantiation: db_insertq.c:len_q
Unexecuted instantiation: db.c:len_q
Unexecuted instantiation: proto_tcp.c:len_q
Unexecuted instantiation: proto_udp.c:len_q
Unexecuted instantiation: net_tcp_proc.c:len_q
Unexecuted instantiation: net_tcp.c:len_q
Unexecuted instantiation: tcp_common.c:len_q
Unexecuted instantiation: net_udp.c:len_q
Unexecuted instantiation: tcp_conn_profile.c:len_q
Unexecuted instantiation: trans_trace.c:len_q
Unexecuted instantiation: net_tcp_report.c:len_q
Unexecuted instantiation: shm_mem.c:len_q
Unexecuted instantiation: mi.c:len_q
Unexecuted instantiation: item.c:len_q
Unexecuted instantiation: msg_parser.c:len_q
Unexecuted instantiation: parse_uri.c:len_q
Unexecuted instantiation: parse_fline.c:len_q
Unexecuted instantiation: parse_methods.c:len_q
Unexecuted instantiation: parse_hname2.c:len_q
Unexecuted instantiation: parse_content.c:len_q
Unexecuted instantiation: hf.c:len_q
Unexecuted instantiation: parse_to.c:len_q
Unexecuted instantiation: parse_via.c:len_q
Unexecuted instantiation: event_interface.c:len_q
Unexecuted instantiation: receive.c:len_q
Unexecuted instantiation: error.c:len_q
Unexecuted instantiation: script_cb.c:len_q
Unexecuted instantiation: ip_addr.c:len_q
Unexecuted instantiation: data_lump_rpl.c:len_q
Unexecuted instantiation: async.c:len_q
Unexecuted instantiation: daemonize.c:len_q
Unexecuted instantiation: timer.c:len_q
Unexecuted instantiation: trace_api.c:len_q
Unexecuted instantiation: mod_fix.c:len_q
Unexecuted instantiation: reactor.c:len_q
Unexecuted instantiation: strcommon.c:len_q
Unexecuted instantiation: forward.c:len_q
Unexecuted instantiation: xlog.c:len_q
Unexecuted instantiation: blacklists.c:len_q
Unexecuted instantiation: msg_callbacks.c:len_q
Unexecuted instantiation: usr_avp.c:len_q
Unexecuted instantiation: sl_cb.c:len_q
Unexecuted instantiation: sdp_ops.c:len_q
Unexecuted instantiation: resolve.c:len_q
Unexecuted instantiation: io_wait.c:len_q
Unexecuted instantiation: transformations.c:len_q
Unexecuted instantiation: pvar.c:len_q
Unexecuted instantiation: sr_module_deps.c:len_q
Unexecuted instantiation: cfg_reload.c:len_q
Unexecuted instantiation: socket_info.c:len_q
Unexecuted instantiation: time_rec.c:len_q
Unexecuted instantiation: data_lump.c:len_q
Unexecuted instantiation: status_report.c:len_q
Unexecuted instantiation: pt_scaling.c:len_q
Unexecuted instantiation: signals.c:len_q
Unexecuted instantiation: flags.c:len_q
Unexecuted instantiation: db_id.c:len_q
Unexecuted instantiation: trans.c:len_q
Unexecuted instantiation: sdp.c:len_q
Unexecuted instantiation: sdp_helpr_funcs.c:len_q
Unexecuted instantiation: digest_parser.c:len_q
Unexecuted instantiation: param_parser.c:len_q
Unexecuted instantiation: digest.c:len_q
Unexecuted instantiation: parse_contact.c:len_q
Unexecuted instantiation: parse_body.c:len_q
Unexecuted instantiation: parse_security.c:len_q
Unexecuted instantiation: parse_call_info.c:len_q
Unexecuted instantiation: parse_event.c:len_q
Unexecuted instantiation: parse_disposition.c:len_q
Unexecuted instantiation: parse_authenticate.c:len_q
Unexecuted instantiation: parser_f.c:len_q
Unexecuted instantiation: parse_rpid.c:len_q
Unexecuted instantiation: parse_ppi.c:len_q
Unexecuted instantiation: parse_fcaps.c:len_q
Unexecuted instantiation: parse_sst.c:len_q
Unexecuted instantiation: parse_rr.c:len_q
Unexecuted instantiation: parse_param.c:len_q
Unexecuted instantiation: parse_diversion.c:len_q
Unexecuted instantiation: parse_nameaddr.c:len_q
Unexecuted instantiation: parse_expires.c:len_q
Unexecuted instantiation: parse_refer_to.c:len_q
Unexecuted instantiation: parse_from.c:len_q
Unexecuted instantiation: parse_pai.c:len_q
Unexecuted instantiation: evi_transport.c:len_q
Unexecuted instantiation: msg_translator.c:len_q
Unexecuted instantiation: md5utils.c:len_q
Unexecuted instantiation: cfg.tab.c:len_q
Unexecuted instantiation: modparam.c:len_q
Unexecuted instantiation: crc.c:len_q
Unexecuted instantiation: re.c:len_q
Unexecuted instantiation: lex.yy.c:len_q
Unexecuted instantiation: cfg_pp.c:len_q
Unexecuted instantiation: shutdown.c:len_q
Unexecuted instantiation: cmds.c:len_q
Unexecuted instantiation: core_cmds.c:len_q
Unexecuted instantiation: serialize.c:len_q
Unexecuted instantiation: qvalue.c:len_q
Unexecuted instantiation: cachedb.c:len_q
Unexecuted instantiation: cachedb_id.c:len_q
102
103
104
/*! \brief
105
 * Convert qvalue_t to double
106
 */
107
static inline double q2double(qvalue_t q)
108
0
{
109
0
  if (q == Q_UNSPECIFIED) {
110
0
    return -1;
111
0
  } else {
112
0
    return (double)((double)q / (double)1000);
113
0
  }
114
0
}
Unexecuted instantiation: fuzz_csv_parser.c:q2double
Unexecuted instantiation: csv.c:q2double
Unexecuted instantiation: dprint.c:q2double
Unexecuted instantiation: pt.c:q2double
Unexecuted instantiation: ut.c:q2double
Unexecuted instantiation: statistics.c:q2double
Unexecuted instantiation: route.c:q2double
Unexecuted instantiation: ipc.c:q2double
Unexecuted instantiation: core_stats.c:q2double
Unexecuted instantiation: route_struct.c:q2double
Unexecuted instantiation: dset.c:q2double
Unexecuted instantiation: pt_load.c:q2double
Unexecuted instantiation: sr_module.c:q2double
Unexecuted instantiation: action.c:q2double
Unexecuted instantiation: db_insertq.c:q2double
Unexecuted instantiation: db.c:q2double
Unexecuted instantiation: proto_tcp.c:q2double
Unexecuted instantiation: proto_udp.c:q2double
Unexecuted instantiation: net_tcp_proc.c:q2double
Unexecuted instantiation: net_tcp.c:q2double
Unexecuted instantiation: tcp_common.c:q2double
Unexecuted instantiation: net_udp.c:q2double
Unexecuted instantiation: tcp_conn_profile.c:q2double
Unexecuted instantiation: trans_trace.c:q2double
Unexecuted instantiation: net_tcp_report.c:q2double
Unexecuted instantiation: shm_mem.c:q2double
Unexecuted instantiation: mi.c:q2double
Unexecuted instantiation: item.c:q2double
Unexecuted instantiation: msg_parser.c:q2double
Unexecuted instantiation: parse_uri.c:q2double
Unexecuted instantiation: parse_fline.c:q2double
Unexecuted instantiation: parse_methods.c:q2double
Unexecuted instantiation: parse_hname2.c:q2double
Unexecuted instantiation: parse_content.c:q2double
Unexecuted instantiation: hf.c:q2double
Unexecuted instantiation: parse_to.c:q2double
Unexecuted instantiation: parse_via.c:q2double
Unexecuted instantiation: event_interface.c:q2double
Unexecuted instantiation: receive.c:q2double
Unexecuted instantiation: error.c:q2double
Unexecuted instantiation: script_cb.c:q2double
Unexecuted instantiation: ip_addr.c:q2double
Unexecuted instantiation: data_lump_rpl.c:q2double
Unexecuted instantiation: async.c:q2double
Unexecuted instantiation: daemonize.c:q2double
Unexecuted instantiation: timer.c:q2double
Unexecuted instantiation: trace_api.c:q2double
Unexecuted instantiation: mod_fix.c:q2double
Unexecuted instantiation: reactor.c:q2double
Unexecuted instantiation: strcommon.c:q2double
Unexecuted instantiation: forward.c:q2double
Unexecuted instantiation: xlog.c:q2double
Unexecuted instantiation: blacklists.c:q2double
Unexecuted instantiation: msg_callbacks.c:q2double
Unexecuted instantiation: usr_avp.c:q2double
Unexecuted instantiation: sl_cb.c:q2double
Unexecuted instantiation: sdp_ops.c:q2double
Unexecuted instantiation: resolve.c:q2double
Unexecuted instantiation: io_wait.c:q2double
Unexecuted instantiation: transformations.c:q2double
Unexecuted instantiation: pvar.c:q2double
Unexecuted instantiation: sr_module_deps.c:q2double
Unexecuted instantiation: cfg_reload.c:q2double
Unexecuted instantiation: socket_info.c:q2double
Unexecuted instantiation: time_rec.c:q2double
Unexecuted instantiation: data_lump.c:q2double
Unexecuted instantiation: status_report.c:q2double
Unexecuted instantiation: pt_scaling.c:q2double
Unexecuted instantiation: signals.c:q2double
Unexecuted instantiation: flags.c:q2double
Unexecuted instantiation: db_id.c:q2double
Unexecuted instantiation: trans.c:q2double
Unexecuted instantiation: sdp.c:q2double
Unexecuted instantiation: sdp_helpr_funcs.c:q2double
Unexecuted instantiation: digest_parser.c:q2double
Unexecuted instantiation: param_parser.c:q2double
Unexecuted instantiation: digest.c:q2double
Unexecuted instantiation: parse_contact.c:q2double
Unexecuted instantiation: parse_body.c:q2double
Unexecuted instantiation: parse_security.c:q2double
Unexecuted instantiation: parse_call_info.c:q2double
Unexecuted instantiation: parse_event.c:q2double
Unexecuted instantiation: parse_disposition.c:q2double
Unexecuted instantiation: parse_authenticate.c:q2double
Unexecuted instantiation: parser_f.c:q2double
Unexecuted instantiation: parse_rpid.c:q2double
Unexecuted instantiation: parse_ppi.c:q2double
Unexecuted instantiation: parse_fcaps.c:q2double
Unexecuted instantiation: parse_sst.c:q2double
Unexecuted instantiation: parse_rr.c:q2double
Unexecuted instantiation: parse_param.c:q2double
Unexecuted instantiation: parse_diversion.c:q2double
Unexecuted instantiation: parse_nameaddr.c:q2double
Unexecuted instantiation: parse_expires.c:q2double
Unexecuted instantiation: parse_refer_to.c:q2double
Unexecuted instantiation: parse_from.c:q2double
Unexecuted instantiation: parse_pai.c:q2double
Unexecuted instantiation: evi_transport.c:q2double
Unexecuted instantiation: msg_translator.c:q2double
Unexecuted instantiation: md5utils.c:q2double
Unexecuted instantiation: cfg.tab.c:q2double
Unexecuted instantiation: modparam.c:q2double
Unexecuted instantiation: crc.c:q2double
Unexecuted instantiation: re.c:q2double
Unexecuted instantiation: lex.yy.c:q2double
Unexecuted instantiation: cfg_pp.c:q2double
Unexecuted instantiation: shutdown.c:q2double
Unexecuted instantiation: cmds.c:q2double
Unexecuted instantiation: core_cmds.c:q2double
Unexecuted instantiation: serialize.c:q2double
Unexecuted instantiation: qvalue.c:q2double
Unexecuted instantiation: cachedb.c:q2double
Unexecuted instantiation: cachedb_id.c:q2double
115
116
117
/*! \brief
118
 * Convert double to qvalue_t
119
 */
120
static inline qvalue_t double2q(double q)
121
0
{
122
0
  if (q == -1) {
123
0
    return Q_UNSPECIFIED;
124
0
  } else {
125
0
    return q * 1000;
126
0
  }
127
0
}
Unexecuted instantiation: fuzz_csv_parser.c:double2q
Unexecuted instantiation: csv.c:double2q
Unexecuted instantiation: dprint.c:double2q
Unexecuted instantiation: pt.c:double2q
Unexecuted instantiation: ut.c:double2q
Unexecuted instantiation: statistics.c:double2q
Unexecuted instantiation: route.c:double2q
Unexecuted instantiation: ipc.c:double2q
Unexecuted instantiation: core_stats.c:double2q
Unexecuted instantiation: route_struct.c:double2q
Unexecuted instantiation: dset.c:double2q
Unexecuted instantiation: pt_load.c:double2q
Unexecuted instantiation: sr_module.c:double2q
Unexecuted instantiation: action.c:double2q
Unexecuted instantiation: db_insertq.c:double2q
Unexecuted instantiation: db.c:double2q
Unexecuted instantiation: proto_tcp.c:double2q
Unexecuted instantiation: proto_udp.c:double2q
Unexecuted instantiation: net_tcp_proc.c:double2q
Unexecuted instantiation: net_tcp.c:double2q
Unexecuted instantiation: tcp_common.c:double2q
Unexecuted instantiation: net_udp.c:double2q
Unexecuted instantiation: tcp_conn_profile.c:double2q
Unexecuted instantiation: trans_trace.c:double2q
Unexecuted instantiation: net_tcp_report.c:double2q
Unexecuted instantiation: shm_mem.c:double2q
Unexecuted instantiation: mi.c:double2q
Unexecuted instantiation: item.c:double2q
Unexecuted instantiation: msg_parser.c:double2q
Unexecuted instantiation: parse_uri.c:double2q
Unexecuted instantiation: parse_fline.c:double2q
Unexecuted instantiation: parse_methods.c:double2q
Unexecuted instantiation: parse_hname2.c:double2q
Unexecuted instantiation: parse_content.c:double2q
Unexecuted instantiation: hf.c:double2q
Unexecuted instantiation: parse_to.c:double2q
Unexecuted instantiation: parse_via.c:double2q
Unexecuted instantiation: event_interface.c:double2q
Unexecuted instantiation: receive.c:double2q
Unexecuted instantiation: error.c:double2q
Unexecuted instantiation: script_cb.c:double2q
Unexecuted instantiation: ip_addr.c:double2q
Unexecuted instantiation: data_lump_rpl.c:double2q
Unexecuted instantiation: async.c:double2q
Unexecuted instantiation: daemonize.c:double2q
Unexecuted instantiation: timer.c:double2q
Unexecuted instantiation: trace_api.c:double2q
Unexecuted instantiation: mod_fix.c:double2q
Unexecuted instantiation: reactor.c:double2q
Unexecuted instantiation: strcommon.c:double2q
Unexecuted instantiation: forward.c:double2q
Unexecuted instantiation: xlog.c:double2q
Unexecuted instantiation: blacklists.c:double2q
Unexecuted instantiation: msg_callbacks.c:double2q
Unexecuted instantiation: usr_avp.c:double2q
Unexecuted instantiation: sl_cb.c:double2q
Unexecuted instantiation: sdp_ops.c:double2q
Unexecuted instantiation: resolve.c:double2q
Unexecuted instantiation: io_wait.c:double2q
Unexecuted instantiation: transformations.c:double2q
Unexecuted instantiation: pvar.c:double2q
Unexecuted instantiation: sr_module_deps.c:double2q
Unexecuted instantiation: cfg_reload.c:double2q
Unexecuted instantiation: socket_info.c:double2q
Unexecuted instantiation: time_rec.c:double2q
Unexecuted instantiation: data_lump.c:double2q
Unexecuted instantiation: status_report.c:double2q
Unexecuted instantiation: pt_scaling.c:double2q
Unexecuted instantiation: signals.c:double2q
Unexecuted instantiation: flags.c:double2q
Unexecuted instantiation: db_id.c:double2q
Unexecuted instantiation: trans.c:double2q
Unexecuted instantiation: sdp.c:double2q
Unexecuted instantiation: sdp_helpr_funcs.c:double2q
Unexecuted instantiation: digest_parser.c:double2q
Unexecuted instantiation: param_parser.c:double2q
Unexecuted instantiation: digest.c:double2q
Unexecuted instantiation: parse_contact.c:double2q
Unexecuted instantiation: parse_body.c:double2q
Unexecuted instantiation: parse_security.c:double2q
Unexecuted instantiation: parse_call_info.c:double2q
Unexecuted instantiation: parse_event.c:double2q
Unexecuted instantiation: parse_disposition.c:double2q
Unexecuted instantiation: parse_authenticate.c:double2q
Unexecuted instantiation: parser_f.c:double2q
Unexecuted instantiation: parse_rpid.c:double2q
Unexecuted instantiation: parse_ppi.c:double2q
Unexecuted instantiation: parse_fcaps.c:double2q
Unexecuted instantiation: parse_sst.c:double2q
Unexecuted instantiation: parse_rr.c:double2q
Unexecuted instantiation: parse_param.c:double2q
Unexecuted instantiation: parse_diversion.c:double2q
Unexecuted instantiation: parse_nameaddr.c:double2q
Unexecuted instantiation: parse_expires.c:double2q
Unexecuted instantiation: parse_refer_to.c:double2q
Unexecuted instantiation: parse_from.c:double2q
Unexecuted instantiation: parse_pai.c:double2q
Unexecuted instantiation: evi_transport.c:double2q
Unexecuted instantiation: msg_translator.c:double2q
Unexecuted instantiation: md5utils.c:double2q
Unexecuted instantiation: cfg.tab.c:double2q
Unexecuted instantiation: modparam.c:double2q
Unexecuted instantiation: crc.c:double2q
Unexecuted instantiation: re.c:double2q
Unexecuted instantiation: lex.yy.c:double2q
Unexecuted instantiation: cfg_pp.c:double2q
Unexecuted instantiation: shutdown.c:double2q
Unexecuted instantiation: cmds.c:double2q
Unexecuted instantiation: core_cmds.c:double2q
Unexecuted instantiation: serialize.c:double2q
Unexecuted instantiation: qvalue.c:double2q
Unexecuted instantiation: cachedb.c:double2q
Unexecuted instantiation: cachedb_id.c:double2q
128
129
130
/*! \brief
131
 * Convert q value to string
132
 */
133
static inline char* q2str(qvalue_t q, unsigned int* len)
134
0
{
135
0
  static char buf[sizeof("0.123")];
136
0
  char* p;
137
138
0
  p = buf;
139
0
  if (q == Q_UNSPECIFIED) {
140
         /* Do nothing */
141
0
  } else if (q >= MAX_Q) {
142
0
    memcpy(p, MAX_Q_STR, MAX_Q_STR_LEN);
143
0
    p += MAX_Q_STR_LEN;
144
0
  } else if (q <= MIN_Q) {
145
0
    memcpy(p, MIN_Q_STR, MIN_Q_STR_LEN);
146
0
    p += MIN_Q_STR_LEN;
147
0
  } else {
148
0
    memcpy(p, Q_PREFIX, Q_PREFIX_LEN);
149
0
    p += Q_PREFIX_LEN;
150
151
0
    *p++ = q / 100 + '0';
152
0
    q %= 100;
153
0
    if (!q) goto end;
154
155
0
    *p++ = q / 10 + '0';
156
0
    q %= 10;
157
0
    if (!q) goto end;
158
159
0
    *p++ = q + '0';
160
0
  }
161
0
 end:
162
0
  *p = '\0';
163
0
  if (len) {
164
0
    *len = p - buf;
165
0
  }
166
0
  return buf;
167
0
}
Unexecuted instantiation: fuzz_csv_parser.c:q2str
Unexecuted instantiation: csv.c:q2str
Unexecuted instantiation: dprint.c:q2str
Unexecuted instantiation: pt.c:q2str
Unexecuted instantiation: ut.c:q2str
Unexecuted instantiation: statistics.c:q2str
Unexecuted instantiation: route.c:q2str
Unexecuted instantiation: ipc.c:q2str
Unexecuted instantiation: core_stats.c:q2str
Unexecuted instantiation: route_struct.c:q2str
Unexecuted instantiation: dset.c:q2str
Unexecuted instantiation: pt_load.c:q2str
Unexecuted instantiation: sr_module.c:q2str
Unexecuted instantiation: action.c:q2str
Unexecuted instantiation: db_insertq.c:q2str
Unexecuted instantiation: db.c:q2str
Unexecuted instantiation: proto_tcp.c:q2str
Unexecuted instantiation: proto_udp.c:q2str
Unexecuted instantiation: net_tcp_proc.c:q2str
Unexecuted instantiation: net_tcp.c:q2str
Unexecuted instantiation: tcp_common.c:q2str
Unexecuted instantiation: net_udp.c:q2str
Unexecuted instantiation: tcp_conn_profile.c:q2str
Unexecuted instantiation: trans_trace.c:q2str
Unexecuted instantiation: net_tcp_report.c:q2str
Unexecuted instantiation: shm_mem.c:q2str
Unexecuted instantiation: mi.c:q2str
Unexecuted instantiation: item.c:q2str
Unexecuted instantiation: msg_parser.c:q2str
Unexecuted instantiation: parse_uri.c:q2str
Unexecuted instantiation: parse_fline.c:q2str
Unexecuted instantiation: parse_methods.c:q2str
Unexecuted instantiation: parse_hname2.c:q2str
Unexecuted instantiation: parse_content.c:q2str
Unexecuted instantiation: hf.c:q2str
Unexecuted instantiation: parse_to.c:q2str
Unexecuted instantiation: parse_via.c:q2str
Unexecuted instantiation: event_interface.c:q2str
Unexecuted instantiation: receive.c:q2str
Unexecuted instantiation: error.c:q2str
Unexecuted instantiation: script_cb.c:q2str
Unexecuted instantiation: ip_addr.c:q2str
Unexecuted instantiation: data_lump_rpl.c:q2str
Unexecuted instantiation: async.c:q2str
Unexecuted instantiation: daemonize.c:q2str
Unexecuted instantiation: timer.c:q2str
Unexecuted instantiation: trace_api.c:q2str
Unexecuted instantiation: mod_fix.c:q2str
Unexecuted instantiation: reactor.c:q2str
Unexecuted instantiation: strcommon.c:q2str
Unexecuted instantiation: forward.c:q2str
Unexecuted instantiation: xlog.c:q2str
Unexecuted instantiation: blacklists.c:q2str
Unexecuted instantiation: msg_callbacks.c:q2str
Unexecuted instantiation: usr_avp.c:q2str
Unexecuted instantiation: sl_cb.c:q2str
Unexecuted instantiation: sdp_ops.c:q2str
Unexecuted instantiation: resolve.c:q2str
Unexecuted instantiation: io_wait.c:q2str
Unexecuted instantiation: transformations.c:q2str
Unexecuted instantiation: pvar.c:q2str
Unexecuted instantiation: sr_module_deps.c:q2str
Unexecuted instantiation: cfg_reload.c:q2str
Unexecuted instantiation: socket_info.c:q2str
Unexecuted instantiation: time_rec.c:q2str
Unexecuted instantiation: data_lump.c:q2str
Unexecuted instantiation: status_report.c:q2str
Unexecuted instantiation: pt_scaling.c:q2str
Unexecuted instantiation: signals.c:q2str
Unexecuted instantiation: flags.c:q2str
Unexecuted instantiation: db_id.c:q2str
Unexecuted instantiation: trans.c:q2str
Unexecuted instantiation: sdp.c:q2str
Unexecuted instantiation: sdp_helpr_funcs.c:q2str
Unexecuted instantiation: digest_parser.c:q2str
Unexecuted instantiation: param_parser.c:q2str
Unexecuted instantiation: digest.c:q2str
Unexecuted instantiation: parse_contact.c:q2str
Unexecuted instantiation: parse_body.c:q2str
Unexecuted instantiation: parse_security.c:q2str
Unexecuted instantiation: parse_call_info.c:q2str
Unexecuted instantiation: parse_event.c:q2str
Unexecuted instantiation: parse_disposition.c:q2str
Unexecuted instantiation: parse_authenticate.c:q2str
Unexecuted instantiation: parser_f.c:q2str
Unexecuted instantiation: parse_rpid.c:q2str
Unexecuted instantiation: parse_ppi.c:q2str
Unexecuted instantiation: parse_fcaps.c:q2str
Unexecuted instantiation: parse_sst.c:q2str
Unexecuted instantiation: parse_rr.c:q2str
Unexecuted instantiation: parse_param.c:q2str
Unexecuted instantiation: parse_diversion.c:q2str
Unexecuted instantiation: parse_nameaddr.c:q2str
Unexecuted instantiation: parse_expires.c:q2str
Unexecuted instantiation: parse_refer_to.c:q2str
Unexecuted instantiation: parse_from.c:q2str
Unexecuted instantiation: parse_pai.c:q2str
Unexecuted instantiation: evi_transport.c:q2str
Unexecuted instantiation: msg_translator.c:q2str
Unexecuted instantiation: md5utils.c:q2str
Unexecuted instantiation: cfg.tab.c:q2str
Unexecuted instantiation: modparam.c:q2str
Unexecuted instantiation: crc.c:q2str
Unexecuted instantiation: re.c:q2str
Unexecuted instantiation: lex.yy.c:q2str
Unexecuted instantiation: cfg_pp.c:q2str
Unexecuted instantiation: shutdown.c:q2str
Unexecuted instantiation: cmds.c:q2str
Unexecuted instantiation: core_cmds.c:q2str
Unexecuted instantiation: serialize.c:q2str
Unexecuted instantiation: qvalue.c:q2str
Unexecuted instantiation: cachedb.c:q2str
Unexecuted instantiation: cachedb_id.c:q2str
168
169
170
/*! \brief
171
 * Convert string representation of q parameter in qvalue_t
172
 */
173
int str2q(qvalue_t* q, char* s, int len);
174
175
176
#endif /* _QVALUE_H */