Add option to not close tcp on passive mode timeout #19
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.
Description
In my usage of your library I would like to continue sending requests to a server, even if one times out. Therefore I have added an option to the
Modbux.Tcp.Clientmodule that allows users to control whether the TCP connection should be closed when a timeout occurs in passive mode. The optionclose_on_timeoutis set to true by default, so as to be backwards compatible.Timeout handling logic:
:confirmationso that the socket is only closed on timeout ifclose_on_timeoutis set totrue.Type of change
How Has This Been Tested?
The change is very minor, albeit hard to test well. I have not added any tests for it.
Checklist:
Note
Adds
close_on_timeoutoption (default true) to control whether the TCP socket is closed on passive-mode timeouts and updates timeout handling accordingly.lib/tcp/client.ex)close_on_timeout(defaulttrue) inClientstruct and init args to control socket closure on passive-mode timeouts.:confirmation, only closes socket on:timeoutwhenclose_on_timeoutistrue; otherwise keeps connection open and resets cmd/msg state.close_on_timeoutoption.Written by Cursor Bugbot for commit c6f6b99. This will update automatically on new commits. Configure here.