diff --git a/components/net/at/at_socket/at_socket.c b/components/net/at/at_socket/at_socket.c index 6fd2e765d43654447252954e6d67ba503c7f043a..01646f0d89e0699ff7894a42b8a76fb22bc2708c 100644 --- a/components/net/at/at_socket/at_socket.c +++ b/components/net/at/at_socket/at_socket.c @@ -668,6 +668,7 @@ int at_recvfrom(int socket, void *mem, size_t len, int flags, struct sockaddr *f if (rt_sem_take(sock->recv_notice, timeout) < 0) { LOG_E("AT socket (%d) receive timeout (%d)!", socket, timeout); + errno = EAGAIN; result = -1; goto __exit; } @@ -699,7 +700,7 @@ __exit: { result = recv_len; at_do_event_changes(sock, AT_EVENT_RECV, RT_FALSE); - + errno = 0; if (!rt_slist_isempty(&sock->recvpkt_list)) { at_do_event_changes(sock, AT_EVENT_RECV, RT_TRUE);