X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/8c6fa3fbaccc22127280bf77a48fab5a3ee0716e..46b0747592074017ff0ea4b33d4a7194235886e5:/projects/stargazer/plugins/capture/cap_debug/debug_cap.cpp diff --git a/projects/stargazer/plugins/capture/cap_debug/debug_cap.cpp b/projects/stargazer/plugins/capture/cap_debug/debug_cap.cpp deleted file mode 100644 index 0ba91bbb..00000000 --- a/projects/stargazer/plugins/capture/cap_debug/debug_cap.cpp +++ /dev/null @@ -1,504 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* -Date: 18.09.2002 -*/ - -/* -* Author : Boris Mikhailenko -*/ - -/* -$Revision: 1.21 $ -$Date: 2009/03/19 20:03:35 $ -$Author: faust $ -*/ - -#include "debug_cap.h" - -#include "libpal.h" - -#include "stg/plugin_creator.h" -#include "stg/traffcounter.h" -#include "stg/common.h" - -#include -#include - -#include -#include -#include -#include -#include - -extern volatile time_t stgTime; - -//----------------------------------------------------------------------------- -void WriteStat(uint32_t u, uint32_t d) -{ -FILE * f; -f = fopen("/tmp/cap.stat", "at"); -fprintf(f, "up %5.2f Mbit, down %5.2f Mbit, sum %5.2f Mbit\n", - u / (1000000*8.0), - d / (1000000*8.0), - (u + d) / (1000000*8.0)); -fclose(f); -} -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -namespace -{ -PLUGIN_CREATOR cdc; -} - -extern "C" PLUGIN * GetPlugin(); -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -PLUGIN * GetPlugin() -{ -return cdc.GetPlugin(); -} -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -RAW_PACKET MakeTCPPacket(const char * src, - const char * dst, - uint16_t sport, - uint16_t dport, - uint16_t len); -std::string DEBUG_CAP::GetVersion() const -{ -return "cap_debug v.0.01a"; -} -//----------------------------------------------------------------------------- -DEBUG_CAP::DEBUG_CAP() - : nonstop(false), - isRunning(false), - traffCnt(NULL) -{ -} -//----------------------------------------------------------------------------- -void DEBUG_CAP::SetTraffcounter(TRAFFCOUNTER * tc) -{ -traffCnt = tc; -} -//----------------------------------------------------------------------------- -const std::string & DEBUG_CAP::GetStrError() const -{ -return errorStr; -} -//----------------------------------------------------------------------------- -int DEBUG_CAP::Start() -{ -if (isRunning) - return 0; - -printfd(__FILE__, "DEBUG_CAP::Start()\n"); - -nonstop = true; - -if (pthread_create(&thread, NULL, Run1, this) == 0) - { - return 0; - } - -errorStr = "Cannot create thread."; -return -1; -} -//----------------------------------------------------------------------------- -int DEBUG_CAP::Stop() -{ -if (!isRunning) - return 0; - -nonstop = false; - -//5 seconds to thread stops itself -int i; -for (i = 0; i < 25; i++) - { - if (!isRunning) - break; - - usleep(200000); - //printf("."); - } - -/*if (i) - printf("\n");*/ - -//after 5 seconds waiting thread still running. now killing it -if (isRunning) - { - //TODO pthread_cancel() - if (pthread_kill(thread, SIGINT)) - { - errorStr = "Cannot kill thread."; - return -1; - } - } - -return 0; -} -//----------------------------------------------------------------------------- -bool DEBUG_CAP::IsRunning() -{ -return nonstop; -} -//----------------------------------------------------------------------------- -void * DEBUG_CAP::Run1(void * data) -{ -printfd(__FILE__, "=====================| pid: %d |===================== \n", getpid()); - -DEBUG_CAP * dc = static_cast(data); -dc->isRunning = true; - -RAW_PACKET rp; -rp = MakeTCPPacket("192.168.1.1", "192.168.1.21", 255, 255, 200); -int a = 0; -sleep(3); - -struct tm * tm; -time_t t; -uint32_t u = 0; -uint32_t d = 0; - -//2 upload : 3 download - -int usize; -int dsize; - -t = stgTime; -tm = localtime(&t); -int min = tm->tm_min; - -char cliIP[20]; -char srvIP[20]; - -while (dc->nonstop) - { - for (int i = 8; i <= 252; i++) - { - usize = random()%100 + 100; - dsize = random()%500 + 900; - - for (int j = 2; j < 11; j++) - { - sprintf(cliIP, "192.168.%d.%d", j, i); - sprintf(srvIP, "10.1.%d.%d", random()%8, 1); - - rp = MakeTCPPacket(srvIP, cliIP, 80, random()%2 + 2000, dsize); - d += dsize; - dc->traffCnt->Process(rp); - - rp = MakeTCPPacket(cliIP, srvIP, random()%2 + 2000, 80, usize); - u += usize; - dc->traffCnt->Process(rp); - } - } - - usleep(100000); - t = stgTime; - - if (min != localtime(&t)->tm_min) - { - min = localtime(&t)->tm_min; - WriteStat(u, d); - u = d = 0; - } - - a++; - - } - -dc->isRunning = false; -return NULL; -} -//----------------------------------------------------------------------------- -void * DEBUG_CAP::Run2(void * data) -{ -printfd(__FILE__, "=====================| pid: %d |===================== \n", getpid()); - -DEBUG_CAP * dc = static_cast(data); -dc->isRunning = true; - -RAW_PACKET rp; -rp = MakeTCPPacket("192.168.1.1", "192.168.1.21", 255, 255, 200); -int a = 0; -sleep(3); - -struct tm * tm; -time_t t; -uint32_t u = 0; -uint32_t d = 0; - -//2 upload : 3 download - -int usize = 200; -int dsize = 1500; - -t = stgTime; -tm = localtime(&t); -int min = tm->tm_min; - -char cliIP[20]; -char srvIP[20]; - -while (dc->nonstop) - { - for (int i = 101; i <= 150; i++) - { - sprintf(cliIP, "192.168.1.%d", i); - for (int dp = 0; dp < 1; dp++) - { - //sprintf(srvIP, "10.1.%d.%d", i, 10 + dp); - sprintf(srvIP, "10.1.%d.%d", i, 10 + dp); - - rp = MakeTCPPacket(srvIP, cliIP, 80, 10000 + i + dp, dsize); - d += dsize; - dc->traffCnt->Process(rp); - - rp = MakeTCPPacket(srvIP, cliIP, 80, 10000 + i + dp, dsize); - d += dsize; - dc->traffCnt->Process(rp); - - rp = MakeTCPPacket(srvIP, cliIP, 80, 10000 + i + dp, dsize); - dc->traffCnt->Process(rp); - d += dsize; - - - rp = MakeTCPPacket(cliIP, srvIP, 10000 + i + dp, 80, usize); - u += usize; - dc->traffCnt->Process(rp); - - rp = MakeTCPPacket(cliIP, srvIP, 10000 + i + dp, 80, usize); - u += usize; - dc->traffCnt->Process(rp); - } - } - - //usleep(20000); - t = stgTime; - - if (min != localtime(&t)->tm_min) - { - min = localtime(&t)->tm_min; - WriteStat(u, d); - u = d = 0; - } - - a++; - - } - -dc->isRunning = false; -return NULL; -} -//----------------------------------------------------------------------------- -void * DEBUG_CAP::Run3(void * data) -{ -printfd(__FILE__, "=====================| pid: %d |===================== \n", getpid()); - -DEBUG_CAP * dc = static_cast(data); -dc->isRunning = true; - -RAW_PACKET rp; -rp = MakeTCPPacket("192.168.1.1", "192.168.1.21", 255, 255, 200); -int a = 0; -sleep(3); - -time_t t; -uint32_t u = 0; -uint32_t d = 0; - -//2 upload : 3 download - -int usize = 200; -int dsize = 1500; - -t = stgTime; - -char cliIP[20]; -char srvIP1[20]; -char srvIP2[20]; -char srvIP3[20]; - -int firstTime = true; - -while (dc->nonstop) - { - if (firstTime) - { - sprintf(srvIP1, "10.1.%d.%d", random() % 14 + 153, random() % 11 + 35); - - sprintf(srvIP2, "%d.%d.%d.%d", - random() % 20 + 81, - random() % 28 + 153, - random() % 28 + 37, - random() % 28 + 13); - - sprintf(srvIP3, "%d.%d.%d.%d", - random() % 20 + 81, - random() % 28 + 153, - random() % 28 + 37, - random() % 28 + 13); - - printfd(__FILE__, "firstTime=false\n"); - firstTime = false; - } - - int rnd = random() % 400; - if (rnd < 5) - { - sprintf(srvIP1, "10.1.%d.%d", random() % 14 + 153, random() % 11 + 35); - printfd(__FILE__, "srvIP1=%s\n", srvIP1); - } - if (rnd == 9) - { - sprintf(srvIP2, "%d.%d.%d.%d", - random() % 20 + 81, - random() % 28 + 153, - random() % 28 + 37, - random() % 28 + 13); - printfd(__FILE__, "srvIP2=%s\n", srvIP2); - } - if (rnd == 5) - { - sprintf(srvIP2, "%d.%d.%d.%d", - random() % 20 + 81, - random() % 28 + 153, - random() % 28 + 37, - random() % 28 + 13); - printfd(__FILE__, "srvIP3=%s\n", srvIP3); - } - - for (int i = 2; i < 52; i++) - { - sprintf(cliIP, "192.168.1.%d", i); - for (int dp = 0; dp < 1; dp++) - { - usize = 50 + random() % 100; - dsize = 1000 + random() % 400; - - rp = MakeTCPPacket(srvIP1, cliIP, 80, 10000 + i + dp, dsize); - dc->traffCnt->Process(rp); - - rp = MakeTCPPacket(srvIP2, cliIP, 80, 10000 + i + dp, dsize); - dc->traffCnt->Process(rp); - - rp = MakeTCPPacket(srvIP3, cliIP, 80, 10000 + i + dp, dsize); - dc->traffCnt->Process(rp); - - - rp = MakeTCPPacket(cliIP, srvIP1, 10000 + i + dp, 80, usize); - dc->traffCnt->Process(rp); - - rp = MakeTCPPacket(cliIP, srvIP2, 10000 + i + dp, 80, usize); - dc->traffCnt->Process(rp); - - rp = MakeTCPPacket(cliIP, srvIP3, 10000 + i + dp, 80, usize); - dc->traffCnt->Process(rp); - } - } - - usleep(300000); - /*t = stgTime; - - if (min != localtime(&t)->tm_min) - { - min = localtime(&t)->tm_min; - WriteStat(u, d); - u = d = 0; - }*/ - - a++; - - } - -dc->isRunning = false; -return NULL; -} -//----------------------------------------------------------------------------- -uint16_t DEBUG_CAP::GetStartPosition() const -{ -return 40; -} -//----------------------------------------------------------------------------- -uint16_t DEBUG_CAP::GetStopPosition() const -{ -return 40; -} -//----------------------------------------------------------------------------- -RAW_PACKET MakeTCPPacket(const char * src, - const char * dst, - uint16_t sport, - uint16_t dport, - uint16_t len) -{ -struct packet pkt; -if (pkt_init(&pkt, 0, 100)) - { - printfd(__FILE__, "pkt_init error!\n"); - } - -in_addr_t sip = inet_addr(src); -in_addr_t dip = inet_addr(dst); - -pkt_ip_header(&pkt, - 5, //header len - 4, - 0, - len, //total len - 0, - 0, - 64, //ttl - 6, //TCP - 0, - *(uint32_t*)&sip, - *(uint32_t*)&dip); - -pkt_move_actptr(&pkt, 20); - -pkt_tcp_header(&pkt, - sport, - dport, - 1, // seq, - 1, // ackseq, - 5, // headerlen, - 0, // reserved, - 0, // flags, - 0, // window, - 0, // checksum, - 0); // urgent - -RAW_PACKET rp; -memcpy(&rp, pkt.pkt, sizeof(rp)); - -if (pkt_free(&pkt)) - { - printfd(__FILE__, "pkt_free error!\n"); - } -rp.dataLen = -1; -return rp; -} -//----------------------------------------------------------------------------- - -