Implement Pluggable Name-resolution (#148)
This defines a new trait `Resolver`, which turns an address into a Vec<SocketAddr>. It also provides an implementation of Resolver for `Fn(&str)` so it's easy to define simple resolvers with a closure. Fixes #82 Co-authored-by: Ulrik <ulrikm@spotify.com>
This commit is contained in:
@@ -10,6 +10,7 @@ use cookie::{Cookie, CookieJar};
|
||||
use crate::agent::AgentState;
|
||||
use crate::body::{self, Payload, SizedReader};
|
||||
use crate::header;
|
||||
use crate::resolve::ArcResolver;
|
||||
use crate::stream::{self, connect_test, Stream};
|
||||
use crate::{Error, Header, Request, Response};
|
||||
|
||||
@@ -95,6 +96,10 @@ impl Unit {
|
||||
self.req.method.eq_ignore_ascii_case("head")
|
||||
}
|
||||
|
||||
pub fn resolver(&self) -> ArcResolver {
|
||||
self.req.agent.lock().unwrap().resolver.clone()
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
pub fn header(&self, name: &str) -> Option<&str> {
|
||||
header::get_header(&self.headers, name)
|
||||
|
||||
Reference in New Issue
Block a user