> -----Ursprüngliche Nachricht-----
> Von: Mladen Turk
> Gesendet: Dienstag, 3. April 2007 17:25
> An: [email protected]
> 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