<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->uac[branch].request.dst.proto = proxy->proto;</font><br>
<br>
<font size="2"> if ( update_uac_dst( request, &t->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>