aboutsummaryrefslogtreecommitdiffstats
path: root/gtp/queue.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtp/queue.c')
-rw-r--r--gtp/queue.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gtp/queue.c b/gtp/queue.c
index ce4713e..4c25913 100644
--- a/gtp/queue.c
+++ b/gtp/queue.c
@@ -172,6 +172,7 @@ int queue_newmsg(struct queue_t *queue, struct qmsg_t **qmsg,
} else {
*qmsg = &queue->qmsga[queue->next];
queue_seqset(queue, *qmsg, peer, seq);
+ INIT_LLIST_HEAD(&(*qmsg)->entry);
(*qmsg)->state = 1; /* Space taken */
(*qmsg)->this = queue->next;
(*qmsg)->next = -1; /* End of the queue */
@@ -206,6 +207,8 @@ int queue_freemsg(struct queue_t *queue, struct qmsg_t *qmsg)
return EOF; /* Not in queue */
}
+ llist_del(&qmsg->entry);
+
queue_seqdel(queue, qmsg);
if (qmsg->next == -1) /* Are we the last in queue? */