support interface names in config as well as raw ips

This commit is contained in:
Martin Michelsen
2020-02-20 10:09:44 -08:00
parent cbfffa9795
commit e96e82527a
5 changed files with 33 additions and 19 deletions
+3 -3
View File
@@ -44,7 +44,7 @@ uint32_t resolve_address(const char* address) {
return bswap32(res_sin->sin_addr.s_addr);
}
set<uint32_t> get_local_address_list() {
map<string, uint32_t> get_local_addresses() {
struct ifaddrs* ifa_raw;
if (getifaddrs(&ifa_raw)) {
auto s = string_for_error(errno);
@@ -53,7 +53,7 @@ set<uint32_t> get_local_address_list() {
unique_ptr<struct ifaddrs, void(*)(struct ifaddrs*)> ifa(ifa_raw, freeifaddrs);
set<uint32_t> ret;
map<string, uint32_t> ret;
for (struct ifaddrs* i = ifa.get(); i; i = i->ifa_next) {
if (!i->ifa_addr) {
continue;
@@ -64,7 +64,7 @@ set<uint32_t> get_local_address_list() {
continue;
}
ret.emplace(bswap32(sin->sin_addr.s_addr));
ret.emplace(i->ifa_name, bswap32(sin->sin_addr.s_addr));
}
return ret;