This is a fix for #992 to allow drop to work with mod_http2

This commit is contained in:
Barry Pollard 2017-01-21 17:10:54 +00:00 коммит произвёл Felipe Zimmerle
Родитель b6293988fe
Коммит 019edfa1a9
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E6DFB08CE8B11277
1 изменённых файлов: 12 добавлений и 2 удалений

Просмотреть файл

@ -265,8 +265,18 @@ int perform_interception(modsec_rec *msr) {
#if !defined(WIN32) && !defined(VERSION_NGINX)
{
extern module core_module;
apr_socket_t *csd = ap_get_module_config(msr->r->connection->conn_config,
&core_module);
apr_socket_t *csd;
/* For mod_http2 used by HTTP/2 there is a virtual connection so must go through
* master to get the main connection or the drop request doesn't seem to do anything.
* For HTTP/1.1 master will not be defined so just go through normal connection.
* More details here: https://github.com/icing/mod_h2/issues/127
*/
if (msr->r->connection->master) {
csd = ap_get_module_config(msr->r->connection->master->conn_config, &core_module);
} else {
csd = ap_get_module_config(msr->r->connection->conn_config, &core_module);
}
if (csd) {
if (apr_socket_close(csd) == APR_SUCCESS) {