commit
c2244a5c57
|
@ -269,7 +269,7 @@ struct netdev *netdev_get_by_family(int family)
|
||||||
{
|
{
|
||||||
netdev = rt_slist_entry(node, struct netdev, list);
|
netdev = rt_slist_entry(node, struct netdev, list);
|
||||||
pf = (struct sal_proto_family *) netdev->sal_user_data;
|
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);
|
rt_hw_interrupt_enable(level);
|
||||||
return netdev;
|
return netdev;
|
||||||
|
|
|
@ -174,7 +174,7 @@ static void check_netdev_internet_up_work(struct rt_work *work, void *work_data)
|
||||||
goto __exit;
|
goto __exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
skt_ops = pf->skt_ops;
|
skt_ops = pf->skt_ops;
|
||||||
if((sockfd = skt_ops->socket(AF_INET, SOCK_DGRAM, 0)) < 0)
|
if((sockfd = skt_ops->socket(AF_INET, SOCK_DGRAM, 0)) < 0)
|
||||||
{
|
{
|
||||||
result = -RT_ERROR;
|
result = -RT_ERROR;
|
||||||
|
@ -394,7 +394,7 @@ static int socket_init(int family, int type, int protocol, struct sal_socket **r
|
||||||
return -3;
|
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 */
|
/* check default network interface device protocol family */
|
||||||
pf = (struct sal_proto_family *) netdv_def->sal_user_data;
|
pf = (struct sal_proto_family *) netdv_def->sal_user_data;
|
||||||
|
|
Loading…
Reference in New Issue