You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As far as understand, there can be many connection hosts (SocketConnectHostNNN:SocketConnectPortNNN) and one is picked once connecting. I have got an impression that once getHost is called for a session, it is never called again (even if no connection is established yet). Worse, if an IP got from getHost does not exist (is not resolved to any name), it looks like the session never gets connected.
Is this indeed the situation or a kind of my misunderstanding? Is there anything I am missing?
The text was updated successfully, but these errors were encountered:
I tried to have any deeper look at the issue and I guess that the following thing happens: SocketInitiator creates a socket and issues a connect request. At this point, it does no bother the validity of the IP/port, success/failure of the connection but simply pass the socket to the SocketMonitor. SocketMonitor uses 'select' to process sockets events. Even if the connection was issued to a nonexistent IP, a write event is fired for such a socket and the SocketMonitor processes. Soon enough, it becomes clear that no connection is established and thus a new connection attempt is taken.
As far as I can see, this works this way indeed but only on Linux. On Windows, 'select' does not fire a write event for such a socket and the session just gets stuck. Looks like a kind of bug, doesn't it?
As far as understand, there can be many connection hosts (SocketConnectHostNNN:SocketConnectPortNNN) and one is picked once connecting. I have got an impression that once getHost is called for a session, it is never called again (even if no connection is established yet). Worse, if an IP got from getHost does not exist (is not resolved to any name), it looks like the session never gets connected.
Is this indeed the situation or a kind of my misunderstanding? Is there anything I am missing?
The text was updated successfully, but these errors were encountered: