diff options
author | Henri Herscher <henri@oreka.org> | 2005-10-23 21:38:46 +0000 |
---|---|---|
committer | Henri Herscher <henri@oreka.org> | 2005-10-23 21:38:46 +0000 |
commit | 190eb2a763475f9d6a30c1b6382fe98f4ec57ec5 (patch) | |
tree | 9eb381460e211a3f02456a80e716d40c4210e05d /orkaudio/audiocaptureplugins/voip/VoIp.cpp | |
parent | 50ec6a4bf5926933f12addffada8e79a9fc187bb (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
Diffstat (limited to 'orkaudio/audiocaptureplugins/voip/VoIp.cpp')
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIp.cpp | 29 |
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")); - //} } } } |