Browse Source

fixing checksum serilaization error

aidmar.wainakh 6 years ago
parent
commit
1c23136e56
2 changed files with 17 additions and 6 deletions
  1. 10 2
      code_boost/src/cxx/artifacts_tests.cpp
  2. 7 4
      code_boost/src/cxx/pcap_processor.cpp

+ 10 - 2
code_boost/src/cxx/artifacts_tests.cpp

@@ -99,8 +99,16 @@ void artifacts_tests::check_checksum(std::string ipAddressSender, std::string ip
     unsigned short calculatedChecsum = 0;
     
     int headerSize = tcpPkt.header_size();
-
-    std::vector<uint8_t> bufferArray_8 = tcpPkt.serialize();
+    std::vector<uint8_t> bufferArray_8;
+      
+    try {
+        bufferArray_8 = tcpPkt.serialize();
+    } catch (serialization_error) {        
+        std::cout << "Error: Could not serialize TCP packet with sender: " << ipAddressSender << ", receiver: " 
+        << ipAddressReceiver << ", seq: " << tcpPkt.seq() << std::endl;
+        return;
+    }
+            
     std::vector<unsigned short> bufferArray_16;
      for(int i=0; (unsigned)i<bufferArray_8.size();i++){
          bufferArray_16.push_back(bufferArray_8[i]);

+ 7 - 4
code_boost/src/cxx/pcap_processor.cpp

@@ -226,6 +226,7 @@ void pcap_processor::process_packets(const Packet &pkt) {
 
         // Aidmar - Artifacts Tests: contemporary (ToS)
         //tests.check_tos(ipLayer.tos());
+        //std::cout << "Aidmar: check_tos" << std::endl;
         
     } // PDU is IPv6
     else if (pdu_l3_type == PDU::PDUType::IPv6) {
@@ -258,18 +259,20 @@ void pcap_processor::process_packets(const Packet &pkt) {
         PDU::PDUType p = pdu_l4->pdu_type();  
         
         // Aidmar - Artifacts Tests: payload
-        /*if (pdu_l3_type == PDU::PDUType::IP) {            
+        if (pdu_l3_type == PDU::PDUType::IP) {            
             tests.check_payload(pdu_l4);
-          }*/
+          }
+        std::cout << "Aidmar: check_payload" << std::endl;
           
         if (p == PDU::PDUType::TCP) {
             std::cout << "Aidmar: PDU is TCP" << std::endl;
             TCP tcpPkt = (const TCP &) *pdu_l4;
             
           // Aidmar - Artifacts Tests: checksum
-          /*if (pdu_l3_type == PDU::PDUType::IP) {            
+          if (pdu_l3_type == PDU::PDUType::IP) {            
             tests.check_checksum(ipAddressSender, ipAddressReceiver, tcpPkt);
-          }*/
+          }
+            std::cout << "Aidmar: check_checksum" << std::endl;
             
             stats.incrementProtocolCount(ipAddressSender, "TCP");