Add tcp_qput(), for writing data to a tcp_queue

This commit is contained in:
Andreas Öman 2008-02-15 15:38:08 +00:00
parent f3057b7803
commit 93888d02d3
2 changed files with 19 additions and 0 deletions

17
tcp.c
View file

@ -61,8 +61,25 @@ tcp_qprintf(tcp_queue_t *tq, const char *fmt, ...)
tq->tq_depth += td->td_datalen;
}
/*
* Put data on a TCP queue
*/
void
tcp_qput(tcp_queue_t *tq, const uint8_t *buf, size_t len)
{
tcp_data_t *td;
void *out;
td = malloc(sizeof(tcp_data_t));
td->td_offset = 0;
td->td_datalen = len;
out = malloc(td->td_datalen);
memcpy(out, buf, td->td_datalen);
td->td_data = out;
TAILQ_INSERT_TAIL(&tq->tq_messages, td, td_link);
tq->tq_depth += td->td_datalen;
}
/*
* printfs data on a TCP connection

2
tcp.h
View file

@ -104,6 +104,8 @@ void tcp_printf(tcp_session_t *ses, const char *fmt, ...);
void tcp_qprintf(tcp_queue_t *tq, const char *fmt, ...);
void tcp_qput(tcp_queue_t *tq, const uint8_t *buf, size_t len);
void tcp_output_queue(tcp_session_t *ses, tcp_queue_t *dst, tcp_queue_t *src);
void *tcp_create_client(const char *hostname, int port, size_t session_size,