1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-30 21:44:26 +01:00

Throw proper exceptions

This commit is contained in:
Matias Fontanini
2016-02-14 16:51:10 -08:00
parent 4123764a48
commit eb1c43d293
4 changed files with 101 additions and 41 deletions

View File

@@ -208,8 +208,7 @@ const Stream::timestamp_type& Stream::last_seen() const {
Flow Stream::extract_client_flow(const PDU& packet) {
const TCP* tcp = packet.find_pdu<TCP>();
if (!tcp) {
// TODO: define proper exception
throw runtime_error("No TCP");
throw invalid_packet();
}
if (const IP* ip = packet.find_pdu<IP>()) {
return Flow(ip->dst_addr(), tcp->dport(), tcp->seq());
@@ -218,16 +217,14 @@ Flow Stream::extract_client_flow(const PDU& packet) {
return Flow(ip->dst_addr(), tcp->dport(), tcp->seq());
}
else {
// TODO: define proper exception
throw runtime_error("No valid layer 3");
throw invalid_packet();
}
}
Flow Stream::extract_server_flow(const PDU& packet) {
const TCP* tcp = packet.find_pdu<TCP>();
if (!tcp) {
// TODO: define proper exception
throw runtime_error("No TCP");
throw invalid_packet();
}
if (const IP* ip = packet.find_pdu<IP>()) {
return Flow(ip->src_addr(), tcp->sport(), tcp->ack_seq());
@@ -236,8 +233,7 @@ Flow Stream::extract_server_flow(const PDU& packet) {
return Flow(ip->src_addr(), tcp->sport(), tcp->ack_seq());
}
else {
// TODO: define proper exception
throw runtime_error("No valid layer 3");
throw invalid_packet();
}
}