Author: mturk
Date: Mon Sep 22 03:52:16 2008
New Revision: 697779
URL: http://svn.apache.org/viewvc?rev=697779&view=rev
Log:
Add session_cookie and session_path directives for load balancer
Modified:
tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h
tomcat/connectors/trunk/jk/native/common/jk_shm.h
tomcat/connectors/trunk/jk/native/common/jk_util.c
tomcat/connectors/trunk/jk/native/common/jk_util.h
tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
Modified: tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c?rev=697779&r1=697778&r2=697779&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c Mon Sep 22 03:52:16
2008
@@ -301,6 +301,8 @@
p->lblock = p->s->lblock;
p->max_packet_size = p->s->max_packet_size;
p->sequence = p->s->h.sequence;
+ strncpy(p->session_cookie, p->s->session_cookie, JK_SHM_STR_SIZ);
+ strncpy(p->session_path, p->s->session_path, JK_SHM_STR_SIZ);
for (i = 0; i < p->num_of_workers; i++) {
lb_sub_worker_t *w = &p->lb_workers[i];
@@ -348,6 +350,8 @@
p->s->lblock = p->lblock;
p->s->max_packet_size = p->max_packet_size;
p->s->h.sequence = p->sequence;
+ strncpy(p->s->session_cookie, p->session_cookie, JK_SHM_STR_SIZ);
+ strncpy(p->s->session_path, p->session_path, JK_SHM_STR_SIZ);
for (i = 0; i < p->num_of_workers; i++) {
lb_sub_worker_t *w = &p->lb_workers[i];
@@ -468,12 +472,12 @@
/* Retrieve session id from the cookie or the parameter
* (parameter first)
*/
-static char *get_sessionid(jk_ws_service_t *s, jk_logger_t *l)
+static char *get_sessionid(jk_ws_service_t *s, lb_worker_t *p, jk_logger_t *l)
{
char *val;
- val = get_path_param(s, JK_PATH_SESSION_IDENTIFIER);
+ val = get_path_param(s, p->session_path);
if (!val) {
- val = get_cookie(s, JK_SESSION_IDENTIFIER);
+ val = get_cookie(s, p->session_cookie);
}
if (val && !*val) {
/* TODO: For now only log the empty sessions.
@@ -1070,7 +1074,7 @@
/* Use sessionid only if sticky_session is
* defined for this load balancer
*/
- sessionid = get_sessionid(s, l);
+ sessionid = get_sessionid(s, p->worker, l);
}
if (JK_IS_DEBUG_LEVEL(l))
jk_log(l, JK_LOG_DEBUG,
@@ -1605,6 +1609,14 @@
p->lbmethod = jk_get_lb_method(props, p->name);
p->lblock = jk_get_lb_lock(props, p->name);
+ strncpy(p->session_cookie,
+ jk_get_lb_session_cookie(props, p->name, JK_SESSION_IDENTIFIER),
+ JK_SHM_STR_SIZ);
+ strncpy(p->session_path,
+ jk_get_lb_session_path(props, p->name, JK_PATH_SESSION_IDENTIFIER),
+ JK_SHM_STR_SIZ);
+ strcppy(p->s->session_cookie, p->session_cookie);
+ strcppy(p->s->session_path, p->session_path);
JK_INIT_CS(&(p->cs), i);
if (i == JK_FALSE) {
Modified: tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h?rev=697779&r1=697778&r2=697779&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h Mon Sep 22 03:52:16
2008
@@ -194,7 +194,10 @@
int maintain_time;
unsigned int max_packet_size;
unsigned int next_offset;
-
+ /* Session cookie */
+ char session_cookie[JK_SHM_STR_SIZ+1];
+ /* Session path */
+ char session_path[JK_SHM_STR_SIZ+1];
};
typedef struct lb_worker lb_worker_t;
Modified: tomcat/connectors/trunk/jk/native/common/jk_shm.h
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_shm.h?rev=697779&r1=697778&r2=697779&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_shm.h (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_shm.h Mon Sep 22 03:52:16 2008
@@ -165,6 +165,11 @@
int lblock;
unsigned int max_packet_size;
volatile time_t last_maintain_time;
+ /* Session cookie */
+ char session_cookie[JK_SHM_STR_SIZ+1];
+ /* Session path */
+ char session_path[JK_SHM_STR_SIZ+1];
+
};
typedef struct jk_shm_lb_worker jk_shm_lb_worker_t;
Modified: tomcat/connectors/trunk/jk/native/common/jk_util.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_util.c?rev=697779&r1=697778&r2=697779&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_util.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_util.c Mon Sep 22 03:52:16 2008
@@ -69,6 +69,9 @@
#define BALANCE_WORKERS ("balance_workers")
#define STICKY_SESSION ("sticky_session")
#define STICKY_SESSION_FORCE ("sticky_session_force")
+#define SESSION_COOKIE_OF_WORKER ("session_cookie")
+#define SESSION_PATH_OF_WORKER ("session_path")
+
#define LOCAL_WORKER_DEPRECATED ("local_worker")
#define LOCAL_WORKER_ONLY_DEPRECATED ("local_worker_only")
#define JVM_ROUTE_OF_WORKER_DEPRECATED ("jvm_route")
@@ -183,6 +186,8 @@
LOAD_FACTOR_OF_WORKER,
STICKY_SESSION,
STICKY_SESSION_FORCE,
+ SESSION_COOKIE_OF_WORKER,
+ SESSION_PATH_OF_WORKER,
LOCAL_WORKER_DEPRECATED,
LOCAL_WORKER_ONLY_DEPRECATED,
JVM_ROUTE_OF_WORKER_DEPRECATED,
@@ -272,6 +277,8 @@
BALANCE_WORKERS,
STICKY_SESSION,
STICKY_SESSION_FORCE,
+ SESSION_COOKIE_OF_WORKER,
+ SESSION_PATH_OF_WORKER,
LOCAL_WORKER_DEPRECATED,
LOCAL_WORKER_ONLY_DEPRECATED,
JVM_ROUTE_OF_WORKER_DEPRECATED,
@@ -1812,6 +1819,27 @@
return JK_FALSE;
}
+const char *jk_get_lb_session_cookie(jk_map_t *m, const char *wname, const
char *def)
+{
+ char buf[1024];
+ if (!m || !wname) {
+ return NULL;
+ }
+ MAKE_WORKER_PARAM(SESSION_COOKIE_OF_WORKER);
+ return jk_map_get_string(m, buf, def);
+}
+
+const char *jk_get_lb_session_path(jk_map_t *m, const char *wname, const char
*def)
+{
+ char buf[1024];
+ if (!m || !wname) {
+ return NULL;
+ }
+ MAKE_WORKER_PARAM(SESSION_PATH_OF_WORKER);
+ return jk_map_get_string(m, buf, def);
+}
+
+
int is_http_status_fail(unsigned int http_status_fail_num,
int *http_status_fail, int status)
{
Modified: tomcat/connectors/trunk/jk/native/common/jk_util.h
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_util.h?rev=697779&r1=697778&r2=697779&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_util.h (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_util.h Mon Sep 22 03:52:16 2008
@@ -104,6 +104,10 @@
const char *jk_get_worker_secret_key(jk_map_t *m, const char *wname);
+const char *jk_get_lb_session_cookie(jk_map_t *m, const char *wname, const
char *def);
+
+const char *jk_get_lb_session_path(jk_map_t *m, const char *wname, const char
*def);
+
int jk_get_worker_retries(jk_map_t *m, const char *wname, int def);
int jk_get_is_worker_disabled(jk_map_t *m, const char *wname);
Modified: tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml?rev=697779&r1=697778&r2=697779&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml Mon Sep 22
03:52:16 2008
@@ -43,6 +43,10 @@
<br />
<subsection name="Native">
<changelog>
+ <update>
+ Added session_cookie and session_path for configuring
+ default session identifiers. (mturk)
+ </update>
<fix>
<bug>45812</bug>: Add done() service method that
causes sending EOS bucket for Apache httpd 2.x.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]