free(qc);
}
-/**
- * Force to add a chunk to the given queue.
- *
- * \param cq See \ref cq_enqueue.
- * \param buf See \ref cq_enqueue.
- * \param num_bytes See \ref cq_enqueue.
- *
- * If queuing the given buffer would result in exceeding the maximal queue
- * size, buffers are dropped from the beginning of the queue. Note that this
- * function still might fail.
- *
- * \return Standard.
- */
-int cq_force_enqueue(struct chunk_queue *cq, const char *buf, size_t num_bytes)
-{
- int ret;
-
- if (num_bytes > cq->max_pending)
- return -E_QUEUE;
- for (;;) {
- ret = cq_enqueue(cq, buf, num_bytes);
- if (ret >= 0)
- return ret;
- cq_dequeue(cq);
- }
- /* never reached */
-}
-
/**
* Change the number of bytes sent for the current queued chunk.
*
int cq_get(struct queued_chunk *qc, const char **buf, size_t *len);
struct chunk_queue *cq_new(size_t max_pending);
void cq_destroy(struct chunk_queue *cq);
-int cq_force_enqueue(struct chunk_queue *cq, const char *buf, size_t num_bytes);