1*6777b538SAndroid Build Coastguard Worker // Copyright 2016 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "net/base/sockaddr_storage.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include <string.h> 8*6777b538SAndroid Build Coastguard Worker 9*6777b538SAndroid Build Coastguard Worker namespace net { 10*6777b538SAndroid Build Coastguard Worker SockaddrStorage()11*6777b538SAndroid Build Coastguard WorkerSockaddrStorage::SockaddrStorage() 12*6777b538SAndroid Build Coastguard Worker : addr_len(sizeof(addr_storage)), 13*6777b538SAndroid Build Coastguard Worker addr(reinterpret_cast<struct sockaddr*>(&addr_storage)) {} 14*6777b538SAndroid Build Coastguard Worker SockaddrStorage(const SockaddrStorage & other)15*6777b538SAndroid Build Coastguard WorkerSockaddrStorage::SockaddrStorage(const SockaddrStorage& other) 16*6777b538SAndroid Build Coastguard Worker : addr_len(other.addr_len), 17*6777b538SAndroid Build Coastguard Worker addr(reinterpret_cast<struct sockaddr*>(&addr_storage)) { 18*6777b538SAndroid Build Coastguard Worker memcpy(addr, other.addr, addr_len); 19*6777b538SAndroid Build Coastguard Worker } 20*6777b538SAndroid Build Coastguard Worker operator =(const SockaddrStorage & other)21*6777b538SAndroid Build Coastguard Workervoid SockaddrStorage::operator=(const SockaddrStorage& other) { 22*6777b538SAndroid Build Coastguard Worker addr_len = other.addr_len; 23*6777b538SAndroid Build Coastguard Worker // addr is already set to &this->addr_storage by default ctor. 24*6777b538SAndroid Build Coastguard Worker memcpy(addr, other.addr, addr_len); 25*6777b538SAndroid Build Coastguard Worker } 26*6777b538SAndroid Build Coastguard Worker 27*6777b538SAndroid Build Coastguard Worker } // namespace net 28