Browse Source

Merge pull request #2043 from HubertXie/master

Update at_socket.c
Bernard Xiong 6 years ago
parent
commit
a5b22a5b06
1 changed files with 9 additions and 9 deletions
  1. 9 9
      components/net/at/at_socket/at_socket.c

+ 9 - 9
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);
         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 */
     /* socket passively closed, receive function return 0 */
     if (sock->state == AT_SOCKET_CLOSED)
     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;
         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 */
     /* non-blocking sockets receive data */
     if (flags & MSG_DONTWAIT)
     if (flags & MSG_DONTWAIT)
     {
     {