]> git.stg.codes - stg.git/commitdiff
WaitPackets moved to common.lib
authorMaxim Mamontov <faust.madf@gmail.com>
Wed, 31 Aug 2011 09:10:24 +0000 (12:10 +0300)
committerMaxim Mamontov <faust.madf@gmail.com>
Wed, 31 Aug 2011 09:10:24 +0000 (12:10 +0300)
14 files changed:
projects/rscriptd/listener.cpp
projects/rscriptd/listener.h
projects/stargazer/plugins/authorization/inetaccess/inetaccess.cpp
projects/stargazer/plugins/authorization/inetaccess/inetaccess.h
projects/stargazer/plugins/capture/cap_nf/cap_nf.cpp
projects/stargazer/plugins/capture/cap_nf/cap_nf.h
projects/stargazer/plugins/capture/ether_linux/ether_cap.cpp
projects/stargazer/plugins/capture/ether_linux/ether_cap.h
projects/stargazer/plugins/other/radius/radius.cpp
projects/stargazer/plugins/other/radius/radius.h
projects/stargazer/plugins/other/smux/utils.cpp
projects/stargazer/plugins/other/smux/utils.h
stglibs/common.lib/common.cpp
stglibs/common.lib/common.h

index 39e590b6980567d20a00d0c0de263e3266a66f99..9e03988c2f116cd9e8283b372c49afe3f9a6beb1 100644 (file)
@@ -456,34 +456,6 @@ if (strncmp((char *)header.protoVer, "02", RS_PROTO_VER_LEN))
 return false;
 }
 //-----------------------------------------------------------------------------
 return false;
 }
 //-----------------------------------------------------------------------------
-bool LISTENER::WaitPackets(int sd) const
-{
-fd_set rfds;
-FD_ZERO(&rfds);
-FD_SET(sd, &rfds);
-
-struct timeval tv;
-tv.tv_sec = 0;
-tv.tv_usec = 500000;
-
-int res = select(sd + 1, &rfds, NULL, NULL, &tv);
-if (res == -1) // Error
-    {
-    if (errno != EINTR)
-        {
-        printfd(__FILE__, "Error on select: '%s'\n", strerror(errno));
-        }
-    return false;
-    }
-
-if (res == 0) // Timeout
-    {
-    return false;
-    }
-
-return true;
-}
-//-----------------------------------------------------------------------------
 inline
 void InitEncrypt(BLOWFISH_CTX * ctx, const std::string & password)
 {
 inline
 void InitEncrypt(BLOWFISH_CTX * ctx, const std::string & password)
 {
index 1c88149a2016ef4b6de3c82be22a0ba98b60aff1..f4d2856e7c7b0cdd35d3821d3278b396fd49b5c0 100644 (file)
@@ -94,7 +94,6 @@ private:
     // Networking stuff
     bool                PrepareNet();
     bool                FinalizeNet();
     // Networking stuff
     bool                PrepareNet();
     bool                FinalizeNet();
-    bool                WaitPackets(int sd) const;
     bool                RecvPacket();
     // Parsing stuff
     bool                CheckHeader(const RS_PACKET_HEADER & header) const;
     bool                RecvPacket();
     // Parsing stuff
     bool                CheckHeader(const RS_PACKET_HEADER & header) const;
index 58d9259f68f124a433b00ec44ff4e6ce54991287..d74c42ae167815e6450a845bb1ae7b32822b615e 100644 (file)
@@ -1764,34 +1764,6 @@ ip2user.erase(it);
 return ret;
 }
 //-----------------------------------------------------------------------------
 return ret;
 }
 //-----------------------------------------------------------------------------
