summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Antonuk <aega@med.umich.edu>2012-05-01 13:27:30 -0400
committerAlan Antonuk <aega@med.umich.edu>2012-05-01 13:27:30 -0400
commit3dfcffc476840c949deed969e476a1fceeea57af (patch)
tree41ed713ed71bc633b79dd4b8d8c79d525370f1a0
parenta9906a1a99ba07171366ea480c6e2fe80dda7ecb (diff)
downloadrabbitmq-c-github-ask-3dfcffc476840c949deed969e476a1fceeea57af.tar.gz
Refactoring amqp_ssl_writev to avoid mempcpy
-rw-r--r--librabbitmq/amqp_api.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/librabbitmq/amqp_api.c b/librabbitmq/amqp_api.c
index 82ba267..0e77964 100644
--- a/librabbitmq/amqp_api.c
+++ b/librabbitmq/amqp_api.c
@@ -597,14 +597,14 @@ int amqp_ssl_send(amqp_connection_state_t state, char *buf, size_t nb)
int amqp_ssl_writev(amqp_connection_state_t state, const struct iovec *vec, int num)
{
- char * buffer;
- char * bp;
+ char * buffer;
+ char * bp;
- int total;
- int chunk;
+ size_t total;
+ size_t chunk;
- int n;
- int i;
+ size_t n;
+ int i;
total = 0;
@@ -628,12 +628,13 @@ int amqp_ssl_writev(amqp_connection_state_t state, const struct iovec *vec, int
}
- n = total; bp = buffer;
+ n = total;
+ bp = buffer;
for (i = 0; i < num; i++)
{
chunk = MIN(vec[i].iov_len, n);
- bp = mempcpy(bp, vec[i].iov_base, chunk);
+ bp = (memcpy(bp, vec[i].iov_base, chunk) + chunk);
n -= chunk;