diff options
author | Thorvald Natvig <slicer@users.sourceforge.net> | 2011-05-11 09:25:56 +0400 |
---|---|---|
committer | Thorvald Natvig <slicer@users.sourceforge.net> | 2011-05-11 09:25:56 +0400 |
commit | 07bf14614a6da2fff0205c562f18566774e38e8c (patch) | |
tree | 2e434debe277e98f4f81dff337ec67e6c73ddb9d /src/Net.cpp | |
parent | d96648ef25bdf214afe24ee306d12bfb4d0f8de4 (diff) |
Use TCP destination as UDP source
Diffstat (limited to 'src/Net.cpp')
-rw-r--r-- | src/Net.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/Net.cpp b/src/Net.cpp index b993bc194..5c9c5a2f3 100644 --- a/src/Net.cpp +++ b/src/Net.cpp @@ -128,6 +128,19 @@ QByteArray HostAddress::toByteArray() const { return QByteArray(reinterpret_cast<const char *>(qip6.c), 16); } +void HostAddress::toSockaddr(sockaddr_storage *dst) const { + memset(dst, 0, sizeof(*dst)); + if(isV6()) { + struct sockaddr_in6 *in6 = reinterpret_cast<struct sockaddr_in6 *>(dst); + dst->ss_family = AF_INET6; + memcpy(in6->sin6_addr.s6_addr, qip6.c, 16); + } else { + struct sockaddr_in *in = reinterpret_cast<struct sockaddr_in *>(dst); + dst->ss_family = AF_INET; + in->sin_addr.s_addr = hash[3]; + } +} + quint32 qHash(const HostAddress &ha) { return (ha.hash[0] ^ ha.hash[1] ^ ha.hash[2] ^ ha.hash[3]); } |