shell/gnrc_icmpv6_echo: replace incorrect use of gnrc_netif_highlander()

We want to check if there *is* only one interface, not if there *can*
be no more than one interface here.
This commit is contained in:
Benjamin Valentin
2020-03-27 15:07:38 +01:00
parent 15dc9fe0de
commit e1ce24abec
+14 -2
View File
@@ -165,6 +165,16 @@ static void _usage(char *cmdname)
"of any responses, otherwise wait for two RTTs");
}
/* get the next netif, returns true if there are more */
static bool _netif_get(gnrc_netif_t **current_netif)
{
gnrc_netif_t *netif = *current_netif;
netif = gnrc_netif_iter(netif);
*current_netif = netif;
return !gnrc_netif_highlander() && gnrc_netif_iter(netif);
}
static int _configure(int argc, char **argv, _ping_data_t *data)
{
char *cmdname = argv[0];
@@ -187,8 +197,10 @@ static int _configure(int argc, char **argv, _ping_data_t *data)
if (iface) {
data->netif = gnrc_netif_get_by_pid(atoi(iface));
}
else if (gnrc_netif_highlander()) {
data->netif = gnrc_netif_iter(NULL);
/* preliminary select the first interface */
else if (_netif_get(&data->netif)) {
/* don't take it if there is more than one interface */
data->netif = NULL;
}
if (ipv6_addr_from_str(&data->host, data->hostname) == NULL) {