Make hijackConn
behaviour compliant with net.Conn
interface
#1629
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, the way
fasthttp.hijackConn
behaves is different from what can be expected with thenet.Conn
interface.Normally, when you close a
net.Conn
, if you try to read or write again, you get errors.But with
fasthttp.hijackConn
, when you close it, it gets cleaned and put back in the pool. If you try to read from or write to it again, it can cause two problems:nil
.I suggest not reusing
hijackConn
whenKeepHijackedConns
is enabled (it still will be reused when this option is disabled). This might make things a bit slower, but it will make the behavior more predictable for users.We've had issues with this in our project, and it seems like the easiest way to fix them is with this pull request.