< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index  

Re: [reSIProcate] TcpTransport patch.



Hi Taras,

Thanks for posting this patch

Can you please submit patches as Github pull requests?  This means
travis-ci.org will try compiling the patch and running the unit tests
for us.

Note that for any patch to be accepted on the release branch (currently
1.9.x), it must not break the ABI[1].  I notice you add a new parameter
to a constructor, that is ABI breaking.  You would need to ensure the
old constructor still exists.  You also add a new variable, mIsServer.
That changes the size of the class, so it also breaks ABI.  These types
of changes can go on the master branch and be included in the next
release series, 1.10.x.

Regards,

Daniel


1.
https://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B


On 09/09/15 09:52, Shypytiak Taras wrote:
> Dear resip devels,
> resiprocate 1.9.9
> 
> when sip stack has to send outgoing sip message through tcp transport 
> TcpBaseTrasnport does next steps:
> 1) makes lookup for the suitable connection by destination.( 
> TcpBaseTransport.cxx:300 )
> 2) if no connection exists - tcp connection for destination is being 
> created.( 
> TcpBaseTransport.cxx:311 )
> 3) mapping looks like destination => Connection
> 
> The problem arrises during next scenario:
> 
> 1) sip stack sends outgoing sip message trough tcp connection C1, C1 was 
> created by TcpBaseTransport, because it was not found. C1 is a Tuple [ V4 
> dest_host:5060 TCP ]
> 2) remote peer does not answer into C1. But it tries to create new incoming 
> conection  C2  to this_proxy_host:5060. TcpBaseTransport produces an error 
> "TcpBaseTransport.cxx:183:Someone probably sent a reciprocal SYN at us." and 
> rejects it.
> 
> According to
> http://tools.ietf.org/html/rfc3261#section-18.1.1, paragraph 8
> 
> ==========================================
> Under error conditions, the
>    server may attempt to open a new connection to send the response.  To
>    handle this case, the transport layer MUST also be prepared to
>    receive an incoming connection on the source IP address from which
>    the request was sent and port number in the "sent-by" field.
> ==========================================
> 
> 
> Could you please consider provided patch, which might resolve described issue?
> 
> Sincerely, Taras.
> 
> 
> 
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel@xxxxxxxxxxxxxxx
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
>