summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/net/at/include/at.h2
-rw-r--r--components/net/at/src/at_client.c8
-rw-r--r--components/net/at/src/at_server.c5
3 files changed, 11 insertions, 4 deletions
diff --git a/components/net/at/include/at.h b/components/net/at/include/at.h
index 76e952944f..782cb0c400 100644
--- a/components/net/at/include/at.h
+++ b/components/net/at/include/at.h
@@ -27,7 +27,7 @@
#include <rtthread.h>
-#define AT_SW_VERSION "0.2.2"
+#define AT_SW_VERSION "0.2.3"
#define DBG_ENABLE
#define DBG_SECTION_NAME "AT"
diff --git a/components/net/at/src/at_client.c b/components/net/at/src/at_client.c
index c2002d8094..90fd3291c3 100644
--- a/components/net/at/src/at_client.c
+++ b/components/net/at/src/at_client.c
@@ -547,7 +547,7 @@ static void client_parser(at_client_t client)
/* get the end data by response result, return response state END_OK. */
client->resp_status = AT_RESP_OK;
}
- else if ((memcmp(client->recv_buffer, AT_RESP_END_ERROR, strlen(AT_RESP_END_ERROR)) == 0)
+ else if (strstr(client->recv_buffer, AT_RESP_END_ERROR)
|| (memcmp(client->recv_buffer, AT_RESP_END_FAIL, strlen(AT_RESP_END_FAIL)) == 0))
{
client->resp_status = AT_RESP_ERROR;
@@ -577,7 +577,11 @@ static void client_parser(at_client_t client)
static rt_err_t at_client_rx_ind(rt_device_t dev, rt_size_t size)
{
- rt_sem_release(at_client_local->rx_notice);
+ if (size > 0)
+ {
+ rt_sem_release(at_client_local->rx_notice);
+ }
+
return RT_EOK;
}
diff --git a/components/net/at/src/at_server.c b/components/net/at/src/at_server.c
index 639739d9c2..a148a20ab0 100644
--- a/components/net/at/src/at_server.c
+++ b/components/net/at/src/at_server.c
@@ -433,7 +433,10 @@ __retry:
static rt_err_t at_rx_ind(rt_device_t dev, rt_size_t size)
{
- rt_sem_release(at_server_local->rx_notice);
+ if (size > 0)
+ {
+ rt_sem_release(at_server_local->rx_notice);
+ }
return RT_EOK;
}