]> git.stg.codes - stg.git/blobdiff - projects/stargazer/traffcounter.cpp
У сервер rscriptd додано необхідний заголовочний файл
[stg.git] / projects / stargazer / traffcounter.cpp
index 5401416773d7a76b95781c7f77f04294726a4110..72c1295bbe1de231287eaed6d64734af6fa02c86 100644 (file)
@@ -287,7 +287,7 @@ int oldIp2packetsSize = ip2packets.size();
 pp_iter pi;
 pi = packets.begin();
 std::map<RAW_PACKET, PACKET_EXTRA_DATA> newPackets;
 pp_iter pi;
 pi = packets.begin();
 std::map<RAW_PACKET, PACKET_EXTRA_DATA> newPackets;
-std::multimap<uint32_t, pp_iter> newIP2Packets;
+ip2packets.erase(ip2packets.begin(), ip2packets.end());
 while (pi != packets.end())
     {
     //Flushing
 while (pi != packets.end())
     {
     //Flushing
@@ -388,14 +388,13 @@ while (pi != packets.end())
         pair<pp_iter, bool> res = newPackets.insert(*pi);
         if (res.second)
             {
         pair<pp_iter, bool> res = newPackets.insert(*pi);
         if (res.second)
             {
-            newIP2Packets.insert(make_pair(pi->first.GetSrcIP(), res.first));
-            newIP2Packets.insert(make_pair(pi->first.GetDstIP(), res.first));
+            ip2packets.insert(make_pair(pi->first.GetSrcIP(), res.first));
+            ip2packets.insert(make_pair(pi->first.GetDstIP(), res.first));
             }
         }
     ++pi;
     }
 swap(packets, newPackets);
             }
         }
     ++pi;
     }
 swap(packets, newPackets);
-swap(ip2packets, newIP2Packets);
 printfd(__FILE__, "FlushAndRemove() packets: %d(rem %d) ip2packets: %d(rem %d)\n",
         packets.size(),
         oldPacketsSize - packets.size(),
 printfd(__FILE__, "FlushAndRemove() packets: %d(rem %d) ip2packets: %d(rem %d)\n",
         packets.size(),
         oldPacketsSize - packets.size(),
@@ -410,7 +409,7 @@ printfd(__FILE__, "AddUser: %s\n", user->GetLogin().c_str());
 uint32_t uip = user->GetCurrIP();
 pair<ip2p_iter, ip2p_iter> pi;
 
 uint32_t uip = user->GetCurrIP();
 pair<ip2p_iter, ip2p_iter> pi;
 
-STG_LOCKER(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 // Find all packets with IP belongs to this user
 pi = ip2packets.equal_range(uip);
 
 // Find all packets with IP belongs to this user
 pi = ip2packets.equal_range(uip);
 
@@ -447,7 +446,7 @@ void TRAFFCOUNTER::DelUser(uint32_t uip)
 printfd(__FILE__, "DelUser: %s \n", inet_ntostring(uip).c_str());
 pair<ip2p_iter, ip2p_iter> pi;
 
 printfd(__FILE__, "DelUser: %s \n", inet_ntostring(uip).c_str());
 pair<ip2p_iter, ip2p_iter> pi;
 
-STG_LOCKER(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 pi = ip2packets.equal_range(uip);
 
 while (pi.first != pi.second)
 pi = ip2packets.equal_range(uip);
 
 while (pi.first != pi.second)