[
https://issues.apache.org/jira/browse/DIRMINA-996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16855929#comment-16855929
]
Anton Vinokurov commented on DIRMINA-996:
-----------------------------------------
IMHO this does not help. While you are creating a key based on local+remote
socket adresses, recycle() is called with the remote address only. The first
item of sesson cache is returned-no matter which socket is used on local side
to receive.
See my example above: remote socket is single entity "A.B.C.D:12340" for both
incoming requests (to different local sockets).
recycle(SocketAddress remoteAddress) should be modified to
recycle(SocketAddress remoteAddress, SocketAddress localAddress), which I
assume quite difficult to do.
> IoSessionRecycler RemoteAddress Collision
> -----------------------------------------
>
> Key: DIRMINA-996
> URL: https://issues.apache.org/jira/browse/DIRMINA-996
> Project: MINA
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.0.7
> Reporter: Flavio Battimo
> Assignee: Jonathan Valliere
> Priority: Critical
> Fix For: 2.1.4
>
>
> When using NioDatagramAcceptor with multiple binded local addresses the
> IoSessionRecycler is not working as expected.
> If the acceptor has been prefilled with two sessions:
> remoteaddr=192.168.1.10:2001 localaddr=192.168.1.20:1000
> remoteaddr=192.168.1.10:2001 localaddr=192.168.1.20:1001
> so with same remote address but different local address, when the recycle
> method of IoSessionRecycler interface is called only remote address is
> passed. The recycler returns the same IoSession for incoming datagrams on two
> different local addresses of the same acceptor.
> The IoSessionRecycler should have the local address parameter also in order
> to find the correct IoSession.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]