> -----Ursprüngliche Nachricht----- > Von: Mladen Turk > Gesendet: Dienstag, 3. April 2007 17:25 > An: dev@httpd.apache.org > Betreff: Re: Bug 41897 / Session-Stickiness with mod_proxy_balancer >
> > stickysession=JSESSIONID stickysession=;jsessionid > stickysession=MYSESSION > > would mean: > balancer->sticky[0]=JSESSIONID > balancer->sticky[1]=;jsessionid > balancer->sticky[2]=MYSESSION > > balancer->sticky_case[0]=1 > balancer->sticky_case[1]=1 > balancer->sticky_case[2]=1 > > OTOH > stickysession="JSESSIONID [c]" stickysession="MYSESSION [E]" > or perhaps a different notation ... > stickysession=Cookie:JSESSIONID stickysession=Env:MYSESSION > > > would mean: > balancer->sticky[0]=JSESSIONID > balancer->sticky[1]=NULL > balancer->sticky[2]=MYSESSION > > balancer->sticky_case[0]=0 > balancer->sticky_case[1]=-1 > balancer->sticky_case[2]=1 Hm. I am not quite sure if I get your idea right now. So this is what I understand: 1. You want to change sticky in struct proxy_balancer from const char *sticky to something like const char *sticky[MAX_ENTRIES] Additionally you want to add something like int sticky_case[MAX_ENTRIES] to struct proxy_balancer, right? 2. If balancer->sticky_case[ ] == 1 you want to do a case sensitive search whereas if balancer->sticky_case[ ] == 0 you want to do a case insensitive search. 3. stickysession settings with [C] or [c] are always put in balancer->sticky[0] stickysession settings with [P] or [p] are always put in balancer->sticky[1] stickysession settings with [E] or [e] are always put in balancer->sticky[2] I does not matter in which order you configure this. So stickysession="JSESSIONID [c]" stickysession="MYSESSION [E]" and stickysession="MYSESSION [E]" stickysession="JSESSIONID [c]" both would result in balancer->sticky[0]=JSESSIONID balancer->sticky[1]=NULL balancer->sticky[2]=MYSESSION 4. You will pass balancer->sticky[0] as the name parameter to get_cookie_param and balancer->sticky[1] as the name parameter to get_path_param. 5. What do you do if balancer->sticky[ ] is NULL? Skip the search? 6. You said that <cite> In case the params are omitted the behavior would be as follows: stickysession="JSESSIONID" -> balancer->sticky-[0] stickysession=";jsessionid" -> balancer->sticky-[1] stickysession="FOO" -> balancer->sticky-[2] </cite> Why is FOO stored in balancer->sticky-[2]? Is it because stickysession="FOO" is the 3rd occurrence of stickysession for this worker or is it because of the name "FOO"? 7. What is the purpose of [E] [e]? Where will you search for balancer->sticky[2]? In r->subprocess_env? Regards Rüdiger