Skip to content

Commit e6daca7

Browse files
committed
try to parse host first
1 parent d35c87d commit e6daca7

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

actix-connector/src/resolver.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@ use std::collections::VecDeque;
22
use std::marker::PhantomData;
33
use std::net::IpAddr;
44

5-
use futures::{Async, Future, Poll};
6-
7-
use actix_rt::spawn;
85
use actix_service::Service;
6+
use futures::{Async, Future, Poll};
97
use trust_dns_resolver::config::{ResolverConfig, ResolverOpts};
108
pub use trust_dns_resolver::error::ResolveError;
119
use trust_dns_resolver::lookup_ip::LookupIpFuture;
@@ -44,7 +42,7 @@ impl<T: RequestHost> Resolver<T> {
4442
/// Create new resolver instance with custom configuration and options.
4543
pub fn new(cfg: ResolverConfig, opts: ResolverOpts) -> Self {
4644
let (resolver, bg) = AsyncResolver::new(cfg, opts);
47-
spawn(bg);
45+
actix_rt::Arbiter::spawn(bg);
4846
Resolver {
4947
resolver,
5048
req: PhantomData,
@@ -79,7 +77,13 @@ impl<T: RequestHost> Service<T> for Resolver<T> {
7977
}
8078

8179
fn call(&mut self, req: T) -> Self::Future {
82-
ResolverFuture::new(req, &self.resolver)
80+
if let Ok(ip) = req.host().parse() {
81+
let mut addrs = VecDeque::new();
82+
addrs.push_back(ip);
83+
ResolverFuture::new(req, &self.resolver, Some(addrs))
84+
} else {
85+
ResolverFuture::new(req, &self.resolver, None)
86+
}
8387
}
8488
}
8589

@@ -92,13 +96,13 @@ pub struct ResolverFuture<T> {
9296
}
9397

9498
impl<T: RequestHost> ResolverFuture<T> {
95-
pub fn new(addr: T, resolver: &AsyncResolver) -> Self {
99+
pub fn new(addr: T, resolver: &AsyncResolver, addrs: Option<VecDeque<IpAddr>>) -> Self {
96100
// we need to do dns resolution
97101
let lookup = Some(resolver.lookup_ip(addr.host()));
98102
ResolverFuture {
99103
lookup,
104+
addrs,
100105
req: Some(addr),
101-
addrs: None,
102106
}
103107
}
104108
}

actix-server/src/accept.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ impl Accept {
143143

144144
// start accept thread
145145
let _ = thread::Builder::new()
146-
.name("actix-web accept loop".to_owned())
146+
.name("actix-server accept loop".to_owned())
147147
.spawn(move || {
148148
System::set_current(sys);
149149
let mut accept = Accept::new(rx, socks, workers, srv);

0 commit comments

Comments
 (0)