-*- coding: utf-8 -*-
Changes with Apache 2.5.0
+ *) mod_logio: new format-specifier %C (combined) which is the sum of received
+ and sent byte counts.
+ PR54015 [Christophe Jaillet]
+
*) core: Remove apr_brigade_flatten(), buffering and duplicated code
from the HTTP_IN filter, parse chunks in a single pass with zero copy.
Reduce memory usage by 48 bytes per request. [Graham Leggett]
<tr><td><code>%O</code></td>
<td>Bytes sent, including headers. Cannot be zero. You need to
enable <module>mod_logio</module> to use this.</td></tr>
+
+ <tr><td><code>%C</code></td>
+ <td>Bytes transferred (received and sent), including request and headers,
+ cannot be zero. This is the combination of %I and %O. You need to
+ enable <module>mod_logio</module> to use this.</td></tr>
+
</table>
<section id="modifiers"><title>Modifiers</title>
<tr><th>Format String</th>
<th>Description</th></tr>
- <tr><td><code>%...I</code></td>
+ <tr><td><code>%I</code></td>
<td>Bytes received, including request and headers, cannot be
zero.</td></tr>
- <tr><td><code>%...O</code></td>
+ <tr><td><code>%O</code></td>
<td>Bytes sent, including headers, cannot be zero.</td></tr>
+
+ <tr><td><code>%C</code></td>
+ <td>Bytes transferred (received and sent), including request and headers,
+ cannot be zero. This is the combination of %I and %O.</td></tr>
</table>
<p>Usually, the functionality is used like this:</p>
return apr_off_t_toa(r->pool, cf->bytes_out);
}
+static const char *log_bytes_combined(request_rec *r, char *a)
+{
+ logio_config_t *cf = ap_get_module_config(r->connection->conn_config,
+ &logio_module);
+
+ return apr_off_t_toa(r->pool, cf->bytes_out + cf->bytes_in);
+}
+
/*
* Reset counters after logging...
*/
if (log_pfn_register) {
log_pfn_register(p, "I", log_bytes_in, 0);
log_pfn_register(p, "O", log_bytes_out, 0);
+ log_pfn_register(p, "C", log_bytes_combined, 0);
}
return OK;