Closed anna-is-cute closed 3 years ago
Apologies for the late reply. You provided an excellent repro sample, thank you. This was fixed in NetworkStructs branch on Jan 12. I just re-tested and confirmed it happens with the master branch, but not with NetworkStructs branch. I finished refactoring in that branch recently, and plan to merge it to Master branch soon. A new Nuget package will be published.
There are a few breaking changes when this happens, which I will include in the release notes.
The underlying problem was that my code was identifying listening connections as originating from IP 0.0.0.0, which doesn't translate to a valid interface. This raised a runtime error, which exited the polling thread loop. The fix is to just exclude adding a new socket listening for this connection.
I can replicate this using ACT and Teamcraft, but this happens for any process. I included two test programs that can be used to replicate this behaviour.
When using Machina in RawSocket mode, if the process being listened to opens a TCP listener and listens for incoming connections, Machina will stop reporting any data at all.
Run the periodic downloader and it will output its PID. Run the other program with the PID as the first argument. You will see it reports the download every second. Press enter to start the listener in the downloader and the other program will become silent.