summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2005-10-23 21:38:46 +0000
committerHenri Herscher <henri@oreka.org>2005-10-23 21:38:46 +0000
commit190eb2a763475f9d6a30c1b6382fe98f4ec57ec5 (patch)
tree9eb381460e211a3f02456a80e716d40c4210e05d
parent50ec6a4bf5926933f12addffada8e79a9fc187bb (diff)
Default to the last OS returned network device when config file does not specify or specifies invalid network device
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@9 09dcff7a-b715-0410-9601-b79a96267cd0
-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"));
- //}
}
}
}