On Fri, Feb 6, 2015 at 6:24 PM, Bernard Aboba <Bernard.Aboba@microsoft.com>
wrote:
> > Issue:
> > What do we do about DTLS packets that can arrive before there's a DTLS
> > transport to receive the DTLS packets
>
> [BA] There is a 4th option. Originally, the IceTransport constructor
> included an (optional) IceListener argument, so that it was possible to
> associate an IceListener/IceGatherer with an IceTransport before calling
> iceTransport.start(). Bringing back the constructor argument seems like a
> simpler solution than adding an iceTransport.listen() method
>
This is not a bad option except that you might be dealing with several ICE
DTLS negotiations at the same time due to forking. So, internally, you need
to implement some sort of common buffer for received packets and then only
pick the packets from the buffer that correspond to the particular Ice/DTLS
transport. Since we are looking at a common buffer, it probably makes sense
to keep it in the common object (IceListener/IceGatherer) and for
IceTransport to pull this common object for queued packets when it is
started.
_____________
Roman Shpount