-bool AUTH_IA::WaitPackets(int sd) const
-{
-fd_set rfds;
-FD_ZERO(&rfds);
-FD_SET(sd, &rfds);
-
-struct timeval tv;
-tv.tv_sec = 0;
-tv.tv_usec = 500000;
-
-int res = select(sd + 1, &rfds, NULL, NULL, &tv);
-if (res == -1) // Error
-    {
-    if (errno != EINTR)
-        {
-        printfd(__FILE__, "Error on select: '%s'\n", strerror(errno));
-        }
-    return false;
-    }
-
-if (res == 0) // Timeout
-    {
-    return false;
-    }
-
-return true;
-}
-//-----------------------------------------------------------------------------
 inline
 void InitEncrypt(BLOWFISH_CTX * ctx, const string & password)
 {
 inline
 void InitEncrypt(BLOWFISH_CTX * ctx, const string & password)
 {
index a648ec04db0d3758994f56cc391252c44f5f6741..ab0c20ee89d37d154c08576a35eaee826b483d3a 100644 (file)
@@ -283,8 +283,6 @@ private:
     int                 RealSendMessage7(const STG_MSG & msg, uint32_t ip, IA_USER & user);
     int                 RealSendMessage8(const STG_MSG & msg, uint32_t ip, IA_USER & user);
 
     int                 RealSendMessage7(const STG_MSG & msg, uint32_t ip, IA_USER & user);
     int                 RealSendMessage8(const STG_MSG & msg, uint32_t ip, IA_USER & user);
 
-    bool                WaitPackets(int sd) const;
-
     BLOWFISH_CTX        ctxS;        //for loginS
 
     mutable std::string errorStr;
     BLOWFISH_CTX        ctxS;        //for loginS
 
     mutable std::string errorStr;
index 3d6c55b5b7139b2ac037db4f25a65266a1dfaa01..a572e8a17af9efc02ab86c8c28e11a79a20302ea 100644 (file)
@@ -248,7 +248,7 @@ socklen_t slen;
 cap->stoppedUDP = false;
 while (cap->runningUDP)
     {
 cap->stoppedUDP = false;
 while (cap->runningUDP)
     {
-    if (!cap->WaitPackets(cap->sockUDP))
+    if (!WaitPackets(cap->sockUDP))
         {
         continue;
         }
         {
         continue;
         }
@@ -291,7 +291,7 @@ socklen_t slen;
 cap->stoppedTCP = false;
 while (cap->runningTCP)
     {
 cap->stoppedTCP = false;
 while (cap->runningTCP)
     {
-    if (!cap->WaitPackets(cap->sockTCP))
+    if (!WaitPackets(cap->sockTCP))
         {
         continue;
         }
         {
         continue;
         }
@@ -312,7 +312,7 @@ while (cap->runningTCP)
         continue;
         }
 
         continue;
         }
 
-    if (!cap->WaitPackets(sd))
+    if (!WaitPackets(sd))
         {
         close(sd);
         continue;
         {
         close(sd);
         continue;
@@ -385,31 +385,3 @@ for (int i = 0; i < packets; ++i)
     traffCnt->Process(ip);
     }
 }
     traffCnt->Process(ip);
     }
 }
-
-bool NF_CAP::WaitPackets(int sd) const
-{
-fd_set rfds;
-FD_ZERO(&rfds);
-FD_SET(sd, &rfds);
-
-struct timeval tv;
-tv.tv_sec = 0;
-tv.tv_usec = 500000;
-
-int res = select(sd + 1, &rfds, NULL, NULL, &tv);
-if (res == -1) // Error
-    {
-    if (errno != EINTR)
-        {
-        printfd(__FILE__, "Error on select: '%s'\n", strerror(errno));
-        }
-    return false;
-    }
-
-if (res == 0) // Timeout
-    {
-    return false;
-    }
-
-return true;
-}
index ccdd670843e1bc97d12f095c2e5b99f68b56625b..3b5313530bc9d020e9af674aad0283f9f9812007 100644 (file)
@@ -128,8 +128,6 @@ private:
     bool OpenUDP();
     void CloseTCP() { close(sockTCP); }
     void CloseUDP() { close(sockUDP); }
     bool OpenUDP();
     void CloseTCP() { close(sockTCP); }
     void CloseUDP() { close(sockUDP); }
-
-    bool WaitPackets(int sd) const;
 };
 
 extern "C" PLUGIN * GetPlugin();
 };
 
 extern "C" PLUGIN * GetPlugin();
