summaryrefslogtreecommitdiffstats
path: root/net/base/net_util.cc
diff options
context:
space:
mode:
authoreroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-12 02:02:40 +0000
committereroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-12 02:02:40 +0000
commitfe89ea7e351d304ca379125329018f5b96a2aded (patch)
treef4a0a43fc9e626d3a8e015a363ebbab635154e4e /net/base/net_util.cc
parent1870d5cfa5ca359b44a32322c225cca1b2818e91 (diff)
downloadchromium_src-fe89ea7e351d304ca379125329018f5b96a2aded.zip
chromium_src-fe89ea7e351d304ca379125329018f5b96a2aded.tar.gz
chromium_src-fe89ea7e351d304ca379125329018f5b96a2aded.tar.bz2
Miscelaneous cleanups to AddressList to make it harder to mis-use.
- Removed all destructive non-const member functions -- these were dangerous since if you called them without first making a copy of the AddressList, it could mutate earlier copies. - Made AddressList::Data::head const, so new code added to AddressList cannot inadvertently introduce such dangerous mutations (won't compile). - Moved the non-trivial constructors and assign methods into factory methods (for added readability) - Removed the bool parameter from Copy (for added readability). Review URL: http://codereview.chromium.org/6880302 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85090 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/net_util.cc')
-rw-r--r--net/base/net_util.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/net/base/net_util.cc b/net/base/net_util.cc
index e97cb7f..059184a 100644
--- a/net/base/net_util.cc
+++ b/net/base/net_util.cc
@@ -2143,7 +2143,7 @@ const uint16* GetPortFieldFromAddrinfo(const struct addrinfo* info) {
return GetPortFieldFromSockaddr(address, info->ai_addrlen);
}
-int GetPortFromAddrinfo(const struct addrinfo* info) {
+uint16 GetPortFromAddrinfo(const struct addrinfo* info) {
const uint16* port_field = GetPortFieldFromAddrinfo(info);
if (!port_field)
return -1;
@@ -2175,6 +2175,16 @@ int GetPortFromSockaddr(const struct sockaddr* address, socklen_t address_len) {
return ntohs(*port_field);
}
+// Assign |port| to each address in the linked list starting from |head|.
+void SetPortForAllAddrinfos(struct addrinfo* head, uint16 port) {
+ DCHECK(head);
+ for (struct addrinfo* ai = head; ai; ai = ai->ai_next) {
+ uint16* port_field = GetPortFieldFromAddrinfo(ai);
+ if (port_field)
+ *port_field = htons(port);
+ }
+}
+
bool IsLocalhost(const std::string& host) {
if (host == "localhost" ||
host == "localhost.localdomain" ||