src/sock_test.c
changeset 43 42f5dc680930
parent 42 13cfc41f76a7
child 46 0c13bca53ae1
equal deleted inserted replaced
42:13cfc41f76a7 43:42f5dc680930
   223 
   223 
   224         sock_stream_invoke_callbacks(SOCK_TEST_BASE(sock), mask);
   224         sock_stream_invoke_callbacks(SOCK_TEST_BASE(sock), mask);
   225     }
   225     }
   226 }
   226 }
   227 
   227 
       
   228 void sock_test_add_recv_str (struct sock_test *sock, const char *str)
       
   229 {
       
   230     struct io_vec vec = {
       
   231         (char*) str, strlen(str)
       
   232     };
       
   233 
       
   234     sock_test_add_recv_vec(sock, vec);
       
   235 }
       
   236 
   228 void sock_test_get_send_data (struct sock_test *sock, char **buf_ptr, size_t *len_ptr)
   237 void sock_test_get_send_data (struct sock_test *sock, char **buf_ptr, size_t *len_ptr)
   229 {
   238 {
   230     struct io_buf *buf = &sock->send_buf;
   239     struct io_buf *buf = &sock->send_buf;
   231     size_t len = 0, i, off = 0;
   240     size_t len = 0, i, off = 0;
   232     char *out;
   241     char *out;
   239     // alloc
   248     // alloc
   240     assert((out = malloc(len)));
   249     assert((out = malloc(len)));
   241 
   250 
   242     // copy
   251     // copy
   243     for (i = 0; i < buf->count; i++) {
   252     for (i = 0; i < buf->count; i++) {
   244         memcpy(out + off, buf->vecs[i].buf, buf->vecs[i].len);
   253         struct io_vec *vec = buf->vecs + i;
   245         off += buf->vecs[i].len;
   254 
       
   255         memcpy(out + off, vec->buf, vec->len);
       
   256         off += vec->len;
       
   257         
       
   258         // zero
       
   259         free(vec->buf); vec->buf = NULL;
       
   260         vec->len = 0;
   246     }
   261     }
   247     
   262     
   248     // update return
   263     // update return
   249     *buf_ptr = out;
   264     *buf_ptr = out;
   250     *len_ptr = len;
   265     *len_ptr = len;
   251 }
   266 
   252 
   267     // update write_vec
       
   268     buf->write_vec = buf->vecs;
       
   269 }
       
   270