diff options
| author | chenyong <[email protected]> | 2018-09-17 18:01:26 +0800 |
|---|---|---|
| committer | chenyong <[email protected]> | 2018-09-17 18:07:26 +0800 |
| commit | e2706c14b11c0e86bc38df9852f8b3948061aad0 (patch) | |
| tree | 316af03c1c05ce5302ed182ea11e5e4beb520ad9 /components/net | |
| parent | 3fce70d804e25d0a6fc1b3b50a59f2d76c595b72 (diff) | |
[net][at] Fix AT Socket select send data issue.
Diffstat (limited to 'components/net')
| -rw-r--r-- | components/net/at/at_socket/at_socket.c | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/components/net/at/at_socket/at_socket.c b/components/net/at/at_socket/at_socket.c index 43913498f8..6f12c1d22a 100644 --- a/components/net/at/at_socket/at_socket.c +++ b/components/net/at/at_socket/at_socket.c @@ -200,7 +200,7 @@ static void at_do_event_changes(struct at_socket *sock, at_event_t event, rt_boo { if (is_plus) { - sock->sendevent++; + sock->sendevent = 1; #ifdef SAL_USING_POSIX rt_wqueue_wakeup(&sock->wait_head, (void*) POLLOUT); @@ -209,7 +209,7 @@ static void at_do_event_changes(struct at_socket *sock, at_event_t event, rt_boo } else if (sock->sendevent) { - sock->sendevent --; + sock->sendevent = 0; } break; } @@ -252,6 +252,30 @@ static void at_do_event_changes(struct at_socket *sock, at_event_t event, rt_boo } } +static void at_do_event_clean(struct at_socket *sock, at_event_t event) +{ + switch (event) + { + case AT_EVENT_SEND: + { + sock->sendevent = 0; + break; + } + case AT_EVENT_RECV: + { + sock->rcvevent = 0; + break; + } + case AT_EVENT_ERROR: + { + sock->errevent = 0; + break; + } + default: + LOG_E("Not supported event (%d)", event); + } +} + static struct at_socket *alloc_socket(void) { static rt_mutex_t at_slock = RT_NULL; @@ -565,6 +589,8 @@ __exit: at_do_event_changes(sock, AT_EVENT_ERROR, RT_TRUE); } + at_do_event_changes(sock, AT_EVENT_SEND, RT_TRUE); + return result; } @@ -688,6 +714,10 @@ __exit: { at_do_event_changes(sock, AT_EVENT_RECV, RT_TRUE); } + else + { + at_do_event_clean(sock, AT_EVENT_RECV); + } } else { |
