X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=config.cpp;h=f474f8c495f2cd07c624bd87a9e7a0f4d58f3f6c;hp=57bf10a7f0ddc038f892a4e08b62706341d98842;hb=0eac9253f23925734e256c63081e157c68c70704;hpb=b08dc2a81825a298a03f2dee2ae7dd7045e72739;ds=sidebyside diff --git a/config.cpp b/config.cpp index 57bf10a..f474f8c 100644 --- a/config.cpp +++ b/config.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -298,6 +299,18 @@ bool parse_udpstream(const ConfigLine &line, Config *config) udpstream.ttl = atoi(ttl_it->second.c_str()); } + // Parse the multicast interface index. + map::const_iterator multicast_iface_it = line.parameters.find("multicast_output_interface"); + if (multicast_iface_it == line.parameters.end()) { + udpstream.multicast_iface_index = -1; + } else { + udpstream.multicast_iface_index = if_nametoindex(multicast_iface_it->second.c_str()); + if (udpstream.multicast_iface_index == 0) { + log(ERROR, "Interface '%s' does not exist", multicast_iface_it->second.c_str()); + return false; + } + } + config->udpstreams.push_back(udpstream); return true; }