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);
         }

Reply via email to