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))
|
if (!strcmp(ifr->ifr_ifrn.ifrn_name, netdev->name))
|
||||||
{
|
{
|
||||||
uint16_t flags_tmp = 0;
|
uint16_t flags_tmp = 0;
|
||||||
if (sock->netdev->flags & NETDEV_FLAG_UP)
|
if (netdev->flags & NETDEV_FLAG_UP)
|
||||||
flags_tmp = flags_tmp | IFF_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;
|
flags_tmp = flags_tmp | IFF_NOARP;
|
||||||
ifr->ifr_ifru.ifru_flags = flags_tmp;
|
ifr->ifr_ifru.ifru_flags = flags_tmp;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1327,8 +1327,24 @@ int sal_ioctlsocket(int socket, long cmd, void *arg)
|
||||||
|
|
||||||
|
|
||||||
case SIOCSIFFLAGS:
|
case SIOCSIFFLAGS:
|
||||||
sock->netdev->flags = ifr->ifr_ifru.ifru_flags;
|
for (node = &(cur_netdev_list->list); node; node = rt_slist_next(node))
|
||||||
return 0;
|
{
|
||||||
|
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:
|
case SIOCGIFCONF:
|
||||||
{
|
{
|
||||||
struct ifconf *ifconf_tmp;
|
struct ifconf *ifconf_tmp;
|
||||||
|
|
Loading…
Reference in New Issue