aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/messagebus/config/netaddr.h
diff options
context:
space:
mode:
authorAnton Samokhvalov <pg83@yandex.ru>2022-02-10 16:45:17 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:17 +0300
commitd3a398281c6fd1d3672036cb2d63f842d2cb28c5 (patch)
treedd4bd3ca0f36b817e96812825ffaf10d645803f2 /library/cpp/messagebus/config/netaddr.h
parent72cb13b4aff9bc9cf22e49251bc8fd143f82538f (diff)
downloadydb-d3a398281c6fd1d3672036cb2d63f842d2cb28c5.tar.gz
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/messagebus/config/netaddr.h')
-rw-r--r--library/cpp/messagebus/config/netaddr.h134
1 files changed, 67 insertions, 67 deletions
diff --git a/library/cpp/messagebus/config/netaddr.h b/library/cpp/messagebus/config/netaddr.h
index 839f3d8f5d..b79c0cc355 100644
--- a/library/cpp/messagebus/config/netaddr.h
+++ b/library/cpp/messagebus/config/netaddr.h
@@ -8,79 +8,79 @@
#include <util/network/address.h>
namespace NBus {
- using namespace NAddr;
-
- /// IP protocol version.
- enum EIpVersion {
- EIP_VERSION_4 = 1,
- EIP_VERSION_6 = 2,
- EIP_VERSION_ANY = EIP_VERSION_4 | EIP_VERSION_6,
- };
-
- inline bool IsFamilyAllowed(ui16 sa_family, EIpVersion ipVersion) {
- if (ipVersion == EIP_VERSION_4 && sa_family != AF_INET) {
- return false;
- }
- if (ipVersion == EIP_VERSION_6 && sa_family != AF_INET6) {
- return false;
- }
- return true;
+ using namespace NAddr;
+
+ /// IP protocol version.
+ enum EIpVersion {
+ EIP_VERSION_4 = 1,
+ EIP_VERSION_6 = 2,
+ EIP_VERSION_ANY = EIP_VERSION_4 | EIP_VERSION_6,
+ };
+
+ inline bool IsFamilyAllowed(ui16 sa_family, EIpVersion ipVersion) {
+ if (ipVersion == EIP_VERSION_4 && sa_family != AF_INET) {
+ return false;
+ }
+ if (ipVersion == EIP_VERSION_6 && sa_family != AF_INET6) {
+ return false;
+ }
+ return true;
}
- const char* ToCString(EIpVersion);
- int ToAddrFamily(EIpVersion);
-
- /// Hold referenced pointer to address description structure (ex. sockaddr_storage)
- /// It's make possible to work with IPv4 / IPv6 addresses simultaneously
- class TNetAddr: public IRemoteAddr {
- public:
- class TError: public yexception {
- };
-
- TNetAddr();
- TNetAddr(TAutoPtr<IRemoteAddr> addr);
- TNetAddr(const char* hostPort, EIpVersion requireVersion = EIP_VERSION_ANY, EIpVersion preferVersion = EIP_VERSION_ANY);
- TNetAddr(TStringBuf host, int port, EIpVersion requireVersion = EIP_VERSION_ANY, EIpVersion preferVersion = EIP_VERSION_ANY);
- TNetAddr(const TNetworkAddress& na, EIpVersion requireVersion = EIP_VERSION_ANY, EIpVersion preferVersion = EIP_VERSION_ANY);
- TNetAddr(const TNetworkAddress& na, const TAddrInfo& ai);
-
- bool operator==(const TNetAddr&) const;
- bool operator!=(const TNetAddr& other) const {
- return !(*this == other);
- }
- inline explicit operator bool() const noexcept {
- return !!Ptr;
- }
-
- const sockaddr* Addr() const override;
- socklen_t Len() const override;
-
- bool IsIpv4() const;
- bool IsIpv6() const;
- int GetPort() const;
-
- private:
- TAtomicSharedPtr<IRemoteAddr> Ptr;
- };
-
- using TSockAddrInVector = TVector<TNetAddr>;
-
- struct TNetAddrHostPortHash {
- inline size_t operator()(const TNetAddr& a) const {
- const sockaddr* s = a.Addr();
- const sockaddr_in* const sa = reinterpret_cast<const sockaddr_in*>(s);
- const sockaddr_in6* const sa6 = reinterpret_cast<const sockaddr_in6*>(s);
-
- switch (s->sa_family) {
- case AF_INET:
+ const char* ToCString(EIpVersion);
+ int ToAddrFamily(EIpVersion);
+
+ /// Hold referenced pointer to address description structure (ex. sockaddr_storage)
+ /// It's make possible to work with IPv4 / IPv6 addresses simultaneously
+ class TNetAddr: public IRemoteAddr {
+ public:
+ class TError: public yexception {
+ };
+
+ TNetAddr();
+ TNetAddr(TAutoPtr<IRemoteAddr> addr);
+ TNetAddr(const char* hostPort, EIpVersion requireVersion = EIP_VERSION_ANY, EIpVersion preferVersion = EIP_VERSION_ANY);
+ TNetAddr(TStringBuf host, int port, EIpVersion requireVersion = EIP_VERSION_ANY, EIpVersion preferVersion = EIP_VERSION_ANY);
+ TNetAddr(const TNetworkAddress& na, EIpVersion requireVersion = EIP_VERSION_ANY, EIpVersion preferVersion = EIP_VERSION_ANY);
+ TNetAddr(const TNetworkAddress& na, const TAddrInfo& ai);
+
+ bool operator==(const TNetAddr&) const;
+ bool operator!=(const TNetAddr& other) const {
+ return !(*this == other);
+ }
+ inline explicit operator bool() const noexcept {
+ return !!Ptr;
+ }
+
+ const sockaddr* Addr() const override;
+ socklen_t Len() const override;
+
+ bool IsIpv4() const;
+ bool IsIpv6() const;
+ int GetPort() const;
+
+ private:
+ TAtomicSharedPtr<IRemoteAddr> Ptr;
+ };
+
+ using TSockAddrInVector = TVector<TNetAddr>;
+
+ struct TNetAddrHostPortHash {
+ inline size_t operator()(const TNetAddr& a) const {
+ const sockaddr* s = a.Addr();
+ const sockaddr_in* const sa = reinterpret_cast<const sockaddr_in*>(s);
+ const sockaddr_in6* const sa6 = reinterpret_cast<const sockaddr_in6*>(s);
+
+ switch (s->sa_family) {
+ case AF_INET:
return CombineHashes<size_t>(ComputeHash(TStringBuf(reinterpret_cast<const char*>(&sa->sin_addr), sizeof(sa->sin_addr))), IntHashImpl(sa->sin_port));
- case AF_INET6:
+ case AF_INET6:
return CombineHashes<size_t>(ComputeHash(TStringBuf(reinterpret_cast<const char*>(&sa6->sin6_addr), sizeof(sa6->sin6_addr))), IntHashImpl(sa6->sin6_port));
- }
+ }
return ComputeHash(TStringBuf(reinterpret_cast<const char*>(s), a.Len()));
}
- };
+ };
-}
+}