--- a/src/sock_test.c Thu Mar 12 21:23:33 2009 +0200
+++ b/src/sock_test.c Thu Mar 12 21:44:34 2009 +0200
@@ -225,6 +225,15 @@
}
}
+void sock_test_add_recv_str (struct sock_test *sock, const char *str)
+{
+ struct io_vec vec = {
+ (char*) str, strlen(str)
+ };
+
+ sock_test_add_recv_vec(sock, vec);
+}
+
void sock_test_get_send_data (struct sock_test *sock, char **buf_ptr, size_t *len_ptr)
{
struct io_buf *buf = &sock->send_buf;
@@ -241,12 +250,21 @@
// copy
for (i = 0; i < buf->count; i++) {
- memcpy(out + off, buf->vecs[i].buf, buf->vecs[i].len);
- off += buf->vecs[i].len;
+ struct io_vec *vec = buf->vecs + i;
+
+ memcpy(out + off, vec->buf, vec->len);
+ off += vec->len;
+
+ // zero
+ free(vec->buf); vec->buf = NULL;
+ vec->len = 0;
}
// update return
*buf_ptr = out;
*len_ptr = len;
+
+ // update write_vec
+ buf->write_vec = buf->vecs;
}