Selaa lähdekoodia

Merge pull request #2628 from HubertXie/master

实现多网卡自动切换功能
Bernard Xiong 6 vuotta sitten
vanhempi
commit
c2244a5c57

+ 1 - 1
components/net/netdev/src/netdev.c

@@ -269,7 +269,7 @@ struct netdev *netdev_get_by_family(int family)
     {
         netdev = rt_slist_entry(node, struct netdev, list);
         pf = (struct sal_proto_family *) netdev->sal_user_data;
-        if (pf && pf->skt_ops && pf->family == family && netdev_is_up(netdev))
+        if (pf && pf->skt_ops && pf->family == family && netdev_is_up(netdev) && netdev_is_link_up(netdev))
         {
             rt_hw_interrupt_enable(level);
             return netdev;

+ 2 - 2
components/net/sal_socket/src/sal_socket.c

@@ -174,7 +174,7 @@ static void check_netdev_internet_up_work(struct rt_work *work, void *work_data)
         goto __exit;
     }
 
-	skt_ops = pf->skt_ops;
+    skt_ops = pf->skt_ops;
     if((sockfd = skt_ops->socket(AF_INET, SOCK_DGRAM, 0)) < 0)
     {
         result = -RT_ERROR;
@@ -394,7 +394,7 @@ static int socket_init(int family, int type, int protocol, struct sal_socket **r
         return -3;
     }
 
-    if (netdev_is_up(netdv_def))
+    if (netdev_is_up(netdv_def) && netdev_is_link_up(netdv_def))
     {
         /* check default network interface device protocol family */
         pf = (struct sal_proto_family *) netdv_def->sal_user_data;