From b1dbc2047efeaf70200f880e4931c77addd8cce6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20=27Morty=27=20Str=C3=BCbe?= Date: Mon, 7 Jan 2013 12:47:49 +0100 Subject: [PATCH] Add mesh_ready() to mesh mesh_ready checkes whether a packet is queued. This allows to avoid packet loss at application level. --- core/net/rime/mesh.c | 7 +++++++ core/net/rime/mesh.h | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/core/net/rime/mesh.c b/core/net/rime/mesh.c index 39231cc3e..f8ea14b51 100644 --- a/core/net/rime/mesh.c +++ b/core/net/rime/mesh.c @@ -201,4 +201,11 @@ mesh_send(struct mesh_conn *c, const rimeaddr_t *to) return 1; } /*---------------------------------------------------------------------------*/ +int +mesh_ready(struct mesh_conn *c) +{ + return (c->queued_data == NULL); +} + + /** @} */ diff --git a/core/net/rime/mesh.h b/core/net/rime/mesh.h index 1bcf9f34e..394e428a5 100644 --- a/core/net/rime/mesh.h +++ b/core/net/rime/mesh.h @@ -133,6 +133,14 @@ void mesh_close(struct mesh_conn *c); */ int mesh_send(struct mesh_conn *c, const rimeaddr_t *dest); +/** + * \brief Test if mesh is ready to send a packet (or packet is queued) + * \param c The mesh connection on which is to be tested + * \retval 0 Packet queued + * \retval !0 Ready + */ +int mesh_ready(struct mesh_conn *c); + #endif /* __MESH_H__ */ /** @} */ /** @} */