summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-05-18 19:11:16 +0000
committerHenri Herscher <henri@oreka.org>2006-05-18 19:11:16 +0000
commit1f60c821a33203576db8ba0e5ec8660881c741cf (patch)
treefed8dca2fbfbbc44643143abe2b5c61be3d40705
parentd496872b9a324e80d20253d1699a544e0e842a08 (diff)
pcap directory replay now processes pcap files sequentially.
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@236 09dcff7a-b715-0410-9601-b79a96267cd0
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIp.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/VoIp.cpp b/orkaudio/audiocaptureplugins/voip/VoIp.cpp
index dd14af8..103336f 100644
--- a/orkaudio/audiocaptureplugins/voip/VoIp.cpp
+++ b/orkaudio/audiocaptureplugins/voip/VoIp.cpp
@@ -24,6 +24,7 @@
#include "ace/OS_NS_ctype.h"
#include "ace/Thread_Manager.h"
#include "ace/Thread_Mutex.h"
+#include "ace/Thread_Semaphore.h"
#include "AudioCapturePlugin.h"
#include "AudioCapturePluginCommon.h"
#include "Utils.h"
@@ -47,6 +48,7 @@ static LoggerPtr s_sipExtractionLog;
static LoggerPtr s_voipPluginLog;
static time_t s_lastHooveringTime;
static ACE_Thread_Mutex s_mutex;
+static ACE_Thread_Semaphore s_replaySemaphore;
static bool s_liveCapture;
VoIpConfigTopObjectRef g_VoIpConfigTopObjectRef;
@@ -527,6 +529,11 @@ void HandlePacket(u_char *param, const struct pcap_pkthdr *header, const u_char
void SingleDeviceCaptureThreadHandler(pcap_t* pcapHandle)
{
+ if(!s_liveCapture)
+ {
+ // File replay, make sure that only one file is replayed at a time
+ s_replaySemaphore.acquire();
+ }
if(pcapHandle)
{
CStdString log;
@@ -545,6 +552,11 @@ void SingleDeviceCaptureThreadHandler(pcap_t* pcapHandle)
{
LOG4CXX_ERROR(s_packetLog, "Cannot start capturing, pcap handle is null");
}
+ if(!s_liveCapture)
+ {
+ // Pass token to for next file replay
+ s_replaySemaphore.release();
+ }
}
class VoIp