FIX bugs
This commit is contained in:
parent
42badd1402
commit
e1a077e4f1
4 changed files with 35 additions and 9 deletions
|
@ -31,6 +31,7 @@
|
|||
#include <cstdlib>
|
||||
#include <string>
|
||||
#include <iomanip>
|
||||
#include <assert.h>
|
||||
#include <boost/asio.hpp>
|
||||
#include <boost/program_options.hpp>
|
||||
#include "tools.h"
|
||||
|
@ -88,7 +89,8 @@ int main ( int argc, char **argv ) {
|
|||
|
||||
if ( pkg->isArp() ) {
|
||||
|
||||
shared_ptr<ARPpacket> pkg_arp = static_pointer_cast< ARPpacket > ( pkg );
|
||||
shared_ptr<ARPpacket> pkg_arp = dynamic_pointer_cast< ARPpacket > ( pkg );
|
||||
assert( pkg_arp != nullptr );
|
||||
|
||||
if ( pkg_arp->getOpCode() == 1 ) {
|
||||
cout << " Who has " << pkg_arp->getTargetIp().to_string() << " ? Tell "<< pkg_arp->getSenderIp().to_string() << endl;
|
||||
|
@ -103,7 +105,8 @@ int main ( int argc, char **argv ) {
|
|||
|
||||
} else if ( pkg->isIPv4() ) {
|
||||
|
||||
shared_ptr<IPv4packet> pkg_ipv4 = static_pointer_cast< IPv4packet > ( pkg );
|
||||
shared_ptr<IPv4packet> pkg_ipv4 = dynamic_pointer_cast< IPv4packet > ( pkg );
|
||||
assert( pkg_ipv4 != nullptr );
|
||||
|
||||
cout << " From " << pkg_ipv4->getSenderIp().to_string() << " to "<< pkg_ipv4->getTargetIp().to_string() << endl;
|
||||
cout << " ProtocolType: 0x" << pkg_ipv4->getProtocolType() << " ("<< ipv4_type_decode ( pkg_ipv4->getProtocolType() ) << ")" << endl;
|
||||
|
@ -128,8 +131,9 @@ int main ( int argc, char **argv ) {
|
|||
|
||||
if ( pkg_ipv4->isTCP() ) {
|
||||
|
||||
shared_ptr<TCPv4packet> pkg_tcpv4 = static_pointer_cast< TCPv4packet > ( pkg );
|
||||
|
||||
shared_ptr<TCPv4packet> pkg_tcpv4 = dynamic_pointer_cast< TCPv4packet > ( pkg );
|
||||
assert( pkg_tcpv4 != nullptr );
|
||||
|
||||
cout << " From port " << std::dec << pkg_tcpv4->getSenderPort() << " to port " << pkg_tcpv4->getTargetPort() << endl;
|
||||
|
||||
if ( vm.count ( "tcp" ) ) {
|
||||
|
@ -173,7 +177,8 @@ int main ( int argc, char **argv ) {
|
|||
|
||||
} else if ( pkg_ipv4->isUDP() ) {
|
||||
|
||||
shared_ptr<UDPv4packet> pkg_udpv4 = static_pointer_cast< UDPv4packet > ( pkg );
|
||||
shared_ptr<UDPv4packet> pkg_udpv4 = dynamic_pointer_cast< UDPv4packet > ( pkg );
|
||||
assert( pkg_udpv4 != nullptr );
|
||||
|
||||
cout << " From port " << std::dec << pkg_udpv4->getSenderPort() << " to port " << pkg_udpv4->getTargetPort() << endl;
|
||||
|
||||
|
@ -186,7 +191,8 @@ int main ( int argc, char **argv ) {
|
|||
|
||||
} else if ( pkg_ipv4->isICMP() ) {
|
||||
|
||||
shared_ptr<ICMPv4packet> pkg_icmpv4 = static_pointer_cast< ICMPv4packet > ( pkg );
|
||||
shared_ptr<ICMPv4packet> pkg_icmpv4 = dynamic_pointer_cast< ICMPv4packet > ( pkg );
|
||||
assert( pkg_icmpv4 != nullptr );
|
||||
|
||||
cout << " Message Type: " << pkg_icmpv4->getMessageType() << " (" << icmpv4_type_decode ( pkg_icmpv4->getMessageType() ) << ")" << endl;
|
||||
cout << endl;
|
||||
|
|
|
@ -215,7 +215,7 @@ network::packet* network::IPv4packet::factory ( uint64_t timeEpoch_i, uint32_t t
|
|||
break;
|
||||
|
||||
default:
|
||||
p = new UnknownPacket ( timeEpoch_i, timeMillis_i, rawData_i );
|
||||
p = new UnknownIPv4Packet ( timeEpoch_i, timeMillis_i, rawData_i );
|
||||
break;
|
||||
|
||||
}
|
||||
|
@ -460,10 +460,19 @@ std::string network::UDPv4packet::getPayLoad() {
|
|||
|
||||
/* UNKNOWN */
|
||||
|
||||
network::UnknownPacket::UnknownPacket ( uint64_t timeEpoch_i, uint32_t timeMillis_i, std::string rawData_i ) {
|
||||
network::UnknownPacket::UnknownPacket (uint64_t timeEpoch_i, uint32_t timeMillis_i, std::string rawData_i) {
|
||||
timeEpoch = timeEpoch_i;
|
||||
timeMillis = timeMillis_i;
|
||||
rawData = rawData_i;
|
||||
pkgLength = rawData_i.length() / 2;
|
||||
return;
|
||||
}
|
||||
|
||||
network::UnknownIPv4Packet::UnknownIPv4Packet(uint64_t timeEpoch_i, uint32_t timeMillis_i, std::string rawData_i) {
|
||||
timeEpoch = timeEpoch_i;
|
||||
timeMillis = timeMillis_i;
|
||||
rawData = rawData_i;
|
||||
pkgLength = rawData_i.length() / 2;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -511,6 +511,15 @@ namespace network {
|
|||
UnknownPacket(uint64_t timeEpoch_i, uint32_t timeMillis_i, std::string rawData_i);
|
||||
|
||||
};
|
||||
|
||||
/** Class for managing unknown IPv4packets */
|
||||
class UnknownIPv4Packet : public IPv4packet {
|
||||
public:
|
||||
|
||||
/** final constructor. */
|
||||
UnknownIPv4Packet(uint64_t timeEpoch_i, uint32_t timeMillis_i, std::string rawData_i);
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#define BOOST_TEST_DYN_LINK
|
||||
#define BOOST_TEST_MODULE "Packet check"
|
||||
#include <commons/packet.h>
|
||||
#include <iostream>
|
||||
#include <boost/test/unit_test.hpp> //VERY IMPORTANT - include this last
|
||||
|
||||
BOOST_AUTO_TEST_CASE( cigarette ) {
|
||||
|
@ -11,8 +12,9 @@ BOOST_AUTO_TEST_CASE( cigarette ) {
|
|||
|
||||
BOOST_CHECK( packet->isIPv4() );
|
||||
|
||||
std::shared_ptr<network::IPv4packet> pkg_ipv4 = std::static_pointer_cast<network::IPv4packet>( packet );
|
||||
std::shared_ptr<network::IPv4packet> pkg_ipv4 = std::dynamic_pointer_cast<network::IPv4packet>( packet );
|
||||
|
||||
BOOST_REQUIRE( pkg_ipv4 != nullptr );
|
||||
BOOST_CHECK( pkg_ipv4->getSenderIp().to_string() == "192.168.1.1" );
|
||||
BOOST_CHECK( pkg_ipv4->getTargetIp().to_string() == "224.0.0.1" );
|
||||
|
||||
|
|
Loading…
Reference in a new issue