<td>Lookup operating system environment variable</td><td></td></tr>
<tr><td><code>note</code></td>
<td>Lookup request note</td><td></td></tr>
- <tr><td><code>kept_body</code></td>
- <td>Lookup response body if available in <code>r->kept_body</code>. <em>Note:</em>
- function argument is required but ignored.
- </td><td></td></tr>
<tr><td><code>env</code></td>
<td>Return first match of <code>note</code>, <code>reqenv</code>,
<code>osenv</code></td><td></td></tr>
return apr_table_get(t, arg);
}
-static const char *kb_func(ap_expr_eval_ctx_t *ctx, const void *data,
- const char *arg)
-{
- apr_off_t length;
- apr_size_t len;
- apr_status_t rv;
- char *buf;
-
- if (!ctx->r || !ctx->r->kept_body)
- return "";
-
- rv = apr_brigade_length(ctx->r->kept_body, 1, &length);
- len = (apr_size_t)length;;
- if (rv != APR_SUCCESS || len == 0)
- return "";
-
- buf = apr_palloc(ctx->r->pool, len+1);
- rv = apr_brigade_flatten(ctx->r->kept_body, buf, &len);
- if (rv != APR_SUCCESS)
- return "";
- buf[len] = '\0'; /* ensure */
- return (const char*)buf;
-}
-
static const char *env_func(ap_expr_eval_ctx_t *ctx, const void *data,
const char *arg)
{
{ unbase64_func, "unbase64", NULL, 0 },
{ sha1_func, "sha1", NULL, 0 },
{ md5_func, "md5", NULL, 0 },
- { kb_func, "kept_body", NULL, 0 },
#if APR_VERSION_AT_LEAST(1,6,0)
{ ldap_func, "ldap", NULL, 0 },
#endif