index bd075feead63b7faf4ebd5b27b27185e96ca60a4..d45b175501dc5ed3d817b3b5990c9ddc10bb7e1f 100644 (file)
@@ -219,31 +219,3 @@ if (-1 == res)
 
 return 0;
 }
 
 return 0;
 }
-//-----------------------------------------------------------------------------
-bool ETHER_CAP::WaitPackets(int sd) const
-{
-fd_set rfds;
-FD_ZERO(&rfds);
-FD_SET(sd, &rfds);
-
-struct timeval tv;
-tv.tv_sec = 0;
-tv.tv_usec = 500000;
-
-int res = select(sd + 1, &rfds, NULL, NULL, &tv);
-if (res == -1) // Error
-    {
-    if (errno != EINTR)
-        {
-        printfd(__FILE__, "Error on select: '%s'\n", strerror(errno));
-        }
-    return false;
-    }
-
-if (res == 0) // Timeout
-    {
-    return false;
-    }
-
-return true;
-}
index c03a6066a6092b0ac48b768f5c76724984d6fb12..994fea8ac167ffc591db5823994c2696cfd64cf6 100644 (file)
@@ -67,7 +67,6 @@ private:
     int                 EthCapOpen();
     int                 EthCapClose();
     int                 EthCapRead(void * buffer, int blen, char ** iface);
     int                 EthCapOpen();
     int                 EthCapClose();
     int                 EthCapRead(void * buffer, int blen, char ** iface);
-    bool                WaitPackets(int sd) const;
 
     mutable std::string errorStr;
 
 
     mutable std::string errorStr;
 
index 1dfff791afe4eb386a19ee0d34f19aebbdb17611..8ea93c9d09954dcea68059b5a3065da0291f2d56 100644 (file)
@@ -295,7 +295,7 @@ rad->isRunning = true;
 
 while (rad->nonstop)
     {
 
 while (rad->nonstop)
     {
-    if (!rad->WaitPackets(rad->sock))
+    if (!WaitPackets(rad->sock))
         {
         continue;
         }
         {
         continue;
         }
@@ -588,34 +588,6 @@ bool RADIUS::IsAllowedService(const std::string & svc) const
 return CanAuthService(svc) || CanAcctService(svc);
 }
 //-----------------------------------------------------------------------------
 return CanAuthService(svc) || CanAcctService(svc);
 }
 //-----------------------------------------------------------------------------
