aboutsummaryrefslogtreecommitdiff
path: root/src/BootstrapNode.cpp
diff options
context:
space:
mode:
authordec05eba <0xdec05eba@gmail.com>2018-10-19 14:19:12 +0200
committerdec05eba <0xdec05eba@gmail.com>2018-10-19 14:19:15 +0200
commit3565289c19974ca874f87429cc74a87558249c8e (patch)
treef3afeb061700e5e168dbee02e7694e3bc97be977 /src/BootstrapNode.cpp
parenta4e128e5e46c9fcf00fd874c8386988f9d3b73fa (diff)
Use sendmsg and recvmsg instead of send and recv to receive one message at a time
Diffstat (limited to 'src/BootstrapNode.cpp')
-rw-r--r--src/BootstrapNode.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/BootstrapNode.cpp b/src/BootstrapNode.cpp
index 5c62e64..81df6d7 100644
--- a/src/BootstrapNode.cpp
+++ b/src/BootstrapNode.cpp
@@ -48,7 +48,6 @@ namespace sibs
BootstrapNode::~BootstrapNode()
{
- std::lock_guard<std::mutex> lock(connections.peersMutex);
connections.alive = false;
socket.reset();
acceptConnectionsThread.join();
@@ -94,7 +93,7 @@ namespace sibs
{
sibs::SafeDeserializer deserializer((const u8*)data, size);
PubsubKey pubsubKey;
- deserializer.extract(pubsubKey.data.data(), PUBSUB_KEY_LENGTH);
+ deserializer.extract(pubsubKey.data.data(), pubsubKey.data.size());
if(messageType == MessageType::SUBSCRIBE)
{
@@ -108,7 +107,7 @@ namespace sibs
}
sibs::SafeSerializer serializer;
- serializer.add((u32)peer->address.address.sin_family);
+ serializer.add((u16)peer->address.address.sin_family);
serializer.add((u32)peer->address.address.sin_addr.s_addr);
serializer.add((u16)peer->address.address.sin_port);
auto newPeerMessage = std::make_shared<Message>(MessageType::SUBSCRIBE);
@@ -126,7 +125,7 @@ namespace sibs
sibs::SafeSerializer newPeerSerializer;
for(auto &existingPeer : peers)
{
- newPeerSerializer.add((u32)existingPeer->address.address.sin_family);
+ newPeerSerializer.add((u16)existingPeer->address.address.sin_family);
newPeerSerializer.add((u32)existingPeer->address.address.sin_addr.s_addr);
newPeerSerializer.add((u16)existingPeer->address.address.sin_port);
}