summaryrefslogtreecommitdiff
path: root/src/DHTEntryPointNameResolveCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-01-19 10:42:25 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-01-19 10:42:25 +0900
commitffec92ec579cdb44a38f1561500fe50e8792c11e (patch)
tree8a76c172ab56ad8f5aff37b2bea2bfc2609e772b /src/DHTEntryPointNameResolveCommand.cc
parente6b6aa324b23282c4b62b1d5c4f149098f22d934 (diff)
Fix mysterious 1 second delay with async DNS
Diffstat (limited to 'src/DHTEntryPointNameResolveCommand.cc')
-rw-r--r--src/DHTEntryPointNameResolveCommand.cc37
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;
}