<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" id="owaParaStyle"></style>
</head>
<body fpstyle="1" ocsi="0">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hi,
<div><br>
</div>
<div>sometimes UAs do subscriptions using mixed case uris which most of the times leads to NOTIFY messages not getting to the UA.</div>
<div><br>
</div>
<div>if used with subs_db_mode = 3 and a case insensitive dbengine it works.</div>
<div><br>
</div>
<div>however, if we use other value on subs_db_mode it doesn't work or behaves poorly (missing cache)</div>
<div><br>
</div>
<div>should we make string insensitive matches in presence module for uris ?</div>
<div>i marked the 10 occurrences with >>></div>
<div><br>
</div>
<div>Thank You</div>
<div><br>
</div>
<div><span style="font-size: 10pt;">[lazedo@dev-01 presence]# grep strncmp . -R</span></div>
<div>
<div>
<div><span style="font-size: 10pt;">./subscribe.c:</span><span class="Apple-tab-span" style="font-size: 10pt; white-space: pre;">
</span><span style="font-size: 10pt;">if(ev_param->name.len== 2 && strncmp(ev_param->name.s, "id", 2)== 0)</span></div>
<div>./utils_func.h:<span class="Apple-tab-span" style="white-space:pre"> </span>
if(strncmp(ip.s, "sip:", 4)!=0)</div>
<div>./hash.c:<span class="Apple-tab-span" style="white-space:pre"> </span>strncmp(s->callid.s, callid.s, callid.len)==0 &&</div>
<div>./hash.c:<span class="Apple-tab-span" style="white-space:pre"> </span>strncmp(s->to_tag.s, to_tag.s, to_tag.len)==0 &&</div>
<div>./hash.c:<span class="Apple-tab-span" style="white-space:pre"> </span>strncmp(s->from_tag.s, from_tag.s, from_tag.len)== 0)</div>
<div>./hash.c:<span class="Apple-tab-span" style="white-space:pre"> </span>&& strncmp(s->to_tag.s,subs->to_tag.s,subs->to_tag.len)==0)</div>
<div>./hash.c:<span class="Apple-tab-span" style="white-space:pre"> </span>&& strncmp(s->callid.s,subs->callid.s,subs->callid.len)==0</div>
<div>./hash.c:<span class="Apple-tab-span" style="white-space:pre"> </span>&& strncmp(s->to_tag.s,subs->to_tag.s,subs->to_tag.len)==0</div>
<div>./hash.c:<span class="Apple-tab-span" style="white-space:pre"> </span>&& strncmp(s->from_tag.s,subs->from_tag.s,subs->from_tag.len)==0)</div>
<div>>>> ./hash.c:<span class="Apple-tab-span" style="white-space:pre"> </span>if(strncmp(s->contact.s, subs->contact.s, subs->contact.len))</div>
<div>>>>./hash.c:<span class="Apple-tab-span" style="white-space:pre"> </span>strncmp(p->pres_uri.s, pres_uri->s, pres_uri->len)== 0 )</div>
<div>./presence.c:<span class="Apple-tab-span" style="white-space:pre"> </span>(reason.s && subs.reason.s && strncmp(reason.s, subs.reason.s,</div>
<div>>>>./presence.c:<span class="Apple-tab-span" style="white-space:pre"> </span>
strncmp(s->pres_uri.s, subs->pres_uri.s, subs->pres_uri.len)== 0 &&</div>
<div>>>>./presence.c:<span class="Apple-tab-span" style="white-space:pre"> </span>
strncmp(s->watcher_user.s, subs->watcher_user.s, s->watcher_user.len)== 0 &&</div>
<div>>>>./presence.c:<span class="Apple-tab-span" style="white-space:pre"> </span>
strncmp(s->watcher_domain.s,subs->watcher_domain.s,s->watcher_domain.len)==0)</div>
<div>./presence.c:    if ((subs.reason.len == 12) && (strncmp(subs.reason.s, "polite-block", 12) == 0))</div>
<div><span style="font-size: 10pt;">>>>./presentity.c:</span><span class="Apple-tab-span" style="font-size: 10pt; white-space: pre;">
</span><span style="font-size: 10pt;">strncmp(presentity->sender->s, sender.s, sender.len)== 0))</span></div>
<div><span style="font-size: 10pt;">./event_list.c:</span><span class="Apple-tab-span" style="font-size: 10pt; white-space: pre;">
</span><span style="font-size: 10pt;">if(sep && strncmp(sep+1, "winfo", 5)== 0)</span></div>
<div>./event_list.c:<span class="Apple-tab-span" style="white-space:pre"> </span>
strncmp(p->name.s,ps->name.s, ps->name.len)== 0)</div>
<div>./event_list.c:<span class="Apple-tab-span" style="white-space:pre"> </span>
strncmp(p->body.s,ps->body.s,ps->body.len)== 0))</div>
<div><span style="font-size: 10pt;">>>>./notify.c:</span><span class="Apple-tab-span" style="font-size: 10pt; white-space: pre;">
</span><span style="font-size: 10pt;">strncmp(s->pres_uri.s, subs->pres_uri.s,subs->pres_uri.len)== 0)</span></div>
<div>>>>./notify.c:<span class="Apple-tab-span" style="white-space:pre"> </span>strncmp(sender.s, contact->s, sender.len)== 0)</div>
<div>./notify.c:<span class="Apple-tab-span" style="white-space:pre"> </span>if( (etags.len == etag->len) && (strncmp(etags.s,</div>
<div>>>>./notify.c:<span class="Apple-tab-span" style="white-space:pre"> </span>strncmp(s->pres_uri.s, pres_uri->s, pres_uri->len)== 0)) || </div>
<div>>>>./notify.c:<span class="Apple-tab-span" style="white-space:pre"> </span>strncmp(sender->s, s->contact.s, sender->len)== 0))</div>
<div>./notify.c:<span class="Apple-tab-span" style="white-space:pre"> </span>subs->reason.len== 12 && strncmp(subs->reason.s, "polite-block", 12)== 0)</div>
<div>./notify.c:<span class="Apple-tab-span" style="white-space:pre"> </span>if(w->uri.len == wuri.len && strncmp(w->uri.s, wuri.s, wuri.len)== 0)</div>
<div><br>
</div>
</div>
</div>
<div><br>
</div>
</div>
</body>
</html>