From 5780adb586042f02b10546f17d3cf1bb72d1e9d5 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 15 Nov 2002 09:12:47 +0000 Subject: Patch from Bastian Blank: hi erik the following patch fixes the handling of iproute add dev . the code got lost while removing things. bastian --- networking/libiproute/iproute.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c index e38abcd..8b6e7ee 100644 --- a/networking/libiproute/iproute.c +++ b/networking/libiproute/iproute.c @@ -234,9 +234,6 @@ int iproute_modify(int cmd, unsigned flags, int argc, char **argv) char *d = NULL; int gw_ok = 0; int dst_ok = 0; - //int nhs_ok = 0; - //int scope_ok = 0; - //int table_ok = 0; int proto_ok = 0; int type_ok = 0; @@ -325,6 +322,20 @@ int iproute_modify(int cmd, unsigned flags, int argc, char **argv) if (rtnl_open(&rth, 0) < 0) exit(1); + if (d) { + int idx; + + ll_init_map(&rth); + + if (d) { + if ((idx = ll_name_to_index(d)) == 0) { + fprintf(stderr, "Cannot find device \"%s\"\n", d); + return -1; + } + addattr32(&req.n, sizeof(req), RTA_OIF, idx); + } + } + if (mxrta->rta_len > RTA_LENGTH(0)) { if (mxlock) rta_addattr32(mxrta, sizeof(mxbuf), RTAX_LOCK, mxlock); -- cgit v1.1