<html><body>
<p><font size="2">Hi,</font><br>
<br>
<font size="2">I believe there is a minor bug in opensips HEAD in the tm module t_fwd.c. The function update_uac_dst sets ser_error to one of two options: E_OUT_OF_MEM or E_NO_SOCKET. This is overwritten by add_uac. The simple one line fix is:</font><br>
<br>
<font size="2">--- a/modules/tm/t_fwd.c</font><br>
<font size="2">+++ b/modules/tm/t_fwd.c</font><br>
<font size="2">@@ -430,7 +430,7 @@ static int add_uac( struct cell *t, struct sip_msg *request, str *uri,</font><br>
<font size="2">        t-&gt;uac[branch].request.dst.proto = proxy-&gt;proto;</font><br>
<br>
<font size="2">        if ( update_uac_dst( request, &amp;t-&gt;uac[branch] )!=0) {</font><br>
<font size="2">-               ret = E_OUT_OF_MEM;</font><br>
<font size="2">+               ret = ser_error;</font><br>
<font size="2">                goto error02;</font><br>
<font size="2">        }</font><br>
<br>
<font size="2">A more elaborate fix might be to not set ser_error at all in update_uac_dst and just return the error code.</font><br>
<br>
<font size="2">Note that this error condition occurs when a REGISTER Path header has bogus (unreachable) URI. Unfortunately this is all too easy to do, and having a useful error message is helpful.</font><br>
<br>
<font size="2">Regards,</font><br>
<font size="2">Kennard</font></body></html>