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

Implement non-blocking async DNS resolver #2060

Closed
wants to merge 4 commits into from

Commits on Sep 16, 2024

  1. Implement non-blocking async DNS resolver

    Motivation:
    
    The GRPCHTTP2Core module needs a DNS resolver, as currently, IP addresses have to be passed in manually.
    
    Modifications:
    
    - Add a new type `SimpleAsyncDNSResolver` with a method `resolve(host:port:)` that calls the `getaddrinfo` `libc` function to resolve a hostname and port number to a list of IP addresses and port numbers. `resolve(host:port:)` is non-blocking and asynchronous. As calls to `getaddrinfo` are blocking, `resolve(host:port)` executes `getaddrinfo` in a `DispatchQueue` and uses a `CheckedContinuation` to interface with the execution.
    
    Result:
    
    The GRPCHTTP2Core module will have a DNS resolver.
    clintonpi committed Sep 16, 2024
    Configuration menu
    Copy the full SHA
    8cc7a8b View commit details
    Browse the repository at this point in the history
  2. Remove unnecessary comment

    clintonpi committed Sep 16, 2024
    Configuration menu
    Copy the full SHA
    ca73f72 View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2024

  1. Configuration menu
    Copy the full SHA
    69753f0 View commit details
    Browse the repository at this point in the history
  2. Implement feedback

    clintonpi committed Sep 23, 2024
    Configuration menu
    Copy the full SHA
    c47f86e View commit details
    Browse the repository at this point in the history