PR63971 expose apr_table_unset for headers/envvars
via nil assignment
Submitted by: covener
Reviewed by: covener, jim, humbedooh
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@
1873366 13f79535-47bb-0310-9956-
ffa450edef68
-*- coding: utf-8 -*-
Changes with Apache 2.4.42
+ *) mod_lua: Accept nil assignments to the exposed tables (r.subprocess_env,
+ r.headers_out, etc) to remove the key from the table. PR63971.
+ [Eric Covener]
+
*) mod_http2: Fixed interaction with mod_reqtimeout. A loaded mod_http2 was disabling the
ssl handshake timeouts. Also, fixed a mistake of the last version that made `H2Direct`
always `on`, irregardless of configuration. Found and reported by
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- *) mod_lua: allow nil assignment to trigger apr_table_unset
- (nil assignment to an APR table used to throw an error)
- trunk patch: http://svn.apache.org/r1870650
- 2.4.x patch: svn merge -c 1870650 ^/httpd/httpd/trunk
- +1: covener, jim, humbedooh
-
*) mod_lua: add _table() methods to return raw r/o lua tables that can be
iterated over for headers/notes/subprocess_env:
trunk patch: http://svn.apache.org/r1872455
{
req_table_t *t = ap_lua_check_apr_table(L, 1);
const char *key = luaL_checkstring(L, 2);
- const char *val = luaL_checkstring(L, 3);
+ const char *val = luaL_optlstring(L, 3, NULL, NULL);
+
+ if (!val) {
+ apr_table_unset(t->t, key);
+ return 0;
+ }
+
/* Unless it's the 'notes' table, check for newline chars */
/* t->r will be NULL in case of the connection notes, but since
we aren't going to check anything called 'notes', we can safely