-bool RADIUS::WaitPackets(int sd) const
-{
-fd_set rfds;
-FD_ZERO(&rfds);
-FD_SET(sd, &rfds);
-
-struct timeval tv;
-tv.tv_sec = 0;
-tv.tv_usec = 500000;
-
-int res = select(sd + 1, &rfds, NULL, NULL, &tv);
-if (res == -1) // Error
-    {
-    if (errno != EINTR)
-        {
-        printfd(__FILE__, "Error on select: '%s'\n", strerror(errno));
-        }
-    return false;
-    }
-
-if (res == 0) // Timeout
-    {
-    return false;
-    }
-
-return true;
-}
-//-----------------------------------------------------------------------------
 inline
 void InitEncrypt(BLOWFISH_CTX * ctx, const std::string & password)
 {
 inline
 void InitEncrypt(BLOWFISH_CTX * ctx, const std::string & password)
 {
index 2a60f1172591d2ba04620dda09f05461a3343e33..434849076bd3c099f8c0cc8f3c6a55fe10777b61 100644 (file)
@@ -125,8 +125,6 @@ private:
     bool                CanAcctService(const std::string & svc) const;
     bool                IsAllowedService(const std::string & svc) const;
 
     bool                CanAcctService(const std::string & svc) const;
     bool                IsAllowedService(const std::string & svc) const;
 
-    bool                WaitPackets(int sd) const;
-
     void                PrintServices(const std::list<std::string> & svcs);
 
     struct Printer : public unary_function<std::string, void>
     void                PrintServices(const std::list<std::string> & svcs);
 
     struct Printer : public unary_function<std::string, void>
index 3a3628f58c611b0fc409de3399f63fcf91ff3222..a67314cb98757b342bfee8099246613a6dd7a5bd 100644 (file)
@@ -1,4 +1,3 @@
-#include <sys/select.h>
 #include <unistd.h> // write
 
 #include <cstring> // memset
 #include <unistd.h> // write
 
 #include <cstring> // memset
 #include "pen.h"
 #include "utils.h"
 
 #include "pen.h"
 #include "utils.h"
 
-bool WaitPackets(int sd)
-{
-fd_set rfds;
-FD_ZERO(&rfds);
-FD_SET(sd, &rfds);
-
-struct timeval tv;
-tv.tv_sec = 0;
-tv.tv_usec = 500000;
-
-int res = select(sd + 1, &rfds, NULL, NULL, &tv);
-if (res == -1) // Error
-    {
-    if (errno != EINTR)
-        printfd(__FILE__, "Error on select: '%s'\n", strerror(errno));
-    return false;
-    }
-
-if (res == 0) // Timeout
-    return false;
-
-return true;
-}
-
 bool String2OI(const std::string & str, OBJECT_IDENTIFIER_t * oi)
 {
 size_t left = 0, pos = 0, arcPos = 0;
 bool String2OI(const std::string & str, OBJECT_IDENTIFIER_t * oi)
 {
 size_t left = 0, pos = 0, arcPos = 0;
@@ -117,6 +92,8 @@ OCTET_STRING_fromString(&msg.choice.simple.password, "");
 char buffer[1024];
 error = der_encode_to_buffer(&asn_DEF_OpenPDU, &msg, buffer, sizeof(buffer));
 
 char buffer[1024];
 error = der_encode_to_buffer(&asn_DEF_OpenPDU, &msg, buffer, sizeof(buffer));
 
+ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_OpenPDU, &msg);
+
 if (error.encoded == -1)
     {
     printfd(__FILE__, "Could not encode OpenPDU (at %s)\n",
 if (error.encoded == -1)
     {
     printfd(__FILE__, "Could not encode OpenPDU (at %s)\n",
@@ -144,6 +121,8 @@ char buffer[1024];
 asn_enc_rval_t error;
 error = der_encode_to_buffer(&asn_DEF_ClosePDU, &msg, buffer, sizeof(buffer));
 
 asn_enc_rval_t error;
 error = der_encode_to_buffer(&asn_DEF_ClosePDU, &msg, buffer, sizeof(buffer));
 
+ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_ClosePDU, &msg);
+
 if (error.encoded == -1)
     {
     printfd(__FILE__, "Could not encode ClosePDU (at %s)\n",
 if (error.encoded == -1)
     {
     printfd(__FILE__, "Could not encode ClosePDU (at %s)\n",
@@ -176,6 +155,8 @@ OBJECT_IDENTIFIER_set_arcs(&msg.subtree,
 char buffer[1024];
 error = der_encode_to_buffer(&asn_DEF_RReqPDU, &msg, buffer, sizeof(buffer));
 
 char buffer[1024];
 error = der_encode_to_buffer(&asn_DEF_RReqPDU, &msg, buffer, sizeof(buffer));
 
+ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RReqPDU, &msg);
+
 if (error.encoded == -1)
     {
     printfd(__FILE__, "Could not encode RReqPDU (at %s)\n",
 if (error.encoded == -1)
     {
     printfd(__FILE__, "Could not encode RReqPDU (at %s)\n",
@@ -203,6 +184,7 @@ if (length < 1)
     return NULL;
 asn_dec_rval_t error;
 error = ber_decode(0, &asn_DEF_SMUX_PDUs, (void **)&pdus, buffer, length);
     return NULL;
 asn_dec_rval_t error;
 error = ber_decode(0, &asn_DEF_SMUX_PDUs, (void **)&pdus, buffer, length);
+
 if(error.code != RC_OK)
     {
     printfd(__FILE__, "Failed to decode PDUs at byte %ld\n",
 if(error.code != RC_OK)
     {
     printfd(__FILE__, "Failed to decode PDUs at byte %ld\n",
@@ -253,6 +235,8 @@ char buffer[1024];
 error = der_encode_to_buffer(&asn_DEF_GetResponse_PDU, &msg, buffer,
                              sizeof(buffer));
 
 error = der_encode_to_buffer(&asn_DEF_GetResponse_PDU, &msg, buffer,
                              sizeof(buffer));
 
+ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_GetResponse_PDU, &msg);
+
 if (error.encoded == -1)
     {
     printfd(__FILE__, "Could not encode GetResponsePDU for error (at %s)\n",
 if (error.encoded == -1)
     {
     printfd(__FILE__, "Could not encode GetResponsePDU for error (at %s)\n",
index 0814bfbad72479ce223e394e6f456f14aabf4807..8007fee6ec7aa9edc91a830808a71befdc25ef83 100644 (file)
@@ -7,7 +7,6 @@
 #include "stg/SMUX-PDUs.h"
 #include "stg/GetResponse-PDU.h"
 
 #include "stg/SMUX-PDUs.h"
 #include "stg/GetResponse-PDU.h"
 
-bool WaitPackets(int sd);
 bool String2OI(const std::string & str, OBJECT_IDENTIFIER_t * oi);
 std::string OI2String(OBJECT_IDENTIFIER_t * oi);
 bool SendOpenPDU(int fd);
 bool String2OI(const std::string & str, OBJECT_IDENTIFIER_t * oi);
 std::string OI2String(OBJECT_IDENTIFIER_t * oi);
 bool SendOpenPDU(int fd);
index b9fb3bf9da855be24a6268b5e016d57e79d497e1..3361adb31af12f7dd632ace0d0b68c390a2da5f9 100644 (file)
@@ -64,6 +64,7 @@
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#include <sys/select.h>
 #endif
 
 #include <iconv.h>
 #endif
 
 #include <iconv.h>
@@ -1032,3 +1033,27 @@ if (*val < min || *val > max)
 
 return 0;
 }
 
 return 0;
 }
+
+bool WaitPackets(int sd)
+{
+fd_set rfds;
+FD_ZERO(&rfds);
+FD_SET(sd, &rfds);
+
+struct timeval tv;
+tv.tv_sec = 0;
+tv.tv_usec = 500000;
+
+int res = select(sd + 1, &rfds, NULL, NULL, &tv);
+if (res == -1) // Error
+    {
+    if (errno != EINTR)
+        printfd(__FILE__, "Error on select: '%s'\n", strerror(errno));
+    return false;
+    }
+
+if (res == 0) // Timeout
+    return false;
+
+return true;
+}
index 19a8773e3d93b031183f989f03a4012d9b66930e..ac0911472778ea25e543acd883341a4f2437b7e7 100644 (file)
@@ -105,6 +105,8 @@ int ParseUnsignedInRange(const std::string & str, unsigned min,
                          unsigned max, unsigned * val);
 int ParseYesNo(const std::string & str, bool * val);
 
                          unsigned max, unsigned * val);
 int ParseYesNo(const std::string & str, bool * val);
 
+bool WaitPackets(int sd);
+
 //-----------------------------------------------------------------------------
 template <typename varT>
 int str2x(const std::string & str, varT & x)
 //-----------------------------------------------------------------------------
 template <typename varT>
 int str2x(const std::string & str, varT & x)