summaryrefslogtreecommitdiff
path: root/components/net/sal_socket
diff options
context:
space:
mode:
Diffstat (limited to 'components/net/sal_socket')
-rw-r--r--components/net/sal_socket/include/socket/netdb.h2
-rw-r--r--components/net/sal_socket/socket/net_sockets.c2
-rw-r--r--components/net/sal_socket/src/sal_socket.c18
3 files changed, 11 insertions, 11 deletions
diff --git a/components/net/sal_socket/include/socket/netdb.h b/components/net/sal_socket/include/socket/netdb.h
index 4783405022..9d54953681 100644
--- a/components/net/sal_socket/include/socket/netdb.h
+++ b/components/net/sal_socket/include/socket/netdb.h
@@ -6,7 +6,7 @@
* Change Logs:
* Date Author Notes
* 2015-02-17 Bernard First version
- * 2108-05-24 ChenYong Add socket abstraction layer
+ * 2018-05-24 ChenYong Add socket abstraction layer
*/
#ifndef NETDB_H__
diff --git a/components/net/sal_socket/socket/net_sockets.c b/components/net/sal_socket/socket/net_sockets.c
index 3637635d50..7d4db34327 100644
--- a/components/net/sal_socket/socket/net_sockets.c
+++ b/components/net/sal_socket/socket/net_sockets.c
@@ -13,7 +13,7 @@
#include <dfs_file.h>
#include <dfs_poll.h>
#include <dfs_net.h>
-
+#include <sys/errno.h>
#include <sys/socket.h>
int accept(int s, struct sockaddr *addr, socklen_t *addrlen)
diff --git a/components/net/sal_socket/src/sal_socket.c b/components/net/sal_socket/src/sal_socket.c
index e7142fae94..7b33038d17 100644
--- a/components/net/sal_socket/src/sal_socket.c
+++ b/components/net/sal_socket/src/sal_socket.c
@@ -165,7 +165,6 @@ static void check_netdev_internet_up_work(struct rt_work *work, void *work_data)
struct netdev *netdev = (struct netdev *)work_data;
socklen_t addr_len = sizeof(struct sockaddr_in);
char send_data[SAL_INTERNET_BUFF_LEN], recv_data = 0;
- struct rt_delayed_work *delay_work = (struct rt_delayed_work *)work;
const char month[][SAL_INTERNET_MONTH_LEN] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
char date[SAL_INTERNET_DATE_LEN];
@@ -176,7 +175,7 @@ static void check_netdev_internet_up_work(struct rt_work *work, void *work_data)
if (work)
{
- rt_free(delay_work);
+ rt_free(work);
}
/* get network interface socket operations */
@@ -261,12 +260,12 @@ __exit:
if (result > 0)
{
LOG_D("Set network interface device(%s) internet status up.", netdev->name);
- netdev->flags |= NETDEV_FLAG_INTERNET_UP;
+ netdev_low_level_set_internet_status(netdev, RT_TRUE);
}
else
{
LOG_D("Set network interface device(%s) internet status down.", netdev->name);
- netdev->flags &= ~NETDEV_FLAG_INTERNET_UP;
+ netdev_low_level_set_internet_status(netdev, RT_FALSE);
}
if (sockfd >= 0)
@@ -287,18 +286,18 @@ int sal_check_netdev_internet_up(struct netdev *netdev)
#ifdef SAL_INTERNET_CHECK
/* workqueue for network connect */
- struct rt_delayed_work *net_work = RT_NULL;
+ struct rt_work *net_work = RT_NULL;
- net_work = (struct rt_delayed_work *)rt_calloc(1, sizeof(struct rt_delayed_work));
+ net_work = (struct rt_work *)rt_calloc(1, sizeof(struct rt_work));
if (net_work == RT_NULL)
{
LOG_W("No memory for network interface device(%s) delay work.", netdev->name);
return -1;
}
- rt_delayed_work_init(net_work, check_netdev_internet_up_work, (void *)netdev);
- rt_work_submit(&(net_work->work), RT_TICK_PER_SECOND);
+ rt_work_init(net_work, check_netdev_internet_up_work, (void *)netdev);
+ rt_work_submit(net_work, RT_TICK_PER_SECOND);
#endif /* SAL_INTERNET_CHECK */
return 0;
}
@@ -620,6 +619,8 @@ int sal_accept(int socket, struct sockaddr *addr, socklen_t *addrlen)
return -1;
}
+ /* new socket create by accept should have the same netdev with server*/
+ new_sock->netdev = sock->netdev;
/* socket structure user_data used to store the acquired new socket */
new_sock->user_data = (void *) new_socket;
@@ -1174,4 +1175,3 @@ void sal_freeaddrinfo(struct addrinfo *ai)
pf->netdb_ops->freeaddrinfo(ai);
}
}
-