MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / at_recv_notice_cb

Function at_recv_notice_cb

components/net/at/at_socket/at_socket.c:806–831  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

804#endif
805
806static void at_recv_notice_cb(struct at_socket *sock, at_socket_evt_t event, const char *buff, size_t bfsz)
807{
808 RT_ASSERT(buff);
809 RT_ASSERT(event == AT_SOCKET_EVT_RECV);
810
811 /* check the socket object status */
812 if (sock->magic != AT_SOCKET_MAGIC || sock->state == AT_SOCKET_CLOSED)
813 {
814 rt_free((void *)buff);
815 return;
816 }
817
818 /* put receive buffer to receiver packet list */
819 rt_mutex_take(sock->recv_lock, RT_WAITING_FOREVER);
820 if (at_recvpkt_put(&(sock->recvpkt_list), buff, bfsz) != RT_EOK)
821 {
822 rt_free((void *)buff);
823 rt_mutex_release(sock->recv_lock);
824 return;
825 }
826 rt_mutex_release(sock->recv_lock);
827
828 rt_sem_release(sock->recv_notice);
829
830 at_do_event_changes(sock, AT_EVENT_RECV, RT_TRUE);
831}
832
833static void at_closed_notice_cb(struct at_socket *sock, at_socket_evt_t event, const char *buff, size_t bfsz)
834{

Callers

nothing calls this directly

Calls 6

rt_freeFunction · 0.85
rt_mutex_takeFunction · 0.85
at_recvpkt_putFunction · 0.85
rt_mutex_releaseFunction · 0.85
rt_sem_releaseFunction · 0.85
at_do_event_changesFunction · 0.85

Tested by

no test coverage detected