Steps to reproduce:
Using an existing port forwarding profile, connect then disconnect the profile. Frequently, but not always, the profile status remains "connected" while utilities such as netstat confirm that the connection has been disconnected. The user can no longer re-connect the profile.
Poderosa Version: 4.3.5
OS: Window 7/64
Additional comments:
I have tracked this down to Granados.IO.PlainSocket.RepeatCallback, which seems to improperly handle an ObjectDisposedException. This exception can be thrown during the System.Net.Sockets.Socket.EndReceive call in RepeatCallback if the socket has been Closed/Disposed before RepeatCallback has been invoked.
Additional comments:
I have tracked this down to Granados.IO.PlainSocket.RepeatCallback which seems to improperly handle ObjectDisposedExceptions. This exception can be thrown during the System.Net.Sockets.Socket.EndReceive call in RepeatCallback if the socket has been Closed/Disposed before RepeatCallback has been invoked.
Thank you for your input.
Granados.IO.PlainSocket.RepeatCallback has been fixed.