On 03/15/2011 04:23 PM, Alex Rousskov wrote: > Support dynamic adaptation plans that cover multiple vectoring points. > > The dynamic adaptation plan is specified using X-Next-Services ICAP > header or eCAP meta-info, as usual. A REQMOD adaptation service may > construct an adaptation plan that starts with REQMOD and ends with > RESPMOD. Multiple adaptations may be planned at each point. > > The natural transaction handling order must be preserved: the plan > cannot go from RESPMOD back to REQMOD. > > Adaptation::History object is used to keep future plan steps when > crossing vectoring points. > > > > This change enables REQMOD services to schedule request-specific > response adaptation. For example, when the request is from a child, > appropriate content filtering needs to be applied to the response. > > In some cases, such decisions can be done in squid.conf, but the > request state required to make the schedule may be too complex or even > not known to Squid core. In most cases, such decisions can be done in > the RESPMOD service (which always has access to request headers), but > that requires sending _all_ responses to that service unconditionally, > which often creates significant performance penalties. In both > scenarios, an adaptation schedule build by a REQMOD service may solve > the problem nicely. > > AFAIK, the 3.1 code this patch is based on has been deployed for many > months without known problems.
Committed to trunk as r11327. Alex.
