fix ash ifconfig updown (#8165)
This commit is contained in:
parent
6eb7fa2f6c
commit
50bb71e458
|
@ -1314,9 +1314,9 @@ int sal_ioctlsocket(int socket, long cmd, void *arg)
|
|||
if (!strcmp(ifr->ifr_ifrn.ifrn_name, netdev->name))
|
||||
{
|
||||
uint16_t flags_tmp = 0;
|
||||
if (sock->netdev->flags & NETDEV_FLAG_UP)
|
||||
if (netdev->flags & NETDEV_FLAG_UP)
|
||||
flags_tmp = flags_tmp | IFF_UP;
|
||||
if (!(sock->netdev->flags & NETDEV_FLAG_ETHARP))
|
||||
if (!(netdev->flags & NETDEV_FLAG_ETHARP))
|
||||
flags_tmp = flags_tmp | IFF_NOARP;
|
||||
ifr->ifr_ifru.ifru_flags = flags_tmp;
|
||||
return 0;
|
||||
|
@ -1327,8 +1327,24 @@ int sal_ioctlsocket(int socket, long cmd, void *arg)
|
|||
|
||||
|
||||
case SIOCSIFFLAGS:
|
||||
sock->netdev->flags = ifr->ifr_ifru.ifru_flags;
|
||||
return 0;
|
||||
for (node = &(cur_netdev_list->list); node; node = rt_slist_next(node))
|
||||
{
|
||||
netdev = rt_list_entry(node, struct netdev, list);
|
||||
if (!strcmp(ifr->ifr_ifrn.ifrn_name, netdev->name))
|
||||
{
|
||||
if ((ifr->ifr_ifru.ifru_flags & IFF_UP) == 0)
|
||||
{
|
||||
netdev_set_down(netdev);
|
||||
}
|
||||
else
|
||||
{
|
||||
netdev_set_up(netdev);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
|
||||
case SIOCGIFCONF:
|
||||
{
|
||||
struct ifconf *ifconf_tmp;
|
||||
|
|
Loading…
Reference in New Issue