X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/f91192c77eec33a27dea7fcd0d451823ef478529..6aadaaf234bfd8129e8b4ff7f64c3aef8df54659:/projects/stargazer/plugins/capture/cap_nf/cap_nf.cpp diff --git a/projects/stargazer/plugins/capture/cap_nf/cap_nf.cpp b/projects/stargazer/plugins/capture/cap_nf/cap_nf.cpp index 37af9720..8c4fdc2d 100644 --- a/projects/stargazer/plugins/capture/cap_nf/cap_nf.cpp +++ b/projects/stargazer/plugins/capture/cap_nf/cap_nf.cpp @@ -39,13 +39,18 @@ $Author: faust $ #include -#include "stg/common.h" +#include "stg/common.h" #include "stg/raw_ip_packet.h" #include "stg/traffcounter.h" #include "stg/plugin_creator.h" #include "cap_nf.h" +namespace +{ PLUGIN_CREATOR cnc; +} + +extern "C" PLUGIN * GetPlugin(); PLUGIN * GetPlugin() { @@ -118,7 +123,7 @@ if (portU > 0) runningUDP = false; CloseUDP(); errorStr = "Cannot create UDP thread"; - logger("Cannot create UDP thread."); + logger("Cannot create UDP thread."); printfd(__FILE__, "Error: Cannot create UDP thread\n"); return -1; } @@ -134,7 +139,7 @@ if (portT > 0) { runningTCP = false; CloseTCP(); - logger("Cannot create TCP thread."); + logger("Cannot create TCP thread."); errorStr = "Cannot create TCP thread"; printfd(__FILE__, "Error: Cannot create TCP thread\n"); return -1; @@ -163,7 +168,7 @@ if (portU && !stoppedUDP) if (pthread_kill(tidUDP, SIGUSR1)) { errorStr = "Error sending signal to UDP thread"; - logger("Error sending sugnal to UDP thread."); + logger("Error sending sugnal to UDP thread."); printfd(__FILE__, "Error: Error sending signal to UDP thread\n"); return -1; } @@ -188,12 +193,12 @@ if (portT && !stoppedTCP) if (pthread_kill(tidTCP, SIGUSR1)) { errorStr = "Error sending signal to TCP thread"; - logger("Error sending signal to TCP thread."); + logger("Error sending signal to TCP thread."); printfd(__FILE__, "Error: Error sending signal to TCP thread\n"); return -1; } printfd(__FILE__, "TCP thread NOT stopped\n"); - logger("Cannot stop TCP thread."); + logger("Cannot stop TCP thread."); } } return 0; @@ -261,10 +266,6 @@ sigfillset(&signalSet); pthread_sigmask(SIG_BLOCK, &signalSet, NULL); NF_CAP * cap = static_cast(c); -uint8_t buf[BUF_SIZE]; -int res; -struct sockaddr_in sin; -socklen_t slen; cap->stoppedUDP = false; while (cap->runningUDP) { @@ -274,16 +275,18 @@ while (cap->runningUDP) } // Data - slen = sizeof(sin); - res = recvfrom(cap->sockUDP, buf, BUF_SIZE, 0, reinterpret_cast(&sin), &slen); + struct sockaddr_in sin; + socklen_t slen = sizeof(sin); + uint8_t buf[BUF_SIZE]; + ssize_t res = recvfrom(cap->sockUDP, buf, BUF_SIZE, 0, reinterpret_cast(&sin), &slen); if (!cap->runningUDP) break; if (res < 0) - { - cap->logger("recvfrom error: %s", strerror(errno)); - continue; - } + { + cap->logger("recvfrom error: %s", strerror(errno)); + continue; + } if (res == 0) // EOF { @@ -313,11 +316,6 @@ sigfillset(&signalSet); pthread_sigmask(SIG_BLOCK, &signalSet, NULL); NF_CAP * cap = static_cast(c); -uint8_t buf[BUF_SIZE]; -int res; -int sd; -struct sockaddr_in sin; -socklen_t slen; cap->stoppedTCP = false; while (cap->runningTCP) { @@ -327,15 +325,16 @@ while (cap->runningTCP) } // Data - slen = sizeof(sin); - sd = accept(cap->sockTCP, reinterpret_cast(&sin), &slen); + struct sockaddr_in sin; + socklen_t slen = sizeof(sin); + int sd = accept(cap->sockTCP, reinterpret_cast(&sin), &slen); if (!cap->runningTCP) break; if (sd <= 0) { if (sd < 0) - cap->logger("accept error: %s", strerror(errno)); + cap->logger("accept error: %s", strerror(errno)); continue; } @@ -345,7 +344,8 @@ while (cap->runningTCP) continue; } - res = recv(sd, buf, BUF_SIZE, MSG_WAITALL); + uint8_t buf[BUF_SIZE]; + ssize_t res = recv(sd, buf, BUF_SIZE, MSG_WAITALL); if (res < 0) cap->logger("recv error: %s", strerror(errno)); @@ -373,7 +373,7 @@ cap->stoppedTCP = true; return NULL; } -void NF_CAP::ParseBuffer(uint8_t * buf, int size) +void NF_CAP::ParseBuffer(uint8_t * buf, ssize_t size) { RAW_PACKET ip; NF_HEADER * hdr = reinterpret_cast(buf);