diff options
| author | Bernard Xiong <[email protected]> | 2018-12-12 12:55:21 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2018-12-12 12:55:21 +0800 |
| commit | a5b22a5b060f48798865d88c230349717338da02 (patch) | |
| tree | 6cde1deb2a6c55d4209166e1dd0c9460fcfa057c /components | |
| parent | c059503007ddf5825d16eb9d4217507a012979f9 (diff) | |
| parent | 3a8c6f32c09fdf744697eff85d80ad083a424881 (diff) | |
Merge pull request #2043 from HubertXie/master
Update at_socket.c
Diffstat (limited to 'components')
| -rw-r--r-- | components/net/at/at_socket/at_socket.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/components/net/at/at_socket/at_socket.c b/components/net/at/at_socket/at_socket.c index 84325c1501..3925f0f57c 100644 --- a/components/net/at/at_socket/at_socket.c +++ b/components/net/at/at_socket/at_socket.c @@ -627,6 +627,15 @@ int at_recvfrom(int socket, void *mem, size_t len, int flags, struct sockaddr *f at_dev_ops->at_set_event_cb(AT_SOCKET_EVT_CLOSED, at_closed_notice_cb); } + /* receive packet list last transmission of remaining data */ + rt_mutex_take(sock->recv_lock, RT_WAITING_FOREVER); + if((recv_len = at_recvpkt_get(&(sock->recvpkt_list), (char *)mem, len)) > 0) + { + rt_mutex_release(sock->recv_lock); + goto __exit; + } + rt_mutex_release(sock->recv_lock); + /* socket passively closed, receive function return 0 */ if (sock->state == AT_SOCKET_CLOSED) { @@ -640,15 +649,6 @@ int at_recvfrom(int socket, void *mem, size_t len, int flags, struct sockaddr *f goto __exit; } - /* receive packet list last transmission of remaining data */ - rt_mutex_take(sock->recv_lock, RT_WAITING_FOREVER); - if((recv_len = at_recvpkt_get(&(sock->recvpkt_list), (char *)mem, len)) > 0) - { - rt_mutex_release(sock->recv_lock); - goto __exit; - } - rt_mutex_release(sock->recv_lock); - /* non-blocking sockets receive data */ if (flags & MSG_DONTWAIT) { |
