This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch releases/12.7
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git
The following commit(s) were added to refs/heads/releases/12.7 by this push:
new f86baa76f net: Remove IFF_DOWN flag to compatible with Linux/*BSD
f86baa76f is described below
commit f86baa76fccf3459e1c7bdc7f523471deb7a34b1
Author: Xiang Xiao <[email protected]>
AuthorDate: Sun Oct 6 15:22:19 2024 +0800
net: Remove IFF_DOWN flag to compatible with Linux/*BSD
turn off interface by checking IFF_UP flag isn't set:
https://github.com/apache/nuttx/issues/1838
Signed-off-by: Xiang Xiao <[email protected]>
---
lte/alt1250/alt1250_netdev.c | 2 +-
lte/alt1250/usock_handlers/alt1250_ioctl_ifreq.c | 7 +------
netutils/netinit/netinit.c | 2 +-
netutils/netlib/netlib_setifstatus.c | 2 --
4 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/lte/alt1250/alt1250_netdev.c b/lte/alt1250/alt1250_netdev.c
index 1f8fff8f2..8e40afd92 100644
--- a/lte/alt1250/alt1250_netdev.c
+++ b/lte/alt1250/alt1250_netdev.c
@@ -60,7 +60,7 @@ void alt1250_netdev_unregister(FAR struct alt1250_s *dev)
void alt1250_netdev_ifdown(FAR struct alt1250_s *dev)
{
- dev->net_dev.d_flags = IFF_DOWN;
+ dev->net_dev.d_flags = ~IFF_UP;
#ifdef CONFIG_NET_IPv4
memset(&dev->net_dev.d_ipaddr, 0, sizeof(dev->net_dev.d_ipaddr));
memset(&dev->net_dev.d_draddr, 0, sizeof(dev->net_dev.d_draddr));
diff --git a/lte/alt1250/usock_handlers/alt1250_ioctl_ifreq.c
b/lte/alt1250/usock_handlers/alt1250_ioctl_ifreq.c
index 5e327043a..875361681 100644
--- a/lte/alt1250/usock_handlers/alt1250_ioctl_ifreq.c
+++ b/lte/alt1250/usock_handlers/alt1250_ioctl_ifreq.c
@@ -399,14 +399,9 @@ int usockreq_ioctl_ifreq(FAR struct alt1250_s *dev,
{
ret = do_ifup(dev, req, usock_result, usock_xid, ackinfo);
}
- else if (if_req->ifr_flags & IFF_DOWN)
- {
- ret = do_ifdown(dev, req, usock_result, usock_xid, ackinfo);
- }
else
{
- dbg_alt1250("unexpected ifr_flags:0x%02x\n", if_req->ifr_flags);
- *usock_result = -EINVAL;
+ ret = do_ifdown(dev, req, usock_result, usock_xid, ackinfo);
}
return ret;
diff --git a/netutils/netinit/netinit.c b/netutils/netinit/netinit.c
index f0017a056..6a72c3bfe 100644
--- a/netutils/netinit/netinit.c
+++ b/netutils/netinit/netinit.c
@@ -904,7 +904,7 @@ static int netinit_monitor(void)
ninfo("Taking the link down\n");
- ifr.ifr_flags = IFF_DOWN;
+ ifr.ifr_flags = 0;
ret = ioctl(sd, SIOCSIFFLAGS, (unsigned long)&ifr);
if (ret < 0)
{
diff --git a/netutils/netlib/netlib_setifstatus.c
b/netutils/netlib/netlib_setifstatus.c
index 0c54277df..6a36eaa90 100644
--- a/netutils/netlib/netlib_setifstatus.c
+++ b/netutils/netlib/netlib_setifstatus.c
@@ -118,8 +118,6 @@ int netlib_ifdown(const char *ifname)
/* Perform the ioctl to ifup flag */
- req.ifr_flags |= IFF_DOWN;
-
ret = ioctl(sockfd, SIOCSIFFLAGS, (unsigned long)&req);
close(sockfd);
}