X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=example%2Fdiameter%2FpcapDecoder%2Fmain.cpp;h=97474e8428a5cb9d2a32b241ddedb2c8220ee5d5;hb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;hp=c8bbea76e49c03b0006a8e350079704475601cca;hpb=db04ba506b776f4fd925df83a3d092687cf674c5;p=anna.git diff --git a/example/diameter/pcapDecoder/main.cpp b/example/diameter/pcapDecoder/main.cpp index c8bbea7..97474e8 100644 --- a/example/diameter/pcapDecoder/main.cpp +++ b/example/diameter/pcapDecoder/main.cpp @@ -1,39 +1,11 @@ -// ANNA - Anna is Not Nothingness Anymore -// -// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo -// -// http://redmine.teslayout.com/projects/anna-suite -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of the copyright holder nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Authors: eduardo.ramos.testillano@gmail.com -// cisco.tierra@gmail.com - -// Standard +// ANNA - Anna is Not Nothingness Anymore // +// // +// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo // +// // +// See project site at http://redmine.teslayout.com/projects/anna-suite // +// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE // + + #include #include #include @@ -46,7 +18,6 @@ #include #include -#include #include #include #include @@ -78,20 +49,20 @@ public: } } - void setSourceIP(const std::string &srcIP) throw() { + void setSourceIP(const std::string &srcIP) { _sourceIP = srcIP; } - void setDestinationIP(const std::string &dstIP) throw() { + void setDestinationIP(const std::string &dstIP) { _destinationIP = dstIP; } - void setTimestamp(time_t ts) throw() { + void setTimestamp(time_t ts) { _timestamp = ts; } - void setTimestampU(int tsu) throw() { + void setTimestampU(int tsu) { _timestampU = tsu; } // Returns true if completed: - bool appendData(const char *data, size_t size) throw(RuntimeException) { + bool appendData(const char *data, size_t size) noexcept(false) { LOGDEBUG( Logger::debug(anna::functions::asString("Appending %d bytes", size), ANNA_FILE_LOCATION)); _data.append(data, size); @@ -108,7 +79,7 @@ public: return true; } - void reset() throw() { + void reset() { _sourceIP = ""; _destinationIP = ""; _timestamp = 0; @@ -117,22 +88,22 @@ public: _diameterLength = -1; // not calculated yet } - const std::string &getSourceIP() const throw() { + const std::string &getSourceIP() const { return _sourceIP; } - const std::string &getDestinationIP() const throw() { + const std::string &getDestinationIP() const { return _destinationIP; } - time_t getTimestamp() const throw() { + time_t getTimestamp() const { return _timestamp; } - int getTimestampU() const throw() { + int getTimestampU() const { return _timestampU; } - const std::string &getData() const throw() { + const std::string &getData() const { return _data; } - std::string getDataAsHex() const throw() { + std::string getDataAsHex() const { return anna::functions::asHexString( anna::DataBlock(_data.c_str(), _data.size())); } @@ -208,12 +179,10 @@ struct sniff_tcp { u_char *getPayload(const u_char* packet, int packetSize, int &payloadSize, std::string &srcIp, std::string &dstIp, int &fragmentId, bool &dfFlag, bool &mfFlag, int &fragmentOffset) { - const struct sniff_ethernet *ethernet; /* The ethernet header */ const struct sniff_ip *ip; /* The IP header */ const struct sniff_tcp *tcp; /* The TCP header */ u_int size_ip; u_int size_tcp; - ethernet = (struct sniff_ethernet*)(packet); ip = (struct sniff_ip*)(packet + SIZE_ETHERNET); size_ip = IP_HL(ip) * 4; // 4 bytes per 32 bits word @@ -284,7 +253,7 @@ void my_callback(u_char *useless, const struct pcap_pkthdr* pkthdr, count++; } -bool getDataBlockFromHexFile(const std::string &pathfile, anna::DataBlock &db) throw() { +bool getDataBlockFromHexFile(const std::string &pathfile, anna::DataBlock &db) { // Get hex string static char buffer[8192]; std::ifstream infile(pathfile.c_str(), std::ifstream::in); @@ -335,7 +304,7 @@ int main(int argc, char **argv) { // Command-line parameters: std::string inputFile = argv[1]; - bool isHex = (inputFile.substr(inputFile.find_last_of(".") + 1) == "hex"); + //bool isHex = (inputFile.substr(inputFile.find_last_of(".") + 1) == "hex"); std::string outputFile = inputFile; // extension will be added later std::string optionals; int indx = 2; @@ -350,8 +319,8 @@ int main(int argc, char **argv) { // SNIFFING //////////////////////////////////////////////////////////////////////////////////////////////7 //temporary packet buffers - struct pcap_pkthdr header; // The header that pcap gives us - const u_char *packet; // The actual packet + //struct pcap_pkthdr header; // The header that pcap gives us + //const u_char *packet; // The actual packet //------------------ //open the pcap file pcap_t *handle;