[Freeswitch-svn] [commit] r11794 - in freeswitch/trunk/libs/sofia-sip: . libsofia-sip-ua/nta libsofia-sip-ua/nta/sofia-sip
FreeSWITCH SVN
mikej at freeswitch.org
Wed Feb 11 08:46:51 PST 2009
Author: mikej
Date: Wed Feb 11 10:46:50 2009
New Revision: 11794
Log:
Thu Jan 8 12:38:05 CST 2009 Pekka Pessi <first.last at nokia.com>
* nta: use <sofia-sip/su_string.h> functions
Modified:
freeswitch/trunk/libs/sofia-sip/.update
freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta.c
freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta_check.c
freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/sl_utils_log.c
freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/sl_utils_print.c
freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/sofia-sip/sl_utils.h
freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/test_nta.c
freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/test_nta_api.c
Modified: freeswitch/trunk/libs/sofia-sip/.update
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/.update (original)
+++ freeswitch/trunk/libs/sofia-sip/.update Wed Feb 11 10:46:50 2009
@@ -1 +1 @@
-Wed Feb 11 10:46:12 CST 2009
+Wed Feb 11 10:46:42 CST 2009
Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta.c (original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta.c Wed Feb 11 10:46:50 2009
@@ -41,11 +41,14 @@
* @author Pekka Pessi <Pekka.Pessi at nokia.com>
*
* @date Created: Tue Jun 13 02:57:51 2000 ppessi
+ *
+ * @sa
+ * @RFC3261, @RFC4320
*/
#include "config.h"
-#include <sofia-sip/string0.h>
+#include <sofia-sip/su_string.h>
/** @internal SU message argument structure type */
#define SU_MSG_ARG_T union sm_arg_u
@@ -315,7 +318,7 @@
outgoing_queue_t delayed[1];
outgoing_queue_t resolving[1];
- outgoing_queue_t trying[1]; /* Timer F/E */
+ outgoing_queue_t trying[1]; /* Timer F / Timer E */
outgoing_queue_t completed[1]; /* Timer K */
outgoing_queue_t terminated[1];
@@ -1126,21 +1129,21 @@
sip_via_t const *v;
for (v = agent->sa_public_vias; v; v = v->v_next) {
- if (strcasecmp(via->v_host, v->v_host))
+ if (!su_casematch(via->v_host, v->v_host))
continue;
- if (str0cmp(via->v_port, v->v_port))
+ if (!su_strmatch(via->v_port, v->v_port))
continue;
- if (strcasecmp(via->v_protocol, v->v_protocol))
+ if (!su_casematch(via->v_protocol, v->v_protocol))
continue;
return (sip_via_t *)v;
}
for (v = agent->sa_vias; v; v = v->v_next) {
- if (strcasecmp(via->v_host, v->v_host))
+ if (!su_casematch(via->v_host, v->v_host))
continue;
- if (str0cmp(via->v_port, v->v_port))
+ if (!su_strmatch(via->v_port, v->v_port))
continue;
- if (strcasecmp(via->v_protocol, v->v_protocol))
+ if (!su_casematch(via->v_protocol, v->v_protocol))
continue;
return (sip_via_t *)v;
}
@@ -1570,7 +1573,7 @@
if (algorithm != NONE)
agent->sa_algorithm = su_strdup(home, algorithm);
- if (str0cmp(sigcomp, agent->sa_sigcomp_options)) {
+ if (!su_strmatch(sigcomp, agent->sa_sigcomp_options)) {
msg_param_t const *l = NULL;
char *s = su_strdup(home, sigcomp);
char *s1 = su_strdup(home, s), *s2 = s1;
@@ -2181,7 +2184,7 @@
if (tpn->tpn_comp &&
(nta_compressor_vtable == NULL ||
- strcasecmp(tpn->tpn_comp, nta_compressor_vtable->ncv_name) != 0)) {
+ !su_casematch(tpn->tpn_comp, nta_compressor_vtable->ncv_name))) {
SU_DEBUG_1(("nta(%p): comp=%s not supported for " URL_PRINT_FORMAT "\n",
(void *)self, tpn->tpn_comp, URL_PRINT_ARGS(url)));
}
@@ -2308,11 +2311,11 @@
if (tport_has_ip6(tp)) self->sa_tport_ip6 = 1;
#endif
- if (strcasecmp(tpn->tpn_proto, "udp") == 0)
+ if (su_casematch(tpn->tpn_proto, "udp"))
self->sa_tport_udp = 1;
- else if (strcasecmp(tpn->tpn_proto, "tcp") == 0)
+ else if (su_casematch(tpn->tpn_proto, "tcp"))
self->sa_tport_tcp = 1;
- else if (strcasecmp(tpn->tpn_proto, "sctp") == 0)
+ else if (su_casematch(tpn->tpn_proto, "sctp"))
self->sa_tport_sctp = 1;
if (tport_has_tls(tp)) self->sa_tport_tls = 1;
@@ -2330,7 +2333,7 @@
if (su) {
su_inet_ntop(su->su_family, SU_ADDR(su), host, sizeof host);
- maddr = use_maddr && strcasecmp(canon, host) != 0;
+ maddr = use_maddr && !su_casematch(canon, host);
port = ntohs(su->su_port);
}
else {
@@ -2340,9 +2343,9 @@
port = 0;
}
- if (strncasecmp(tpn->tpn_proto, "tls", 3)
- ? port == SIP_DEFAULT_PORT
- : port == SIPS_DEFAULT_PORT)
+ if (su_casenmatch(tpn->tpn_proto, "tls", 3)
+ ? port == SIPS_DEFAULT_PORT
+ : port == SIP_DEFAULT_PORT)
port = 0;
snprintf(sport, sizeof sport, ":%u", port);
@@ -2471,15 +2474,15 @@
v2 = v1->v_next;
if (v2 &&
- strcasecmp(v1->v_host, v2->v_host) == 0 &&
- str0casecmp(v1->v_port, v2->v_port) == 0) {
+ su_casematch(v1->v_host, v2->v_host) &&
+ su_casematch(v1->v_port, v2->v_port)) {
char const *p1 = v1->v_protocol, *p2 = v2->v_protocol;
- if (strcasecmp(p1, sip_transport_udp))
+ if (!su_casematch(p1, sip_transport_udp))
p1 = v2->v_protocol, p2 = v1->v_protocol;
- if (strcasecmp(p1, sip_transport_udp) == 0 &&
- strcasecmp(p2, sip_transport_tcp) == 0)
+ if (su_casematch(p1, sip_transport_udp) &&
+ su_casematch(p2, sip_transport_tcp))
/* Do not include transport if we have both UDP and TCP */
tp = NULL;
}
@@ -2541,26 +2544,23 @@
if (branch && branch != v->v_branch) {
char const *bvalue = branch + strcspn(branch, "=");
if (*bvalue) bvalue++;
- if (!v->v_branch || strcasecmp(bvalue, v->v_branch))
+ if (!v->v_branch || !su_casematch(bvalue, v->v_branch))
msg_header_replace_param(msg_home(msg), v->v_common, branch);
}
- if (via->v_protocol != v->v_protocol &&
- strcasecmp(via->v_protocol, v->v_protocol))
+ if (!su_casematch(via->v_protocol, v->v_protocol))
clear = 1, v->v_protocol = via->v_protocol;
/* XXX - should we do this? */
if ((!user_via || !v->v_host) &&
- via->v_host != v->v_host &&
- str0cmp(via->v_host, v->v_host))
+ !su_strmatch(via->v_host, v->v_host))
clear = 1, v->v_host = via->v_host;
if ((!user_via || !v->v_port ||
/* Replace port in user Via only if we use udp and no rport */
(v->v_protocol == sip_transport_udp && !v->v_rport &&
!orq->orq_stateless)) &&
- via->v_port != v->v_port &&
- str0cmp(via->v_port, v->v_port))
+ !su_strmatch(via->v_port, v->v_port))
clear = 1, v->v_port = via->v_port;
if (clear)
@@ -2628,7 +2628,7 @@
SU_DEBUG_7(("nta: selecting scheme %s\n", url->url_scheme));
*scheme = url->url_scheme;
- if (strcasecmp(url->url_scheme, "sips") == 0)
+ if (su_casematch(url->url_scheme, "sips"))
tpn->tpn_proto = "tls";
else
tpn->tpn_proto = "*";
@@ -2639,11 +2639,11 @@
for (b = (char *)url->url_params; b[0]; b += n) {
n = strcspn(b, ";");
- if (n > 10 && strncasecmp(b, "transport=", 10) == 0)
+ if (n > 10 && su_casenmatch(b, "transport=", 10))
tpn->tpn_proto = b + 10;
- else if (n > 5 && strncasecmp(b, "comp=", 5) == 0)
+ else if (n > 5 && su_casenmatch(b, "comp=", 5))
tpn->tpn_comp = b + 5;
- else if (n > 6 && strncasecmp(b, "maddr=", 6) == 0)
+ else if (n > 6 && su_casenmatch(b, "maddr=", 6))
tpn->tpn_host = b + 6;
if (b[n])
@@ -2845,7 +2845,7 @@
return;
}
- if (str0casecmp(sip->sip_request->rq_version, sip_version_2_0) != 0) {
+ if (!su_casematch(sip->sip_request->rq_version, sip_version_2_0)) {
agent->sa_stats->as_bad_request++;
agent->sa_stats->as_bad_message++;
@@ -3008,7 +3008,7 @@
return v ? 0 : -1;
}
- if (str0casecmp(v->v_protocol, tpv->v_protocol)) {
+ if (!su_strmatch(v->v_protocol, tpv->v_protocol)) {
tport_hostport(hostport, TPORT_HOSTPORTSIZE, from, 1);
SU_DEBUG_1(("nta: Via check: invalid transport \"%s\" from %s\n",
v->v_protocol, hostport));
@@ -3026,7 +3026,7 @@
if (!tport_hostport(hostport, TPORT_HOSTPORTSIZE, from, 0))
return -1;
- if (strcasecmp(hostport, v->v_host)) {
+ if (!su_casematch(hostport, v->v_host)) {
size_t rlen;
/* Add the "received" field */
memcpy(received, "received=", receivedlen);
@@ -3127,9 +3127,9 @@
url->url_port = lv->v_port;
return 1;
}
- if (url->url_port &&
- strcmp(url->url_port, url_port_default(url->url_type)) == 0)
- /* Remove default port */
+ if (su_strmatch(url->url_port, url_port_default(url->url_type)) ||
+ su_strmatch(url->url_port, ""))
+ /* Remove default or empty port */
url->url_port = NULL;
return 0;
@@ -3196,7 +3196,7 @@
return;
}
- if (str0casecmp(sip->sip_status->st_version, sip_version_2_0) != 0) {
+ if (!su_casematch(sip->sip_status->st_version, sip_version_2_0)) {
agent->sa_stats->as_bad_response++;
agent->sa_stats->as_bad_message++;
@@ -3807,7 +3807,6 @@
su_home_t *home = msg_home(msg);
sip_t *sip = sip_object(msg);
sip_to_t const *to;
- sip_cseq_t *cseq;
uint32_t seq;
url_t reg_url[1];
url_string_t const *original = request_uri;
@@ -3865,7 +3864,7 @@
if (!rq
|| request_uri != (url_string_t *)rq->rq_url
|| method != rq->rq_method
- || str0cmp(method_name, rq->rq_method_name))
+ || !su_strmatch(method_name, rq->rq_method_name))
rq = NULL;
if (rq == NULL) {
@@ -3905,7 +3904,7 @@
sip->sip_from = sip_from_dup(home, leg->leg_local);
else if (leg->leg_local && leg->leg_local->a_tag &&
(!sip->sip_from->a_tag ||
- strcasecmp(sip->sip_from->a_tag, leg->leg_local->a_tag)))
+ !su_casematch(sip->sip_from->a_tag, leg->leg_local->a_tag)))
sip_from_tag(home, sip->sip_from, leg->leg_local->a_tag);
if (sip->sip_from && !sip->sip_from->a_tag) {
@@ -3952,14 +3951,14 @@
sip->sip_call_id = sip_call_id_create(home, NULL);
}
- if ((!sip->sip_cseq ||
- seq != sip->sip_cseq->cs_seq ||
- method != sip->sip_cseq->cs_method ||
- (method == sip_method_unknown &&
- strcmp(method_name, sip->sip_cseq->cs_method_name) != 0)) &&
- (!(cseq = sip_cseq_create(home, seq, method, method_name)) ||
- msg_header_insert(msg, (msg_pub_t *)sip, (msg_header_t *)cseq) < 0))
- return -1;
+ if (!sip->sip_cseq ||
+ seq != sip->sip_cseq->cs_seq ||
+ method != sip->sip_cseq->cs_method ||
+ !su_strmatch(method_name, sip->sip_cseq->cs_method_name)) {
+ sip_cseq_t *cseq = sip_cseq_create(home, seq, method, method_name);
+ if (msg_header_insert(msg, (msg_pub_t *)sip, (msg_header_t *)cseq) < 0)
+ return -1;
+ }
return 0;
}
@@ -4391,10 +4390,10 @@
/* If there already is a tag,
return NULL if it does not match with new one */
if (leg->leg_local->a_tag) {
- if (!tag && str0casecmp(tag, leg->leg_local->a_tag))
- return NULL;
- else
+ if (su_casematch(tag, leg->leg_local->a_tag))
return leg->leg_local->a_tag;
+ else
+ return NULL;
}
if (tag) {
@@ -4711,9 +4710,9 @@
return 0;
else
return
- host_cmp(a->url_host, b->url_host)
- || str0cmp(a->url_port, b->url_port)
- || str0cmp(a->url_user, b->url_user);
+ host_cmp(a->url_host, b->url_host) ||
+ su_strcmp(a->url_port, b->url_port) ||
+ su_strcmp(a->url_user, b->url_user);
}
/** Get a leg by dialog.
@@ -4836,14 +4835,14 @@
if (!remote_tag != !from_tag && !local_tag != !to_tag)
continue;
- if (local_tag && to_tag && strcasecmp(local_tag, to_tag) && to_tag[0])
+ if (local_tag && to_tag && !su_casematch(local_tag, to_tag) && to_tag[0])
continue;
- if (remote_tag && from_tag && strcasecmp(remote_tag, from_tag) && from_tag[0])
+ if (remote_tag && from_tag && !su_casematch(remote_tag, from_tag) && from_tag[0])
continue;
if (leg_url && request_uri && url_cmp(leg_url, request_uri))
continue;
- if (leg_method && method_name && strcasecmp(method_name, leg_method))
+ if (leg_method && method_name && !su_casematch(method_name, leg_method))
continue;
/* Perfect match if both local and To have tag
@@ -4916,7 +4915,7 @@
return leg;
}
else if (leg->leg_method) {
- if (strcasecmp(method_name, leg->leg_method))
+ if (!su_casematch(method_name, leg->leg_method))
continue;
return leg;
}
@@ -5657,7 +5656,7 @@
if (tag && strchr(tag, '='))
tag = strchr(tag, '=') + 1;
- if (tag && irq->irq_tag && strcasecmp(tag, irq->irq_tag))
+ if (tag && irq->irq_tag && !su_casematch(tag, irq->irq_tag))
return NULL;
if (!irq->irq_tag) {
@@ -5845,7 +5844,7 @@
int is_uas_ack = return_ack && agent->sa_is_a_uas;
- if (v->v_branch && strncasecmp(v->v_branch, "z9hG4bK", 7) == 0)
+ if (v->v_branch && su_casenmatch(v->v_branch, "z9hG4bK", 7))
magic_branch = v->v_branch + 7;
else
magic_branch = NULL;
@@ -5859,13 +5858,13 @@
continue;
if (irq->irq_cseq->cs_seq != cseq->cs_seq)
continue;
- if (str0casecmp(irq->irq_from->a_tag, from->a_tag))
+ if (su_strcasecmp(irq->irq_from->a_tag, from->a_tag))
continue;
if (is_uas_ack &&
irq->irq_method == sip_method_invite &&
200 <= irq->irq_status && irq->irq_status < 300 &&
- str0casecmp(irq->irq_tag, to->a_tag) == 0) {
+ su_casematch(irq->irq_tag, to->a_tag)) {
*return_ack = irq;
return NULL;
}
@@ -5878,11 +5877,10 @@
* transaction, except for ACK, where the method of the request
* that created the transaction is INVITE.
*/
-
if (irq->irq_via->v_branch &&
- strcasecmp(irq->irq_via->v_branch + 7, magic_branch) == 0 &&
- strcasecmp(irq->irq_via->v_host, v->v_host) == 0 &&
- str0cmp(irq->irq_via->v_port, v->v_port) == 0) {
+ su_casematch(irq->irq_via->v_branch + 7, magic_branch) &&
+ su_casematch(irq->irq_via->v_host, v->v_host) &&
+ su_strmatch(irq->irq_via->v_port, v->v_port)) {
if (irq->irq_method == cseq->cs_method &&
strcmp(irq->irq_cseq->cs_method_name,
cseq->cs_method_name) == 0)
@@ -5903,9 +5901,9 @@
/* From tag, Call-ID, and CSeq number has been matched above */
/* Match top Via header field */
- if (str0casecmp(irq->irq_via->v_branch, v->v_branch) != 0 ||
- strcasecmp(irq->irq_via->v_host, v->v_host) != 0 ||
- str0cmp(irq->irq_via->v_port, v->v_port) != 0)
+ if (!su_casematch(irq->irq_via->v_branch, v->v_branch) ||
+ !su_casematch(irq->irq_via->v_host, v->v_host) ||
+ !su_strmatch(irq->irq_via->v_port, v->v_port))
;
/* Match Request-URI */
else if (url_cmp(irq->irq_rq->rq_url, rq->rq_url))
@@ -5913,17 +5911,16 @@
else {
/* Match CSeq */
if (irq->irq_method == cseq->cs_method &&
- strcmp(irq->irq_cseq->cs_method_name,
- cseq->cs_method_name) == 0) {
+ su_strmatch(irq->irq_cseq->cs_method_name, cseq->cs_method_name)) {
/* Match To tag */
- if (!str0casecmp(irq->irq_to->a_tag, to->a_tag))
+ if (!su_strcasecmp(irq->irq_to->a_tag, to->a_tag))
return irq; /* found */
}
else if (
/* Tag set by UAS */
- str0casecmp(irq->irq_tag, to->a_tag) &&
+ su_strcasecmp(irq->irq_tag, to->a_tag) &&
/* Original tag */
- str0casecmp(irq->irq_to->a_tag, to->a_tag))
+ su_strcasecmp(irq->irq_to->a_tag, to->a_tag))
;
else if (return_ack && irq->irq_method == sip_method_invite)
return *return_ack = irq, NULL;
@@ -7684,13 +7681,13 @@
if (comp == NULL)
orq->orq_tpn->tpn_comp = comp;
- if (orq->orq_user_via && str0cmp(orq->orq_tpn->tpn_proto, "*") == 0) {
+ if (orq->orq_user_via && su_strmatch(orq->orq_tpn->tpn_proto, "*")) {
char const *proto = sip_via_transport(sip->sip_via);
if (proto) orq->orq_tpn->tpn_proto = proto;
}
if (branch && branch != NONE) {
- if (strncasecmp(branch, "branch=", 7) == 0)
+ if (su_casenmatch(branch, "branch=", 7))
branch = su_strdup(home, branch);
else
branch = su_sprintf(home, "branch=%s", branch);
@@ -7708,7 +7705,7 @@
if (orq->orq_method == sip_method_ack) {
/* Find the original INVITE which we are ACKing */
if (ack_branch != NULL && ack_branch != NONE) {
- if (strncasecmp(ack_branch, "branch=", 7) == 0)
+ if (su_casenmatch(ack_branch, "branch=", 7))
orq->orq_branch = su_strdup(home, ack_branch);
else
orq->orq_branch = su_sprintf(home, "branch=%s", ack_branch);
@@ -7803,7 +7800,7 @@
nta_agent_t *sa = orq->orq_agent;
tport_t *tp;
tp_name_t *tpn = orq->orq_tpn;
- int sips = strcasecmp(orq->orq_scheme, "sips") == 0;
+ int sips = su_casematch(orq->orq_scheme, "sips");
/* Select transport by scheme */
if (sips && strcmp(tpn->tpn_proto, "*") == 0)
@@ -7968,14 +7965,14 @@
/* No retries */;
/* RFC3261, 18.1.1 */
else if (err == EMSGSIZE && !orq->orq_try_tcp_instead) {
- if (strcasecmp(tpn->tpn_proto, "udp") == 0 ||
- strcasecmp(tpn->tpn_proto, "*") == 0) {
+ if (su_casematch(tpn->tpn_proto, "udp") ||
+ su_casematch(tpn->tpn_proto, "*")) {
outgoing_try_tcp_instead(orq);
continue;
}
}
else if (err == ECONNREFUSED && orq->orq_try_tcp_instead) {
- if (strcasecmp(tpn->tpn_proto, "tcp") == 0 && msg_size(msg) <= 65535) {
+ if (su_casematch(tpn->tpn_proto, "tcp") && msg_size(msg) <= 65535) {
outgoing_try_udp_instead(orq);
continue;
}
@@ -8145,7 +8142,7 @@
}
else if (error == ECONNREFUSED && orq->orq_try_tcp_instead) {
/* RFC3261, 18.1.1 */
- if (strcasecmp(tpn->tpn_proto, "tcp") == 0 && msg_size(msg) <= 65535) {
+ if (su_casematch(tpn->tpn_proto, "tcp") && msg_size(msg) <= 65535) {
outgoing_print_tport_error(orq, 5, "retrying with UDP after ",
tpn, msg, error);
outgoing_try_udp_instead(orq);
@@ -8723,7 +8720,7 @@
{
orq->orq_completed = 1;
- outgoing_reset_timer(orq); /* Timer A/E */
+ outgoing_reset_timer(orq); /* Timer A / Timer E */
if (orq->orq_stateless || orq->orq_reliable)
return outgoing_terminate(orq);
@@ -8890,10 +8887,10 @@
continue;
if (orq->orq_method != method && orq->orq_method != method2)
continue;
- if (str0casecmp(orq->orq_from->a_tag, sip->sip_from->a_tag))
+ if (su_strcasecmp(orq->orq_from->a_tag, sip->sip_from->a_tag))
continue;
if (orq->orq_to->a_tag &&
- str0casecmp(orq->orq_to->a_tag, sip->sip_to->a_tag))
+ su_strcasecmp(orq->orq_to->a_tag, sip->sip_to->a_tag))
continue;
if (orq->orq_method == sip_method_ack) {
@@ -8901,7 +8898,7 @@
continue;
}
- if (v && str0casecmp(orq->orq_branch + strlen("branch="), v->v_branch))
+ if (v && !su_casematch(orq->orq_branch + strlen("branch="), v->v_branch))
continue;
break; /* match */
@@ -9012,7 +9009,7 @@
return outgoing_duplicate(orq, msg, sip);
if (sa->sa_is_a_uas) {
- if (str0cmp(sip->sip_to->a_tag, orq->orq_tag) == 0)
+ if (su_strcasecmp(sip->sip_to->a_tag, orq->orq_tag) == 0)
/* Catch retransmission */
return outgoing_duplicate(orq, msg, sip);
}
@@ -9333,7 +9330,7 @@
if (orq->orq_destroyed) {
if (orq->orq_status < 200)
orq->orq_status = status;
- outgoing_complete(orq); /* Timer D/K */
+ outgoing_complete(orq); /* Timer D / Timer K */
return 0;
}
@@ -9589,13 +9586,13 @@
tport;
tport = tport_next(tport)) {
tp_name_t const *tpn = tport_name(tport);
- if (strcmp(tpname, "*") && strcasecmp(tpn->tpn_proto, tpname))
+ if (strcmp(tpname, "*") && !su_casematch(tpn->tpn_proto, tpname))
continue;
if (ident && (tpn->tpn_ident == NULL || strcmp(ident, tpn->tpn_ident)))
continue;
for (j = 0; j < SIPDNS_TRANSPORTS; j++)
- if (strcasecmp(tpn->tpn_proto, sipdns_tports[j].name) == 0)
+ if (su_casematch(tpn->tpn_proto, sipdns_tports[j].name))
break;
assert(j < SIPDNS_TRANSPORTS);
@@ -10021,8 +10018,8 @@
break;
/* Check if NAPTR matches our target */
- if (strncasecmp(na->na_services, "SIP+", 4) &&
- strncasecmp(na->na_services, "SIPS+", 5))
+ if (!su_casenmatch(na->na_services, "SIP+", 4) &&
+ !su_casenmatch(na->na_services, "SIPS+", 5))
/* Not a SIP/SIPS service */
continue;
@@ -10036,7 +10033,7 @@
* but comparing the values in the transport list
* match with those values that make any sense
*/
- if (strcasecmp(na->na_services, sr->sr_tports[j]->service) != 0)
+ if (!su_casematch(na->na_services, sr->sr_tports[j]->service))
continue;
tpn->tpn_proto = sr->sr_tports[j]->name;
@@ -10721,8 +10718,8 @@
irq->irq_method == sip_method_invite &&
strcmp(irq->irq_call_id->i_id, i->i_id) == 0 &&
(irq->irq_to->a_tag == NULL ||
- str0casecmp(irq->irq_to->a_tag, sip->sip_to->a_tag) == 0) &&
- str0casecmp(irq->irq_from->a_tag, sip->sip_from->a_tag) == 0) {
+ su_casematch(irq->irq_to->a_tag, sip->sip_to->a_tag)) &&
+ su_casematch(irq->irq_from->a_tag, sip->sip_from->a_tag)) {
nta_reliable_t const *rel;
@@ -11146,8 +11143,8 @@
__func__, resp->sip_status->st_status));
return NULL;
}
- if (str0casecmp(resp->sip_to->a_tag, leg->leg_remote->a_tag) ||
- str0casecmp(resp->sip_to->a_tag, oorq->orq_to->a_tag)) {
+ if (su_strcasecmp(resp->sip_to->a_tag, leg->leg_remote->a_tag) ||
+ su_strcasecmp(resp->sip_to->a_tag, oorq->orq_to->a_tag)) {
SU_DEBUG_1(("%s: %u response To tag does not agree with dialog tag\n",
__func__, resp->sip_status->st_status));
return NULL;
Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta_check.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta_check.c (original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta_check.c Wed Feb 11 10:46:50 2009
@@ -219,14 +219,14 @@
if (sip->sip_payload == NULL)
return 0;
- if (cd == NULL || strcasecmp(cd->cd_type, "session") == 0) {
+ if (cd == NULL || su_casematch(cd->cd_type, "session")) {
sip_accept_t const *ab = session_accepts;
char const *c_type;
if (c)
c_type = c->c_type;
else if (sip->sip_payload->pl_len > 3 &&
- strncasecmp(sip->sip_payload->pl_data, "v=0", 3) == 0)
+ su_casenmatch(sip->sip_payload->pl_data, "v=0", 3))
/* Missing Content-Type, but it looks like SDP */
c_type = application_sdp;
else
@@ -234,7 +234,7 @@
ab = NULL, c_type = NULL;
for (; ab; ab = ab->ac_next) {
- if (strcasecmp(c_type, ab->ac_type) == 0)
+ if (su_casematch(c_type, ab->ac_type))
break;
}
@@ -311,7 +311,7 @@
method == sip_method_prack ||
method == sip_method_update)) {
for (ab = acceptable; ab; ab = ab->ac_next)
- if (strcasecmp(application_sdp, ab->ac_type) == 0) {
+ if (su_casematch(application_sdp, ab->ac_type)) {
if (return_acceptable) *return_acceptable = ab;
return 0;
}
@@ -322,7 +322,7 @@
continue;
for (ab = acceptable; ab; ab = ab->ac_next)
- if (strcasecmp(ac->ac_type, ab->ac_type) == 0) {
+ if (su_casematch(ac->ac_type, ab->ac_type)) {
if (return_acceptable) *return_acceptable = ab;
return 0;
}
Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/sl_utils_log.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/sl_utils_log.c (original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/sl_utils_log.c Wed Feb 11 10:46:50 2009
@@ -237,8 +237,8 @@
log = su_log_default;
while (s < end && *s != '\0') {
- size_t n = strncspn(s, end - s, "\r\n");
- size_t crlf = strnspn(s + n, end - s - n, "\r\n");
+ size_t n = su_strncspn(s, end - s, "\r\n");
+ size_t crlf = su_strnspn(s + n, end - s - n, "\r\n");
if (n < 70) {
memcpy(line, s, n);
line[n] = '\0';
Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/sl_utils_print.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/sl_utils_print.c (original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/sl_utils_print.c Wed Feb 11 10:46:50 2009
@@ -214,8 +214,8 @@
size_t n, total = 0, crlf = 1, actual;
while (s < end && *s != '\0') {
- n = strncspn(s, end - s, "\r\n");
- crlf = strnspn(s + n, end - s - n, "\r\n");
+ n = su_strncspn(s, end - s, "\r\n");
+ crlf = su_strnspn(s + n, end - s - n, "\r\n");
if (prefix)
fputs(prefix, stream), total += strlen(prefix);
actual = fwrite(s, 1, n + crlf, stream) ;
Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/sofia-sip/sl_utils.h
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/sofia-sip/sl_utils.h (original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/sofia-sip/sl_utils.h Wed Feb 11 10:46:50 2009
@@ -38,7 +38,7 @@
#include <stdio.h>
#ifndef STRING0_H
-#include <sofia-sip/string0.h>
+#include <sofia-sip/su_string.h>
#endif
#ifndef SIP_H
Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/test_nta.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/test_nta.c (original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/test_nta.c Wed Feb 11 10:46:50 2009
@@ -62,7 +62,7 @@
#include <sofia-sip/hostdomain.h>
#include <sofia-sip/tport.h>
-#include <sofia-sip/string0.h>
+#include <sofia-sip/su_string.h>
#include <stddef.h>
#include <stdlib.h>
@@ -564,7 +564,7 @@
TEST_1(ag->ag_mclass);
#if SU_HAVE_IN6
- if (str0cmp(getenv("ipv6"), "true") == 0) {
+ if (su_strmatch(getenv("ipv6"), "true")) {
contact = "sip:[::]:*;comp=sigcomp";
af = AF_INET6, sulen0 = sizeof (struct sockaddr_in6);
}
@@ -1075,22 +1075,22 @@
TEST_1(v = nta_agent_via(ag->ag_agent));
for (; v; v = v->v_next) {
- if (strcasecmp(v->v_protocol, sip_transport_udp) == 0) {
+ if (su_casematch(v->v_protocol, sip_transport_udp)) {
if (udp)
v_udp_only = v;
udp = 1;
if (udp_comp == NULL)
udp_comp = v->v_comp;
}
- else if (strcasecmp(v->v_protocol, sip_transport_tcp) == 0) {
+ else if (su_casematch(v->v_protocol, sip_transport_tcp)) {
tcp = 1;
if (tcp_comp == NULL)
tcp_comp = v->v_comp;
}
- else if (strcasecmp(v->v_protocol, sip_transport_sctp) == 0) {
+ else if (su_casematch(v->v_protocol, sip_transport_sctp)) {
sctp = 1;
}
- else if (strcasecmp(v->v_protocol, sip_transport_tls) == 0) {
+ else if (su_casematch(v->v_protocol, sip_transport_tls)) {
tls = 1;
}
}
@@ -1454,7 +1454,7 @@
TEST_P(ag->ag_latest_leg, ag->ag_default_leg);
TEST_1(ag->ag_in_via);
- TEST_1(strcasecmp(ag->ag_in_via->v_protocol, "SIP/2.0/UDP") == 0);
+ TEST_1(su_casematch(ag->ag_in_via->v_protocol, "SIP/2.0/UDP"));
su_free(ag->ag_home, ag->ag_in_via), ag->ag_in_via = NULL;
}
@@ -1787,13 +1787,13 @@
TEST_1(v = nta_agent_via(ag->ag_agent));
for (; v; v = v->v_next) {
- if (strcasecmp(v->v_protocol, sip_transport_udp) == 0)
+ if (su_casematch(v->v_protocol, sip_transport_udp))
udp = 1;
- else if (strcasecmp(v->v_protocol, sip_transport_tcp) == 0)
+ else if (su_casematch(v->v_protocol, sip_transport_tcp))
tcp = 1;
- else if (strcasecmp(v->v_protocol, sip_transport_sctp) == 0)
+ else if (su_casematch(v->v_protocol, sip_transport_sctp))
sctp = 1;
- else if (strcasecmp(v->v_protocol, sip_transport_tls) == 0)
+ else if (su_casematch(v->v_protocol, sip_transport_tls))
tls = 1;
}
Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/test_nta_api.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/test_nta_api.c (original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/test_nta_api.c Wed Feb 11 10:46:50 2009
@@ -59,6 +59,7 @@
#include <sofia-sip/msg_mclass.h>
#include <sofia-sip/sofia_features.h>
#include <sofia-sip/hostdomain.h>
+#include <sofia-sip/su_string.h>
#include <stddef.h>
#include <stdlib.h>
@@ -67,7 +68,6 @@
#include <stdio.h>
#include <assert.h>
#include <time.h>
-#include "sofia-sip/string0.h"
extern su_log_t nta_log[];
extern su_log_t tport_log[];
@@ -763,14 +763,14 @@
TEST_1(nta_agent_add_tport(agent, (url_string_t *)url, TAG_END()) == 0);
TEST_1(v = nta_agent_via(agent)); TEST_1(!v->v_next);
- TEST(strcasecmp(v->v_protocol, sip_transport_tcp), 0);
+ TEST(!su_casematch(v->v_protocol, sip_transport_tcp), 0);
TEST_1(m = nta_agent_contact(agent));
TEST_S(m->m_url->url_params, "transport=tcp");
TEST_1(nta_agent_add_tport(agent, (url_string_t *)url,
TPTAG_SERVER(0), TAG_END()) == 0);
TEST_1(v = nta_agent_public_via(agent)); TEST_1(!v->v_next);
- TEST(strcasecmp(v->v_protocol, sip_transport_tcp), 0);
+ TEST(!su_casematch(v->v_protocol, sip_transport_tcp), 0);
TEST_1(host_has_domain_invalid(v->v_host));
TEST_1(m = nta_agent_contact(agent));
TEST_S(m->m_url->url_params, "transport=tcp");
@@ -778,14 +778,14 @@
url->url_params = "transport=udp";
TEST_1(nta_agent_add_tport(agent, (url_string_t *)url, TAG_END()) == 0);
TEST_1(v = nta_agent_via(agent)); TEST_1(v = v->v_next);
- TEST(strcasecmp(v->v_protocol, sip_transport_udp), 0);
+ TEST(!su_casematch(v->v_protocol, sip_transport_udp), 0);
TEST_VOID(nta_agent_destroy(agent));
TEST_1(agent = nta_agent_create(ag->ag_root, NONE, NULL, NULL, TAG_END()));
TEST_1(nta_agent_add_tport(agent, (url_string_t *)url, TAG_END()) == 0);
TEST_1(v = nta_agent_via(agent)); TEST_1(!v->v_next);
- TEST(strcasecmp(v->v_protocol, sip_transport_udp), 0);
+ TEST(!su_casematch(v->v_protocol, sip_transport_udp), 0);
TEST_1(m = nta_agent_contact(agent));
TEST_S(m->m_url->url_params, "transport=udp");
TEST_VOID(nta_agent_destroy(agent));
@@ -795,9 +795,9 @@
TEST_1(agent = nta_agent_create(ag->ag_root, NONE, NULL, NULL, TAG_END()));
TEST_1(nta_agent_add_tport(agent, (url_string_t *)url, TAG_END()) == 0);
TEST_1(v = nta_agent_via(agent));
- TEST(strcasecmp(v->v_protocol, sip_transport_tcp), 0);
+ TEST(!su_casematch(v->v_protocol, sip_transport_tcp), 0);
TEST_1(v = v->v_next);
- TEST(strcasecmp(v->v_protocol, sip_transport_udp), 0);
+ TEST(!su_casematch(v->v_protocol, sip_transport_udp), 0);
TEST_1(m = nta_agent_contact(agent));
TEST_1(!m->m_url->url_params);
TEST_VOID(nta_agent_destroy(agent));
@@ -807,9 +807,9 @@
TEST_1(agent = nta_agent_create(ag->ag_root, NONE, NULL, NULL, TAG_END()));
TEST_1(nta_agent_add_tport(agent, (url_string_t *)url, TAG_END()) == 0);
TEST_1(v = nta_agent_via(agent));
- TEST(strcasecmp(v->v_protocol, sip_transport_udp), 0);
+ TEST(!su_casematch(v->v_protocol, sip_transport_udp), 0);
TEST_1(v = v->v_next);
- TEST(strcasecmp(v->v_protocol, sip_transport_tcp), 0);
+ TEST(!su_casematch(v->v_protocol, sip_transport_tcp), 0);
TEST_1(m = nta_agent_contact(agent));
TEST_1(!m->m_url->url_params);
TEST_VOID(nta_agent_destroy(agent));
@@ -866,7 +866,7 @@
/* Test that NULL host and/or port fields of user supplied Via header are
- filled in automaticaly */
+ filled in automatically */
int api_test_user_via_fillin(agent_t *ag)
{
su_home_t home[1];
@@ -879,7 +879,7 @@
sip_via_t *via0, *via1;
sip_via_t via[1];
static char *via_params[] = { "param1=value1", "param2=value2" };
- int i;
+ size_t i;
BEGIN();
@@ -912,30 +912,30 @@
/* create user Via template to be filled in by NTA */
sip_via_init(via);
via->v_protocol = "*";
- for (i = 0; i < sizeof(via_params)/sizeof(via_params[0]); i++)
- sip_via_add_param(home,via,via_params[i]); /* add param to the template */
+ for (i = 0; i < sizeof(via_params) / sizeof(via_params[0]); i++)
+ sip_via_add_param(home, via, via_params[i]); /* add param to the template */
/* This creates a delayed response message */
orq1 = nta_outgoing_tcreate(leg, outgoing_callback, ag, NULL,
- SIP_METHOD_MESSAGE,
- URL_STRING_MAKE("sip:foo.bar;transport=none"),
- SIPTAG_FROM_STR("<sip:bar.foo>"),
- SIPTAG_TO_STR("<sip:foo.bar>"),
- NTATAG_USER_VIA(1),
- SIPTAG_VIA(via),
- TAG_END());
+ SIP_METHOD_MESSAGE,
+ URL_STRING_MAKE("sip:foo.bar;transport=none"),
+ SIPTAG_FROM_STR("<sip:bar.foo>"),
+ SIPTAG_TO_STR("<sip:foo.bar>"),
+ NTATAG_USER_VIA(1),
+ SIPTAG_VIA(via),
+ TAG_END());
TEST_1(orq1);
TEST_1(msg1 = nta_outgoing_getrequest(orq1));
TEST_1(sip1 = sip_object(msg1));
TEST_1(via1 = sip1->sip_via);
/* check that template has been filled correctly */
- TEST_S(via0->v_protocol,via1->v_protocol);
- TEST_S(via0->v_host,via1->v_host);
- TEST_S(via0->v_port,via1->v_port);
+ TEST_S(via0->v_protocol, via1->v_protocol);
+ TEST_S(via0->v_host, via1->v_host);
+ TEST_S(via0->v_port, via1->v_port);
/* check that the parameter has been preserved */
for (i = 0; i < sizeof(via_params)/sizeof(via_params[0]); i++)
- TEST_S(via1->v_params[i],via_params[i]);
+ TEST_S(via1->v_params[i], via_params[i]);
TEST_VOID(nta_outgoing_destroy(orq0));
TEST_VOID(nta_outgoing_destroy(orq1));
More information about the Freeswitch-svn
mailing list