1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-25 03:31:36 +01:00

Added Utils::interface_id.

This commit is contained in:
Matias Fontanini
2011-08-15 00:10:02 -03:00
parent 89b04a1238
commit c803e25db4
2 changed files with 30 additions and 0 deletions

View File

@@ -57,6 +57,21 @@ struct IPv4Collector {
}
};
struct InterfaceIDCollector {
uint32_t id;
bool found;
const char *iface;
InterfaceIDCollector(const char *interface) : id(0), found(false), iface(interface) { }
void operator() (struct ifaddrs *addr) {
if(!found && !strcmp(addr->ifa_name, iface)) {
id = addr->ifa_flags;
found = true;
}
}
};
struct HWAddressCollector {
uint8_t *result;
bool found;
@@ -173,6 +188,13 @@ bool Tins::Utils::interface_hwaddr(const string &iface, uint8_t *buffer) {
return collector.found;
}
bool Tins::Utils::interface_id(const string &iface, uint32_t &id) {
InterfaceIDCollector collector(iface.c_str());
generic_iface_loop(collector);
id = collector.id;
return collector.found;
}
uint32_t Tins::Utils::crc32(uint8_t* data, uint32_t data_size) {
uint32_t i, crc = 0;
static uint32_t crc_table[] = {