xref: /aosp_15_r20/external/cronet/net/base/sockaddr_storage.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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 Worker SockaddrStorage::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 Worker SockaddrStorage::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 Worker void 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