<div>HI Daniel.</div><div><br></div>Please find the diff based on kamailio version 3.3.1<div><br></div><div><div>PGA:/mnt/o/kamailio-3.3.1 # diff -u msg_translator.c.orig msg_translator.c</div><div>--- msg_translator.c.orig       2012-09-28 09:41:23.391344100 -0300</div>
<div>+++ msg_translator.c    2012-09-28 05:52:36.056491600 -0300</div><div>@@ -190,7 +190,7 @@</div><div>  *  resolver = DO_DNS | DO_REV_DNS; if 0 no dns check is made</div><div>  * return 0 if equal */</div><div> static int check_via_address(struct ip_addr* ip, str *name,</div>
<div>-                               unsigned short port, int resolver)</div><div>+                               unsigned short port, short proto, int resolver)</div><div> {</div><div>        struct hostent* he;</div><div>
        int i;</div><div>@@ -229,11 +229,11 @@</div><div>                return -1;</div><div>        }</div><div><br></div><div>-       if (port==0) port=SIP_PORT;</div><div>+       //if (port==0) port=SIP_PORT;</div><div>
        if (resolver&amp;DO_DNS){</div><div>                DBG(&quot;check_via_address: doing dns lookup\n&quot;);</div><div>                /* try all names ips */</div><div>-               he=sip_resolvehost(name, &amp;port, 0); /* don&#39;t use naptr */</div>
<div>+               he=sip_resolvehost(name, &amp;port, (char *)&amp;proto); /* don&#39;t use naptr */</div><div>                if (he &amp;&amp; ip-&gt;af==he-&gt;h_addrtype){</div><div>                        for(i=0;he &amp;&amp; he-&gt;h_addr_list[i];i++){</div>
<div>                                if ( memcmp(&amp;he-&gt;h_addr_list[i], ip-&gt;u.addr, ip-&gt;len)==0)</div><div>@@ -263,7 +263,7 @@</div><div><br></div><div>        rcvd=msg-&gt;via1-&gt;received</div><div>                        || check_via_address(&amp;msg-&gt;rcv.src_ip, &amp;msg-&gt;via1-&gt;host,</div>
<div>-                                                       msg-&gt;via1-&gt;port, received_dns);</div><div>+                                                       msg-&gt;via1-&gt;port,msg-&gt;via1-&gt;proto, received_dns);</div>
<div>        return rcvd;</div><div> }</div><div><br></div><br><div class="gmail_quote">On Thu, Sep 27, 2012 at 11:22 AM, Daniel-Constantin Mierla <span dir="ltr">&lt;<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    Can you provide the patch taken with &#39;diff -u&#39; or &#39;git diff&#39; -- it
    is easier to understand what parts you refer to and were updated.<br>
    <br>
    Cheers,<br>
    Daniel<div><div class="h5"><br>
    <br>
    <div>On 9/27/12 12:31 AM, Jijo wrote:<br>
    </div>
    </div></div><blockquote type="cite"><div><div class="h5">Hello,
      <div><br>
      </div>
      <div>I&#39;m observing  that Via Header domain name of type SRV is
        resolving as DNS A. </div>
      <div><br>
      </div>
      <div>I looked at the code and it does support only A. It is
        basically setting to default SIP port 
         check_via_address which is causing DNS A query.</div>
      <div><br>
      </div>
      <div>Is there any specific reason to do so?</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>I changed the code to support SRV as below and working fine.</div>
      <div><br>
      </div>
      <div>
        <div>static int check_via_address(struct ip_addr* ip, str *name,</div>
        <div><span style="white-space:pre-wrap"> </span>unsigned
          short port, <b><font color="#006600">short proto</font></b>,
          int resolver)</div>
        <div>{</div>
      </div>
      <div>:<br>
        :<br>
        <div><span style="background-color:rgb(255,102,102)"><span style="white-space:pre-wrap"> </span>//if
            (port==0) port=SIP_PORT;</span></div>
        <div><span style="white-space:pre-wrap"> </span>if
          (resolver&amp;DO_DNS){</div>
        <div><span style="white-space:pre-wrap"> </span>DBG(&quot;check_via_address:
          doing dns lookup\n&quot;);</div>
        <div><span style="white-space:pre-wrap"> </span>/*
          try all names ips */</div>
        <div><span style="white-space:pre-wrap"> </span>he=sip_resolvehost(name,
          &amp;port,<font color="#009900"> <b>(char *) &amp;proto</b></font>);
          /* don&#39;t use naptr */</div>
        <div><span style="white-space:pre-wrap"> </span>if
          (he &amp;&amp; ip-&gt;af==he-&gt;h_addrtype){</div>
        <div><span style="white-space:pre-wrap"> </span>for(i=0;he
          &amp;&amp; he-&gt;h_addr_list[i];i++){</div>
        <div><span style="white-space:pre-wrap"> </span>if
          ( memcmp(&amp;he-&gt;h_addr_list[i], ip-&gt;u.addr,
          ip-&gt;len)==0)</div>
        <div><span style="white-space:pre-wrap"> </span>return
          0;</div>
        <div><span style="white-space:pre-wrap"> </span>}</div>
        <div><span style="white-space:pre-wrap"> </span>}</div>
        <div><span style="white-space:pre-wrap"> </span>}</div>
      </div>
      <div>:</div>
      <div>:</div>
      <div>:</div>
      <div>}</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>
        <div>/* check if IP address in Via != source IP address of
          signaling */</div>
        <div>int received_test( struct sip_msg *msg )</div>
        <div>{</div>
        <div><span style="white-space:pre-wrap"> </span>int
          rcvd;</div>
        <div><br>
        </div>
        <div><span style="white-space:pre-wrap"> </span>rcvd=msg-&gt;via1-&gt;received</div>
        <div><span style="white-space:pre-wrap"> </span>||
          check_via_address(&amp;msg-&gt;rcv.src_ip,
          &amp;msg-&gt;via1-&gt;host,</div>
        <div><span style="white-space:pre-wrap"> </span>msg-&gt;via1-&gt;port,<b> <font color="#006600">msg-&gt;via1-&gt;proto</font></b>, received_dns);</div>
        <div><span style="white-space:pre-wrap"> </span>return
          rcvd;</div>
        <div>}</div>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>Thanks</div>
      <div>Jijo</div>
      <div><br>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
sr-dev mailing list
<a href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a><span class="HOEnZb"><font color="#888888">
</font></span></pre><span class="HOEnZb"><font color="#888888">
    </font></span></blockquote><span class="HOEnZb"><font color="#888888">
    <br>
    <pre cols="72">-- 
Daniel-Constantin Mierla - <a href="http://www.asipto.com" target="_blank">http://www.asipto.com</a>
<a href="http://twitter.com/#!/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a href="http://www.linkedin.com/in/miconda" target="_blank">http://www.linkedin.com/in/miconda</a>
Kamailio Advanced Training, Berlin, Nov 5-8, 2012 - <a href="http://asipto.com/u/kat" target="_blank">http://asipto.com/u/kat</a>
Kamailio Advanced Training, Miami, USA, Nov 12-14, 2012 - <a href="http://asipto.com/u/katu" target="_blank">http://asipto.com/u/katu</a></pre>
  </font></span></div>

</blockquote></div><br></div>