diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-01-19 10:42:25 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-01-19 10:42:25 +0900 |
| commit | ffec92ec579cdb44a38f1561500fe50e8792c11e (patch) | |
| tree | 8a76c172ab56ad8f5aff37b2bea2bfc2609e772b /src/DHTEntryPointNameResolveCommand.cc | |
| parent | e6b6aa324b23282c4b62b1d5c4f149098f22d934 (diff) | |
Fix mysterious 1 second delay with async DNS
Diffstat (limited to 'src/DHTEntryPointNameResolveCommand.cc')
| -rw-r--r-- | src/DHTEntryPointNameResolveCommand.cc | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/src/DHTEntryPointNameResolveCommand.cc b/src/DHTEntryPointNameResolveCommand.cc index 8854f0aa..7379ec0a 100644 --- a/src/DHTEntryPointNameResolveCommand.cc +++ b/src/DHTEntryPointNameResolveCommand.cc @@ -170,30 +170,29 @@ int DHTEntryPointNameResolveCommand::resolveHostname( { if (!asyncNameResolverMan_->started()) { asyncNameResolverMan_->startAsync(hostname, e_, this); - return 0; } - else { - switch (asyncNameResolverMan_->getStatus()) { - case -1: + + switch (asyncNameResolverMan_->getStatus()) { + case -1: + A2_LOG_INFO(fmt(MSG_NAME_RESOLUTION_FAILED, getCuid(), hostname.c_str(), + asyncNameResolverMan_->getLastError().c_str())); + return -1; + case 0: + return 0; + case 1: + asyncNameResolverMan_->getResolvedAddress(res); + if (res.empty()) { A2_LOG_INFO(fmt(MSG_NAME_RESOLUTION_FAILED, getCuid(), hostname.c_str(), - asyncNameResolverMan_->getLastError().c_str())); + "No address returned")); return -1; - case 0: - return 0; - case 1: - asyncNameResolverMan_->getResolvedAddress(res); - if (res.empty()) { - A2_LOG_INFO(fmt(MSG_NAME_RESOLUTION_FAILED, getCuid(), hostname.c_str(), - "No address returned")); - return -1; - } - else { - A2_LOG_INFO(fmt(MSG_NAME_RESOLUTION_COMPLETE, getCuid(), - hostname.c_str(), res.front().c_str())); - return 1; - } + } + else { + A2_LOG_INFO(fmt(MSG_NAME_RESOLUTION_COMPLETE, getCuid(), hostname.c_str(), + res.front().c_str())); + return 1; } } + // Unreachable return 0; } |
