http-party / node-portfinder

A simple tool to find an open port or domain socket on the current machine
https://github.com/http-party/node-portfinder
Other
882 stars 95 forks source link

Wait until server is closed before invoking callback #149

Open Pwndrian opened 1 year ago

Pwndrian commented 1 year ago

With the current implementation, there is a chance that a user binds a socket on a port (that was reported as being available) although the server (created to check whether that port is available) is not fully closed yet. This causes the binding to fail, because the port is still in use.

In this PR, we change the implementation such that the the callback passed to the testPort is invoked when the server is fully closed. Thanks to @sla89 for the idea!

Unfortunately, we didn't manage to write a unit tests that reliably verifies the correct behavior. I'm open for ideas ;)