Index: native_client_sdk/src/libraries/nacl_io/host_resolver.cc |
diff --git a/native_client_sdk/src/libraries/nacl_io/host_resolver.cc b/native_client_sdk/src/libraries/nacl_io/host_resolver.cc |
index c16fbcb16d2475839a3bb93fd59f8c81489915ff..11648f652298d72caf46c533a85342401bb08924 100644 |
--- a/native_client_sdk/src/libraries/nacl_io/host_resolver.cc |
+++ b/native_client_sdk/src/libraries/nacl_io/host_resolver.cc |
@@ -14,6 +14,7 @@ |
#include <string.h> |
#include "nacl_io/kernel_proxy.h" |
+#include "nacl_io/log.h" |
#include "nacl_io/ossocket.h" |
#include "nacl_io/pepper_interface.h" |
@@ -227,8 +228,10 @@ int HostResolver::getaddrinfo(const char* node, |
*result = NULL; |
struct addrinfo* end = NULL; |
- if (node == NULL && service == NULL) |
+ if (node == NULL && service == NULL) { |
+ LOG_TRACE("node and service are NULL."); |
return EAI_NONAME; |
+ } |
// Check the service name (port). Currently we only handle numeric |
// services. |
@@ -239,6 +242,7 @@ int HostResolver::getaddrinfo(const char* node, |
if (port >= 0 && port <= UINT16_MAX && *cp == '\0') { |
port = htons(port); |
} else { |
+ LOG_TRACE("Service \"%s\" not supported.", service); |
return EAI_SERVICE; |
} |
} |
@@ -254,6 +258,7 @@ int HostResolver::getaddrinfo(const char* node, |
case AF_UNSPEC: |
break; |
default: |
+ LOG_TRACE("Unknown family: %d.", hints->ai_family); |
return EAI_FAMILY; |
} |
@@ -303,16 +308,23 @@ int HostResolver::getaddrinfo(const char* node, |
return 0; |
} |
- if (NULL == ppapi_) |
+ if (NULL == ppapi_) { |
+ LOG_ERROR("ppapi_ is NULL."); |
return EAI_SYSTEM; |
+ } |
// Use PPAPI interface to resolve nodename |
HostResolverInterface* resolver_iface = ppapi_->GetHostResolverInterface(); |
- VarInterface* var_interface = ppapi_->GetVarInterface(); |
+ VarInterface* var_iface = ppapi_->GetVarInterface(); |
NetAddressInterface* netaddr_iface = ppapi_->GetNetAddressInterface(); |
- if (NULL == resolver_iface || NULL == var_interface || NULL == netaddr_iface) |
+ if (!(resolver_iface && var_iface && netaddr_iface)) { |
+ LOG_ERROR("Got NULL interface(s): %s%s%s", |
+ resolver_iface ? "" : "HostResolver ", |
+ var_iface ? "" : "Var ", |
+ netaddr_iface ? "" : "NetAddress"); |
return EAI_SYSTEM; |
+ } |
ScopedResource scoped_resolver(ppapi_, |
resolver_iface->Create(ppapi_->GetInstance())); |
@@ -342,7 +354,7 @@ int HostResolver::getaddrinfo(const char* node, |
PP_Var name_var = resolver_iface->GetCanonicalName(resolver); |
if (PP_VARTYPE_STRING == name_var.type) { |
uint32_t len = 0; |
- const char* tmp = var_interface->VarToUtf8(name_var, &len); |
+ const char* tmp = var_iface->VarToUtf8(name_var, &len); |
// For some reason GetCanonicalName alway returns an empty |
// string so this condition is never true. |
// TODO(sbc): investigate this issue with PPAPI team. |
@@ -355,7 +367,7 @@ int HostResolver::getaddrinfo(const char* node, |
} |
if (!canon_name) |
canon_name = strdup(node); |
- var_interface->Release(name_var); |
+ var_iface->Release(name_var); |
} |
int num_addresses = resolver_iface->GetNetAddressCount(resolver); |