From 06240523394dfa9b036a07d48b6bb2aca180d547 Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Fri, 24 Jul 2020 00:15:26 -0600 Subject: [PATCH] ifupdown: handle state translation for ifdown aliases --- cmd/ifupdown.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/cmd/ifupdown.c b/cmd/ifupdown.c index 282b125..0b3c8ad 100644 --- a/cmd/ifupdown.c +++ b/cmd/ifupdown.c @@ -205,15 +205,20 @@ main(int argc, char *argv[]) lifname = p; } - struct lif_dict_entry *entry = lif_dict_find(&collection, lifname); - - if (entry == NULL) + struct lif_interface *iface = lif_state_lookup(&state, &collection, argv[idx]); + if (iface == NULL) { - fprintf(stderr, "%s: unknown interface %s\n", argv0, argv[idx]); - return EXIT_FAILURE; + struct lif_dict_entry *entry = lif_dict_find(&collection, lifname); + + if (entry == NULL) + { + fprintf(stderr, "%s: unknown interface %s\n", argv0, argv[idx]); + return EXIT_FAILURE; + } + + iface = entry->data; } - struct lif_interface *iface = entry->data; if (!change_interface(iface, &state, ifname)) return EXIT_FAILURE; }