[Vm-dev] sqSocketListenOnPortBacklogSizeInterface problems
Levente Uzonyi
leves at elte.hu
Sat Dec 20 16:19:10 UTC 2014
Hi All,
This function of the SocketPlugin is implmeneted differently on win32 and
unix, and I find both implementations suboptimal.
Difference #1:
On windows the addr parameter is ignored if the socketType is not
TCPSocketType. This makes it impossible to bind a UDP socket to a
specific IP address.
Difference #2:
If the requested port on the given interface is not available for the
given socket type, then on windows the primitive will fail.
On unix the primitive swallows the error. In case of TCP sockets accept
will fail (whenever it's called). The only direct indicator of the failure
is that the local port number will be a random value instead of the
requested one.
For UDP sockets, there will be multiple sockets bound to the same IP/port,
but the created socket will not receive packets.
I think the primitive must fail if binding the socket is not possible.
I also think that the requested IP address must not be ignored.
Is it just an oversight, or is there a good reason why these are
implemented the way they are?
Levente
More information about the Vm-dev
mailing list