}
bool CPretestOnePortInfo::get_mac(COneIPInfo *ip, uint8_t *mac) {
+ MacAddress defaultmac;
+
for (std::vector<COneIPInfo *>::iterator it = m_dst_info.begin(); it != m_dst_info.end(); ++it) {
if (ip->ip_ver() != (*it)->ip_ver())
continue;
}
(*it)->get_mac(mac);
- return true;
+ if (! memcmp(mac, defaultmac.GetConstBuffer(), ETHER_ADDR_LEN)) {
+ return false;
+ } else {
+ return true;
+ }
}
return false;
EthernetHeader *m_ether = (EthernetHeader *)p;
vlan_tag = 0;
- if ((pkt_size < 60) ||
+ if ((pkt_size < sizeof(EthernetHeader)) ||
((m_ether->getNextProtocol() != EthernetHeader::Protocol::ARP)
&& (m_ether->getNextProtocol() != EthernetHeader::Protocol::VLAN)))
return false;