diff options
| author | Mike Yu <yumike@google.com> | 2019-10-16 17:22:37 +0800 |
|---|---|---|
| committer | Mike Yu <yumike@google.com> | 2019-10-16 19:58:26 +0800 |
| commit | 2f35dc8b1de87ad5180628902343afc092641e52 (patch) | |
| tree | 459bf66b5be804f47bce5cd8bff9f057ec6e5741 /libnetdutils/include | |
| parent | 485a477dfe5ad0cbfea17c9f94b01364237a0732 (diff) | |
| download | platform_system_netd-2f35dc8b1de87ad5180628902343afc092641e52.tar.gz platform_system_netd-2f35dc8b1de87ad5180628902343afc092641e52.tar.bz2 platform_system_netd-2f35dc8b1de87ad5180628902343afc092641e52.zip | |
Add some utilities to IPSockAddr
These utilities help construct IPSockAddr and are used in
DnsResolver.
Bug: 130686826
Test: built, flashed, rebooted
Test: atest passed
Change-Id: I032d78f96e5d87d918a6ada976c770c73879d38c
Diffstat (limited to 'libnetdutils/include')
| -rw-r--r-- | libnetdutils/include/netdutils/InternetAddresses.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libnetdutils/include/netdutils/InternetAddresses.h b/libnetdutils/include/netdutils/InternetAddresses.h index 472ac8946..e817b780d 100644 --- a/libnetdutils/include/netdutils/InternetAddresses.h +++ b/libnetdutils/include/netdutils/InternetAddresses.h @@ -242,6 +242,23 @@ class IPSockAddr { public: // TODO: static forString + static IPSockAddr toIPSockAddr(const std::string& repr, in_port_t port) { + return IPSockAddr(IPAddress::forString(repr), port); + } + static IPSockAddr toIPSockAddr(const sockaddr& sa) { + switch (sa.sa_family) { + case AF_INET: + return IPSockAddr(*reinterpret_cast<const sockaddr_in*>(&sa)); + case AF_INET6: + return IPSockAddr(*reinterpret_cast<const sockaddr_in6*>(&sa)); + default: + return IPSockAddr(); + } + } + static IPSockAddr toIPSockAddr(const sockaddr_storage& ss) { + return toIPSockAddr(*reinterpret_cast<const sockaddr*>(&ss)); + } + IPSockAddr() = default; IPSockAddr(const IPSockAddr&) = default; IPSockAddr(IPSockAddr&&) = default; |
