summaryrefslogtreecommitdiff
path: root/components/net/sal_socket
diff options
context:
space:
mode:
authorchenyong <[email protected]>2019-04-17 18:42:10 +0800
committerchenyong <[email protected]>2019-04-17 18:42:10 +0800
commit9df63135379096d70253baa83003f9edeffd008e (patch)
tree7d411212f576b573154c4c82d388e2fbc2b27588 /components/net/sal_socket
parenta6900a2d6f2f7e6ae3c98ec0f0dfccf8bfcd2d69 (diff)
[net][sal] fix delay_work timer not detach problem
Signed-off-by: chenyong <[email protected]>
Diffstat (limited to 'components/net/sal_socket')
-rw-r--r--components/net/sal_socket/src/sal_socket.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/components/net/sal_socket/src/sal_socket.c b/components/net/sal_socket/src/sal_socket.c
index 34805c917b..82b6ca5ba8 100644
--- a/components/net/sal_socket/src/sal_socket.c
+++ b/components/net/sal_socket/src/sal_socket.c
@@ -146,6 +146,7 @@ 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];
@@ -156,7 +157,8 @@ static void check_netdev_internet_up_work(struct rt_work *work, void *work_data)
if (work)
{
- rt_free((struct rt_delayed_work *)work);
+ rt_timer_detach(&(delay_work->timer));
+ rt_free(delay_work);
}
/* get network interface socket operations */