Lines 312-321
Link Here
|
312 |
return create_empty_config(p); |
312 |
return create_empty_config(p); |
313 |
} |
313 |
} |
314 |
|
314 |
|
315 |
static int ap_invoke_filter_init(ap_filter_t *filters) |
315 |
/* Invoke the filter_init_func for all filters with FILTERS where f->r |
|
|
316 |
* matches R. Restricting to a matching R avoids re-running init |
317 |
* functions for filters configured for r->main where r is a |
318 |
* subrequest. */ |
319 |
static int invoke_filter_init(request_rec *r, ap_filter_t *filters) |
316 |
{ |
320 |
{ |
317 |
while (filters) { |
321 |
while (filters) { |
318 |
if (filters->frec->filter_init_func) { |
322 |
if (filters->frec->filter_init_func && filters->r == r) { |
319 |
int result = filters->frec->filter_init_func(filters); |
323 |
int result = filters->frec->filter_init_func(filters); |
320 |
if (result != OK) { |
324 |
if (result != OK) { |
321 |
return result; |
325 |
return result; |
Lines 354-364
Link Here
|
354 |
* run their init function to let them do any magic before we could |
358 |
* run their init function to let them do any magic before we could |
355 |
* start generating data. |
359 |
* start generating data. |
356 |
*/ |
360 |
*/ |
357 |
result = ap_invoke_filter_init(r->input_filters); |
361 |
result = invoke_filter_init(r, r->input_filters); |
358 |
if (result != OK) { |
362 |
if (result != OK) { |
359 |
return result; |
363 |
return result; |
360 |
} |
364 |
} |
361 |
result = ap_invoke_filter_init(r->output_filters); |
365 |
result = invoke_filter_init(r, r->output_filters); |
362 |
if (result != OK) { |
366 |
if (result != OK) { |
363 |
return result; |
367 |
return result; |
364 |
} |
368 |
} |