ip tuntap: Add checking if tun/tap mode was set by default

This checking was performed only when adding interface but
it is needed also when deleting, otherwise the error will be:

    ioctl(TUNSETIFF): Invalid argument

Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
This commit is contained in:
vadimk 2014-09-16 23:54:34 +03:00 committed by Stephen Hemminger
parent 6ad5399c3a
commit f1a505aca8
1 changed files with 5 additions and 4 deletions

View File

@ -186,6 +186,11 @@ static int parse_args(int argc, char **argv, struct ifreq *ifr, uid_t *uid, gid_
argc--; argv++;
}
if (!(ifr->ifr_flags & TUN_TYPE_MASK)) {
fprintf(stderr, "You failed to specify a tunnel mode\n");
return -1;
}
return 0;
}
@ -199,10 +204,6 @@ static int do_add(int argc, char **argv)
if (parse_args(argc, argv, &ifr, &uid, &gid) < 0)
return -1;
if (!(ifr.ifr_flags & TUN_TYPE_MASK)) {
fprintf(stderr, "You failed to specify a tunnel mode\n");
return -1;
}
return tap_add_ioctl(&ifr, uid, gid);
}