summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2018-12-12 12:55:21 +0800
committerGitHub <[email protected]>2018-12-12 12:55:21 +0800
commita5b22a5b060f48798865d88c230349717338da02 (patch)
tree6cde1deb2a6c55d4209166e1dd0c9460fcfa057c /components
parentc059503007ddf5825d16eb9d4217507a012979f9 (diff)
parent3a8c6f32c09fdf744697eff85d80ad083a424881 (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.c18
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)
{