From 9d58018f5ec89fe9cb3ece1725a0cff4adcdc95c Mon Sep 17 00:00:00 2001 From: Paul Querna Date: Sun, 5 Dec 2004 07:05:23 +0000 Subject: [PATCH] mod_log_config.c: Use iovecs to write the log line to eliminate a memcpy git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@109866 13f79535-47bb-0310-9956-ffa450edef68 --- modules/loggers/mod_log_config.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/modules/loggers/mod_log_config.c b/modules/loggers/mod_log_config.c index 96df3fa434..95c79e0e8a 100644 --- a/modules/loggers/mod_log_config.c +++ b/modules/loggers/mod_log_config.c @@ -1343,19 +1343,18 @@ static apr_status_t ap_default_log_writer( request_rec *r, apr_size_t len) { - char *str; - char *s; int i; apr_status_t rv; + struct iovec *vec; - str = apr_palloc(r->pool, len + 1); + vec = apr_palloc(r->pool, nelts * sizeof(struct iovec)); - for (i = 0, s = str; i < nelts; ++i) { - memcpy(s, strs[i], strl[i]); - s += strl[i]; + for (i = 0; i < nelts; ++i) { + vec[i].iov_base = strs[i]; + vec[i].iov_len = strl[i]; } - rv = apr_file_write((apr_file_t*)handle, str, &len); + rv = apr_file_writev((apr_file_t*)handle, vec, nelts, &i); return rv; } -- 2.50.1