summaryrefslogtreecommitdiff
path: root/orkaudio/audiocaptureplugins/voip/VoIp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'orkaudio/audiocaptureplugins/voip/VoIp.cpp')
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIp.cpp29
1 files changed, 15 insertions, 14 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/VoIp.cpp b/orkaudio/audiocaptureplugins/voip/VoIp.cpp
index a5325b8..cb8fa9a 100644
--- a/orkaudio/audiocaptureplugins/voip/VoIp.cpp
+++ b/orkaudio/audiocaptureplugins/voip/VoIp.cpp
@@ -367,6 +367,7 @@ void VoIp::Initialize()
*/
pcap_if_t* devices = NULL;
+ pcap_if_t* lastDevice = NULL;
pcap_if_t* deviceToSniff = NULL;
lastHooveringTime = time(NULL);
@@ -388,12 +389,24 @@ void VoIp::Initialize()
{
deviceToSniff = device;
}
+ if(device)
+ {
+ lastDevice = device;
+ }
}
if (!deviceToSniff)
{
- LOG4CXX_ERROR(s_log, CStdString("pcap could not find wanted device: ") + DLLCONFIG.m_device);
+ if(!DLLCONFIG.m_device.IsEmpty())
+ {
+ LOG4CXX_ERROR(s_log, CStdString("pcap could not find wanted device: ") + DLLCONFIG.m_device + " please check your config file");
+ }
+ if(lastDevice)
+ {
+ LOG4CXX_INFO(s_log, CStdString("Defaulting to device: ") + lastDevice->name);
+ deviceToSniff = lastDevice;
+ }
}
- else
+ if (deviceToSniff)
{
#define PROMISCUOUS 1
if ((m_pcapHandle = pcap_open_live(deviceToSniff->name, 1500, PROMISCUOUS,
@@ -404,18 +417,6 @@ void VoIp::Initialize()
else
{
LOG4CXX_INFO(s_log, CStdString("successfully opened device: ") + deviceToSniff->name);
-
- //unsigned int netMask = 0xffffff;
- //if(deviceToSniff->addresses != NULL)
- //{
- // netMask=((struct sockaddr_in *)(device->addresses->netmask))->sin_addr.s_addr;
- //}
-
- //struct bpf_program program;
- //if (pcap_compile(m_pcapHandle, &program, "ip proto icmp", 1, 0xffffffff) < 0)
- //{
- // LOG4CXX_ERROR(s_log, CStdString("unable to compile pcap filter"));
- //}
}
}
}