summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--node/InetAddress.cpp3
-rw-r--r--node/Node.cpp6
-rw-r--r--selftest.cpp6
-rw-r--r--service/ControlPlane.cpp2
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"