Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(783)

Unified Diff: net/base/host_resolver_proc.cc

Issue 10309002: Reimplements net::AddressList without struct addrinfo. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added missing NET_EXPORT to *PortOnAddressList. Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/base/host_resolver_proc.cc
diff --git a/net/base/host_resolver_proc.cc b/net/base/host_resolver_proc.cc
index c2f2ddde1b34b08781be89bb242272ff77d8c344..70b63e174e5d75f41e5a0221098506e0c9cd7049 100644
--- a/net/base/host_resolver_proc.cc
+++ b/net/base/host_resolver_proc.cc
@@ -56,6 +56,20 @@ bool IsAllLocalhostOfOneFamily(const struct addrinfo* ai) {
} // namespace
+void SetPortOnAddressList(uint16 port, AddressList* list) {
+ DCHECK(list);
+ for (AddressList::iterator it = list->begin(); it != list->end(); ++it) {
+ *it = IPEndPoint(it->address(), port);
+ }
+}
+
+void EnsurePortOnAddressList(uint16 port, AddressList* list) {
+ DCHECK(list);
+ if (list->empty() || list->front().port() == port)
+ return;
+ SetPortOnAddressList(port, list);
+}
+
HostResolverProc* HostResolverProc::default_proc_ = NULL;
HostResolverProc::HostResolverProc(HostResolverProc* previous) {
@@ -236,7 +250,7 @@ int SystemHostResolverProc(const std::string& host,
return ERR_NAME_NOT_RESOLVED;
}
- *addrlist = AddressList::CreateByAdoptingFromSystem(ai);
+ *addrlist = AddressList::CreateFromAddrinfo(ai);
return OK;
}

Powered by Google App Engine
This is Rietveld 408576698