diff options
author | dec05eba <dec05eba@protonmail.com> | 2018-11-23 15:44:08 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2020-08-18 22:56:48 +0200 |
commit | 1167a78fd14b8a4a421378c8815a4992e06d11cd (patch) | |
tree | 3167162354e19e28d4475ddf9362160f4275e050 /include | |
parent | b25c227f2357e351d2c1653fdfdcd1f099ac7f66 (diff) |
Add data routing for failed p2p connections
Diffstat (limited to 'include')
-rw-r--r-- | include/sibs/DirectConnection.hpp | 1 | ||||
-rw-r--r-- | include/sibs/IpAddress.hpp | 2 | ||||
-rw-r--r-- | include/sibs/Message.hpp | 12 |
3 files changed, 9 insertions, 6 deletions
diff --git a/include/sibs/DirectConnection.hpp b/include/sibs/DirectConnection.hpp index eb44153..70eaf4f 100644 --- a/include/sibs/DirectConnection.hpp +++ b/include/sibs/DirectConnection.hpp @@ -56,6 +56,7 @@ namespace sibs PubSubReceiveDataCallback receiveDataCallbackFunc; int sharedKeys = 0; PeerType type = PeerType::CLIENT; + bool routed = false; bool operator == (const DirectConnectionPeer &other) const; bool operator != (const DirectConnectionPeer &other) const; diff --git a/include/sibs/IpAddress.hpp b/include/sibs/IpAddress.hpp index 54cb58a..ea2a7bd 100644 --- a/include/sibs/IpAddress.hpp +++ b/include/sibs/IpAddress.hpp @@ -4,6 +4,7 @@ #include <string> #include <unordered_map> #include "../env.hpp" +#include "../types.hpp" #if OS_FAMILY != OS_FAMILY_WINDOWS #include <arpa/inet.h> #include <netdb.h> @@ -32,6 +33,7 @@ namespace sibs // If @ip is nullptr, then bind to all available sockets (typical for servers) // Throws InvalidAddressException on error. Ipv4(const char *ip, unsigned short port); + Ipv4(u16 family, u32 address, u16 port); Ipv4(const Ipv4 &other); Ipv4& operator = (const Ipv4 &other); diff --git a/include/sibs/Message.hpp b/include/sibs/Message.hpp index b6eb858..4591221 100644 --- a/include/sibs/Message.hpp +++ b/include/sibs/Message.hpp @@ -1,7 +1,7 @@ #pragma once #include "../types.hpp" -#include <vector> +#include <sibs/SafeSerializer.hpp> namespace sibs { @@ -20,11 +20,11 @@ namespace sibs void append(const void *data, const usize size); - usize getDataSize() const { return rawData.size() - 1; } - usize getRawSize() const { return rawData.size(); } + usize getDataSize() const { return serializer.getSize() - 1; } + usize getRawSize() const { return serializer.getSize(); } - const u8* data() const { return rawData.data(); } - private: - std::vector<u8> rawData; + const u8* data() { return serializer.getBuffer().data(); } + + sibs::SafeSerializer serializer; }; }
\ No newline at end of file |