1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-29 13:04:28 +01:00

Add helper function to create StreamIdentifier from const Stream& (#152)

This commit is contained in:
Jacob Parker
2016-06-07 16:19:55 -04:00
committed by Matias Fontanini
parent 8afc784956
commit 1552e33c67
2 changed files with 14 additions and 0 deletions

View File

@@ -39,6 +39,7 @@
#include "ip.h"
#include "ipv6.h"
#include "exceptions.h"
#include "tcp_ip/stream.h"
using std::swap;
using std::tie;
@@ -109,6 +110,16 @@ StreamIdentifier StreamIdentifier::make_identifier(const PDU& packet) {
}
}
StreamIdentifier StreamIdentifier::make_identifier(const Stream& stream) {
if (stream.is_v6()) {
return StreamIdentifier(serialize(stream.client_addr_v6()), stream.client_port(),
serialize(stream.server_addr_v6()), stream.server_port());
} else {
return StreamIdentifier(serialize(stream.client_addr_v4()), stream.client_port(),
serialize(stream.server_addr_v4()), stream.server_port());
}
}
StreamIdentifier::address_type StreamIdentifier::serialize(IPv4Address address) {
address_type addr;
OutputMemoryStream output(addr.data(), addr.size());