From: [EMAIL PROTECTED]
Reply-To: "Tomcat Developers List" <tomcat-dev@jakarta.apache.org>
To: [EMAIL PROTECTED]
Subject: cvs commit: jakarta-tomcat-connectors/jk/native/common
jk_uri_worker_map.c jk_uri_worker_map.h
Date: 16 Jun 2005 06:28:38 -0000
mturk 2005/06/15 23:28:38
Modified: jk/native/common jk_uri_worker_map.c jk_uri_worker_map.h
Log:
Do not modify the provided uri inplace, but rather use the stack buffer
for
that. Also change the map_uri_to_worker to be 'const char'.
Revision Changes Path
1.56 +17 -12
jakarta-tomcat-connectors/jk/native/common/jk_uri_worker_map.c
Index: jk_uri_worker_map.c
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_uri_worker_map.c,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- jk_uri_worker_map.c 18 May 2005 11:09:55 -0000 1.55
+++ jk_uri_worker_map.c 16 Jun 2005 06:28:38 -0000 1.56
@@ -411,12 +411,13 @@
const char *map_uri_to_worker(jk_uri_worker_map_t *uw_map,
- char *uri, jk_logger_t *l)
+ const char *uri, jk_logger_t *l)
{
unsigned int i;
char *url_rewrite;
- char rewrite_char = ';';
const char *rv = NULL;
+ const char *url = uri;
+ char buf[JK_MAX_URI_LEN+1];
JK_TRACE_ENTER(l);
if (!uw_map || !uri) {
@@ -432,10 +433,16 @@
}
url_rewrite = strstr(uri, JK_PATH_SESSION_IDENTIFIER);
if (url_rewrite) {
- rewrite_char = *url_rewrite;
- *url_rewrite = '\0';
+ size_t len = url_rewrite - uri;
+ if (len > JK_MAX_URI_LEN)
+ len = JK_MAX_URI_LEN;
+ strncpy(buf, uri, len);
+ buf[len] = '\0';
+ url = &buf[0];
+ if (JK_IS_DEBUG_LEVEL(l))
+ jk_log(l, JK_LOG_DEBUG, "Removing Session path '%s' URI
'%s'",
+ url_rewrite, url);
}
-
if (uw_map->fname)
uri_worker_map_update(uw_map, l);
if (JK_IS_DEBUG_LEVEL(l))
@@ -456,7 +463,7 @@
if (uwr->match_type & MATCH_TYPE_WILDCHAR_PATH) {
const char *wname;
/* Map is already sorted by context_len */
- if (wildchar_match(uri, uwr->context,
+ if (wildchar_match(url, uwr->context,
#ifdef WIN32
1
#else
@@ -473,8 +480,8 @@
goto cleanup;
}
}
- else if (JK_STRNCMP(uwr->context, uri, uwr->context_len) == 0)
{
- if (strlen(uri) == uwr->context_len) {
+ else if (JK_STRNCMP(uwr->context, url, uwr->context_len) == 0)
{
+ if (strlen(url) == uwr->context_len) {
if (JK_IS_DEBUG_LEVEL(l))
jk_log(l, JK_LOG_DEBUG,
"Found an exact match %s -> %s",
@@ -489,10 +496,8 @@
JK_TRACE_EXIT(l);
cleanup:
- if (url_rewrite)
- *url_rewrite = rewrite_char;
if (rv && uw_map->nosize) {
- if (is_nomap_match(uw_map, uri, rv, l)) {
+ if (is_nomap_match(uw_map, url, rv, l)) {
if (JK_IS_DEBUG_LEVEL(l))
jk_log(l, JK_LOG_DEBUG,
"Denying matching for worker %s by nomatch
rule",
1.20 +3 -2
jakarta-tomcat-connectors/jk/native/common/jk_uri_worker_map.h
Index: jk_uri_worker_map.h
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_uri_worker_map.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- jk_uri_worker_map.h 26 Apr 2005 15:28:18 -0000 1.19
+++ jk_uri_worker_map.h 16 Jun 2005 06:28:38 -0000 1.20
@@ -52,6 +52,7 @@
#define MATCH_TYPE_DISABLED 0x2000
#define MATCH_TYPE_STOPPED 0x4000
+#define JK_MAX_URI_LEN 4095
struct uri_worker_record
{
/* Original uri for logging */
@@ -113,7 +114,7 @@
const char *puri, const char *pworker,
jk_logger_t *l);
const char *map_uri_to_worker(jk_uri_worker_map_t *uw_map,
- char *uri, jk_logger_t *l);
+ const char *uri, jk_logger_t *l);
int uri_worker_map_load(jk_uri_worker_map_t *uw_map,
jk_logger_t *l);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]