diff options
Diffstat (limited to 'net/base/address_list.cc')
-rw-r--r-- | net/base/address_list.cc | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/net/base/address_list.cc b/net/base/address_list.cc index 75c30b8..ea1ee1e 100644 --- a/net/base/address_list.cc +++ b/net/base/address_list.cc @@ -85,6 +85,34 @@ void SetPortRecursive(struct addrinfo* info, int port) { } // namespace +struct AddressList::Data : public base::RefCountedThreadSafe<Data> { + Data(struct addrinfo* ai, bool is_system_created); + struct addrinfo* head; + + // Indicates which free function to use for |head|. + bool is_system_created; + + private: + friend class base::RefCountedThreadSafe<Data>; + + ~Data(); +}; + +AddressList::AddressList() { +} + +AddressList::AddressList(const AddressList& addresslist) + : data_(addresslist.data_) { +} + +AddressList::~AddressList() { +} + +AddressList& AddressList::operator=(const AddressList& addresslist) { + data_ = addresslist.data_; + return *this; +} + AddressList::AddressList(const IPAddressNumber& address, int port, bool canonicalize_name) { struct addrinfo* ai = new addrinfo; @@ -190,6 +218,12 @@ void AddressList::Reset() { data_ = NULL; } +const struct addrinfo* AddressList::head() const { + return data_->head; +} + +AddressList::AddressList(Data* data) : data_(data) {} + AddressList::Data::Data(struct addrinfo* ai, bool is_system_created) : head(ai), is_system_created(is_system_created) { DCHECK(head); |