diff options
-rw-r--r-- | node/InetAddress.cpp | 3 | ||||
-rw-r--r-- | node/Node.cpp | 6 | ||||
-rw-r--r-- | selftest.cpp | 6 | ||||
-rw-r--r-- | service/ControlPlane.cpp | 2 |
4 files changed, 9 insertions, 8 deletions
diff --git a/node/InetAddress.cpp b/node/InetAddress.cpp index 54fc763f..940a58b2 100644 --- a/node/InetAddress.cpp +++ b/node/InetAddress.cpp @@ -137,8 +137,7 @@ void InetAddress::set(const void *ipBytes,unsigned int ipLen,unsigned int port) reinterpret_cast<struct sockaddr_in *>(this)->sin_port = Utils::hton((uint16_t)port); } else if (ipLen == 16) { ss_family = AF_INET6; - (reinterpret_cast<uint64_t *>(reinterpret_cast<struct sockaddr_in6 *>(this)->sin6_addr.s6_addr))[0] = ((const uint64_t *)ipBytes)[0]; - (reinterpret_cast<uint64_t *>(reinterpret_cast<struct sockaddr_in6 *>(this)->sin6_addr.s6_addr))[1] = ((const uint64_t *)ipBytes)[1]; + memcpy(reinterpret_cast<struct sockaddr_in6 *>(this)->sin6_addr.s6_addr,ipBytes,16); reinterpret_cast<struct sockaddr_in6 *>(this)->sin6_port = Utils::hton((uint16_t)port); } } diff --git a/node/Node.cpp b/node/Node.cpp index 654465e8..0e3ddd14 100644 --- a/node/Node.cpp +++ b/node/Node.cpp @@ -251,8 +251,10 @@ ZT1_ResultCode Node::processBackgroundTasks(uint64_t now,volatile uint64_t *next if ((now - _lastBeacon) >= ZT_BEACON_INTERVAL) { _lastBeacon = now; char beacon[13]; - *(reinterpret_cast<uint32_t *>(beacon)) = RR->prng->next32(); - *(reinterpret_cast<uint32_t *>(beacon + 4)) = RR->prng->next32(); + void *p = beacon; + *(reinterpret_cast<uint32_t *>(p)) = RR->prng->next32(); + p = beacon + 4; + *(reinterpret_cast<uint32_t *>(p)) = RR->prng->next32(); RR->identity.address().copyTo(beacon + 8,5); RR->antiRec->logOutgoingZT(beacon,13); putPacket(ZT_DEFAULTS.v4Broadcast,beacon,13,0); diff --git a/selftest.cpp b/selftest.cpp index 5d5067fd..3c7b0257 100644 --- a/selftest.cpp +++ b/selftest.cpp @@ -510,16 +510,14 @@ static int testCertificate() static int testPacket() { - unsigned char salsaKey[32],hmacKey[32]; + unsigned char salsaKey[32]; Packet a,b; a.burn(); b.burn(); - for(unsigned int i=0;i<32;++i) { + for(unsigned int i=0;i<32;++i) salsaKey[i] = (unsigned char)rand(); - hmacKey[i] = (unsigned char)rand(); - } std::cout << "[packet] Testing Packet encoder/decoder... "; diff --git a/service/ControlPlane.cpp b/service/ControlPlane.cpp index 81fb61ca..2e8290ed 100644 --- a/service/ControlPlane.cpp +++ b/service/ControlPlane.cpp @@ -33,7 +33,9 @@ #include "../ext/http-parser/http_parser.h" +#ifdef ZT_ENABLE_NETWORK_CONTROLLER #include "../controller/SqliteNetworkController.hpp" +#endif #include "../node/InetAddress.hpp" #include "../node/Node.hpp" |