diff options
author | Henri Herscher <henri@oreka.org> | 2006-05-18 19:11:16 +0000 |
---|---|---|
committer | Henri Herscher <henri@oreka.org> | 2006-05-18 19:11:16 +0000 |
commit | 1f60c821a33203576db8ba0e5ec8660881c741cf (patch) | |
tree | fed8dca2fbfbbc44643143abe2b5c61be3d40705 /orkaudio/audiocaptureplugins/voip/VoIp.cpp | |
parent | d496872b9a324e80d20253d1699a544e0e842a08 (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
Diffstat (limited to 'orkaudio/audiocaptureplugins/voip/VoIp.cpp')
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIp.cpp | 12 |
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 |