summaryrefslogtreecommitdiffstats
path: root/net/base/address_list.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/base/address_list.cc')
-rw-r--r--net/base/address_list.cc28
1 files changed, 3 insertions, 25 deletions
diff --git a/net/base/address_list.cc b/net/base/address_list.cc
index 1736a19..1c97311 100644
--- a/net/base/address_list.cc
+++ b/net/base/address_list.cc
@@ -7,6 +7,7 @@
#include <stdlib.h>
#include "base/logging.h"
+#include "net/base/net_util.h"
#include "net/base/sys_addrinfo.h"
namespace net {
@@ -71,28 +72,9 @@ void FreeMyAddrinfo(struct addrinfo* info) {
FreeMyAddrinfo(next);
}
-// Returns the address to port field in |info|.
-uint16* GetPortField(const struct addrinfo* info) {
- DCHECK(info);
- if (info->ai_family == AF_INET) {
- DCHECK_EQ(sizeof(sockaddr_in), info->ai_addrlen);
- struct sockaddr_in* sockaddr =
- reinterpret_cast<struct sockaddr_in*>(info->ai_addr);
- return &sockaddr->sin_port;
- } else if (info->ai_family == AF_INET6) {
- DCHECK_EQ(sizeof(sockaddr_in6), info->ai_addrlen);
- struct sockaddr_in6* sockaddr =
- reinterpret_cast<struct sockaddr_in6*>(info->ai_addr);
- return &sockaddr->sin6_port;
- } else {
- NOTREACHED();
- return NULL;
- }
-}
-
// Assign the port for all addresses in the list.
void SetPortRecursive(struct addrinfo* info, int port) {
- uint16* port_field = GetPortField(info);
+ uint16* port_field = GetPortFieldFromAddrinfo(info);
if (port_field)
*port_field = htons(port);
@@ -135,11 +117,7 @@ void AddressList::SetPort(int port) {
}
int AddressList::GetPort() const {
- uint16* port_field = GetPortField(data_->head);
- if (!port_field)
- return -1;
-
- return ntohs(*port_field);
+ return GetPortFromAddrinfo(data_->head);
}
bool AddressList::GetCanonicalName(std::string* canonical_name) const {