Lines Matching defs:node

110 coap_free_node(coap_queue_t *node) {
111 coap_free_type(COAP_NODE, node);
123 coap_free_node(coap_queue_t *node) {
124 memp_free(MEMP_COAP_NODE, node);
166 coap_insert_node(coap_queue_t **queue, coap_queue_t *node) {
168 if (!queue || !node)
173 *queue = node;
179 if (node->t < q->t) {
180 node->next = q;
181 *queue = node;
182 q->t -= node->t; /* make q->t relative to node->t */
188 node->t -= q->t; /* make node-> relative to q->t */
191 } while (q && q->t <= node->t);
195 q->t -= node->t; /* make q->t relative to node->t */
197 node->next = q;
198 p->next = node;
203 coap_delete_node(coap_queue_t *node) {
204 if (!node)
207 coap_delete_pdu(node->pdu);
208 if (node->session) {
212 if (node->session->context->sendqueue) {
213 LL_DELETE(node->session->context->sendqueue, node);
215 coap_session_release(node->session);
217 coap_free_node(node);
233 coap_queue_t *node;
234 node = coap_malloc_node();
236 if (!node) {
241 memset(node, 0, sizeof(*node));
242 return node;
804 coap_send_pdu(coap_session_t *session, coap_pdu_t *pdu, coap_queue_t *node) {
827 return coap_session_delay_pdu(session, pdu, node);
832 return coap_session_delay_pdu(session, pdu, node);
915 coap_queue_t *node) {
918 node->session = coap_session_reference(session);
922 * time and the retransmission time is node->timeout. If there is
923 * already an entry in the sendqueue, we must check if this node is
924 * to be retransmitted earlier. Therefore, node->timeout is first
930 node->t = node->timeout << node->retransmit_cnt;
933 /* make node->t relative to context->sendqueue_basetime */
934 node->t = (now - context->sendqueue_basetime) +
935 (node->timeout << node->retransmit_cnt);
938 coap_insert_node(&context->sendqueue, node);
941 coap_session_str(node->session), node->id,
942 (unsigned)((node->timeout << node->retransmit_cnt) * 1000 /
946 coap_update_epoll_timer(context, node->t);
949 return node->id;
1599 coap_queue_t *node = coap_new_node();
1600 if (!node) {
1605 node->id = pdu->mid;
1606 node->pdu = pdu;
1609 node->timeout = coap_calc_timeout(session, r);
1610 return coap_wait_ack(session->context, session, node);
1617 coap_retransmit(coap_context_t *context, coap_queue_t *node) {
1618 if (!context || !node)
1622 if (node->retransmit_cnt < node->session->max_retransmit) {
1627 node->retransmit_cnt++;
1628 coap_handle_event(context, COAP_EVENT_MSG_RETRANSMITTED, node->session);
1630 next_delay = (coap_tick_t)node->timeout << node->retransmit_cnt;
1642 node->t = next_delay;
1645 /* make node->t relative to context->sendqueue_basetime */
1646 node->t = (now - context->sendqueue_basetime) + next_delay;
1648 coap_insert_node(&context->sendqueue, node);
1650 if (node->is_mcast) {
1652 coap_session_str(node->session), node->id);
1655 coap_session_str(node->session), node->id,
1656 node->retransmit_cnt,
1660 if (node->session->con_active)
1661 node->session->con_active--;
1662 bytes_written = coap_send_pdu(node->session, node->pdu, node);
1664 if (node->is_mcast) {
1665 coap_session_connected(node->session);
1666 coap_delete_node(node);
1671 in progress. node was moved to the send queue of the session. */
1672 return node->id;
1678 return node->id;
1681 /* no more retransmissions, remove node from system */
1683 coap_session_str(node->session), node->id, node->retransmit_cnt);
1688 if (COAP_RESPONSE_CLASS(node->pdu->code) >= 2) {
1689 coap_handle_failed_notify(context, node->session, &node->pdu->actual_token);
1692 if (node->session->con_active) {
1693 node->session->con_active--;
1694 if (node->session->state == COAP_SESSION_STATE_ESTABLISHED) {
1700 * this node (queue) and re-added to context->sendqueue.
1701 * coap_delete_node(node) called shortly will handle this and remove it.
1703 coap_session_connected(node->session);
1707 /* And finally delete the node */
1708 if (node->pdu->type == COAP_MESSAGE_CON && context->nack_handler) {
1709 coap_check_update_token(node->session, node->pdu);
1710 context->nack_handler(node->session, node->pdu, COAP_NACK_TOO_MANY_RETRIES, node->id);
1712 coap_delete_node(node);
2249 coap_queue_t **node) {
2258 *node = *queue;
2261 (*queue)->t += (*node)->t;
2263 (*node)->next = NULL;
2282 *node = q;
3264 coap_queue_t *node = coap_new_node();
3268 if (!node) {
3273 coap_delete_node(node);
3277 node->id = response->mid;
3278 node->pdu = response;
3279 node->is_mcast = 1;
3288 node->timeout = (unsigned int)delay;
3290 coap_wait_ack(session->context, session, node);