Open
Description
Windows kernel dispatches all UDP packets to the original (listener) socket, so the faces don't get anything once they've a separate socket.
Possible solution - dispatch to individual faces from the listener socket. This needs to be optimized to allow looking up the face table fast; should be possible with ip-port hash.
E.g. hashmap with ip-port --hashmap--> faceid --facetable--> face --> handleIncomingFrame
.
Calling handleIncomingFrame
will not have race in this case since the face thread is useless (but need a check for Windows to prevent races on other platforms)