From f7e5f4cd5005df03a959372defda0ce12985d504 Mon Sep 17 00:00:00 2001 From: HubretXie Date: Sun, 28 Apr 2019 15:21:19 +0800 Subject: [PATCH 1/3] Update sal_socket.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 创建sock时,默认网卡联网时才优先使用 --- components/net/sal_socket/src/sal_socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/net/sal_socket/src/sal_socket.c b/components/net/sal_socket/src/sal_socket.c index 68e1375849..1efd8c1d9c 100644 --- a/components/net/sal_socket/src/sal_socket.c +++ b/components/net/sal_socket/src/sal_socket.c @@ -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; From 2d82b621118773fe3d21177adeba0f6e6d41acb6 Mon Sep 17 00:00:00 2001 From: HubretXie Date: Sun, 28 Apr 2019 15:24:23 +0800 Subject: [PATCH 2/3] Update netdev.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根据family查找netdev时,优先查找family匹配并且已经联网的网卡 再查找family匹配但是未联网的网卡 --- components/net/netdev/src/netdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/net/netdev/src/netdev.c b/components/net/netdev/src/netdev.c index e4a88ca022..bfefc2d1de 100644 --- a/components/net/netdev/src/netdev.c +++ b/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; From fd05ad76d69e02ee2c36e8eb73781a5654073be4 Mon Sep 17 00:00:00 2001 From: HubretXie Date: Sun, 28 Apr 2019 15:26:52 +0800 Subject: [PATCH 3/3] Update sal_socket.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 格式化代码 --- components/net/sal_socket/src/sal_socket.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/net/sal_socket/src/sal_socket.c b/components/net/sal_socket/src/sal_socket.c index 1efd8c1d9c..008a29e252 100644 --- a/components/net/sal_socket/src/sal_socket.c +++ b/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)&&netdev_is_link_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;