Lines 178-198
Link Here
|
178 |
reqtimeout_con_cfg *ccfg = f->ctx; |
178 |
reqtimeout_con_cfg *ccfg = f->ctx; |
179 |
|
179 |
|
180 |
if (ccfg->in_keep_alive) { |
180 |
if (ccfg->in_keep_alive) { |
|
|
181 |
if (mode != AP_MODE_SPECULATIVE) { |
182 |
ccfg->in_keep_alive = 0; |
183 |
} |
181 |
/* For this read, the normal keep-alive timeout must be used */ |
184 |
/* For this read, the normal keep-alive timeout must be used */ |
182 |
ccfg->in_keep_alive = 0; |
|
|
183 |
return ap_get_brigade(f->next, bb, mode, block, readbytes); |
185 |
return ap_get_brigade(f->next, bb, mode, block, readbytes); |
184 |
} |
186 |
} |
185 |
|
187 |
|
186 |
if (block == APR_NONBLOCK_READ && mode == AP_MODE_SPECULATIVE) { |
|
|
187 |
/* The source of these above us in the core is check_pipeline(), which |
188 |
* is between requests but before this filter knows to reset timeouts |
189 |
* during log_transaction(). If they appear elsewhere, just don't |
190 |
* check or extend the time since they won't block and we'll see the |
191 |
* bytes again later |
192 |
*/ |
193 |
return ap_get_brigade(f->next, bb, mode, block, readbytes); |
194 |
} |
195 |
|
196 |
if (ccfg->new_timeout > 0) { |
188 |
if (ccfg->new_timeout > 0) { |
197 |
/* set new timeout */ |
189 |
/* set new timeout */ |
198 |
now = apr_time_now(); |
190 |
now = apr_time_now(); |