Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add SelectiveTransportExecutor to retry with TCP if UDP is truncated and automatically select transport protocol when no explicit scheme is given in Factory #148

merged 2 commits into from
Aug 13, 2019


Copy link

@clue clue commented Aug 13, 2019

With these changes applied, the Factory now defaults to automatically selecting the correct transport protocol in its executor-stack. It will always try to send it over the more efficient UDP transport first. If this query yields a size related issue (truncated messages), it will retry over a streaming TCP/IP transport.

It's still possible to explicitly specify the udp:// or tcp:// URI scheme in order force using only the UDP or TCP-based executor stacks respectively. This explicit choice continues to exist mostly for rare special cases and debugging purposes.

Builds on top of #145 and #146
Resolves #19

@clue clue added this to the v1.2.0 milestone Aug 13, 2019
@clue clue force-pushed the selective-transport branch 2 times, most recently from ff630ba to 7caee79 Compare August 13, 2019 09:35
@jsor jsor merged commit 6792a5f into reactphp:master Aug 13, 2019
@clue clue deleted the selective-transport branch August 13, 2019 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet

Successfully merging this pull request may close these issues.

Support DNS over TCP/IP transport and retry truncated UDP responses
3 participants