|
|
|
@ -164,11 +164,15 @@ static struct intf_config *if_addr_parse(char *s) {
|
|
|
|
/* address */
|
|
|
|
/* address */
|
|
|
|
if (sockaddr_parse_any(&addr, s))
|
|
|
|
if (sockaddr_parse_any(&addr, s))
|
|
|
|
return NULL;
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
if (is_addr_unspecified(&addr))
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
|
|
|
|
adv = addr;
|
|
|
|
adv = addr;
|
|
|
|
if (c) {
|
|
|
|
if (c) {
|
|
|
|
if (sockaddr_parse_any(&adv, c))
|
|
|
|
if (sockaddr_parse_any(&adv, c))
|
|
|
|
return NULL;
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
if (is_addr_unspecified(&adv))
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ifa = g_slice_alloc0(sizeof(*ifa));
|
|
|
|
ifa = g_slice_alloc0(sizeof(*ifa));
|
|
|
|
@ -317,6 +321,8 @@ static void options(int *argc, char ***argv) {
|
|
|
|
die("Invalid interface specification: %s", *iter);
|
|
|
|
die("Invalid interface specification: %s", *iter);
|
|
|
|
g_queue_push_tail(&rtpe_config.interfaces, ifa);
|
|
|
|
g_queue_push_tail(&rtpe_config.interfaces, ifa);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!&rtpe_config.interfaces)
|
|
|
|
|
|
|
|
die("Cannot start without any configured interfaces");
|
|
|
|
|
|
|
|
|
|
|
|
if (ks_a) {
|
|
|
|
if (ks_a) {
|
|
|
|
for (iter = ks_a; *iter; iter++) {
|
|
|
|
for (iter = ks_a; *iter; iter++) {
|
|
|
|
|