Author: rjung Date: Fri Jan 18 12:14:31 2008 New Revision: 613253 URL: http://svn.apache.org/viewvc?rev=613253&view=rev Log: Use map index instead of worker name as return value of internal functions in uri_worker_map. We'll need the indexes later on.
Modified: tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.c Modified: tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.c URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.c?rev=613253&r1=613252&r2=613253&view=diff ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.c (original) +++ tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.c Fri Jan 18 12:14:31 2008 @@ -486,8 +486,8 @@ return rc; } -static const char *find_match(jk_uri_worker_map_t *uw_map, - const char *url, jk_logger_t *l) +static int find_match(jk_uri_worker_map_t *uw_map, + const char *url, jk_logger_t *l) { unsigned int i; @@ -519,7 +519,7 @@ "Found a wildchar match '%s=%s'", uwr->context, uwr->worker_name); JK_TRACE_EXIT(l); - return uwr->worker_name; + return i; } } else if (JK_STRNCMP(uwr->context, url, uwr->context_len) == 0) { @@ -529,20 +529,21 @@ "Found an exact match '%s=%s'", uwr->context, uwr->worker_name); JK_TRACE_EXIT(l); - return uwr->worker_name; + return i; } } } JK_TRACE_EXIT(l); - return NULL; + return -1; } static int is_nomatch(jk_uri_worker_map_t *uw_map, - const char *uri, const char* worker, + const char *uri, int match, jk_logger_t *l) { unsigned int i; + const char *worker = uw_map->maps[match]->worker_name; JK_TRACE_ENTER(l); @@ -596,7 +597,7 @@ unsigned int i; unsigned int vhost_len; int reject_unsafe; - const char *rv = NULL; + int rv = -1; char url[JK_MAX_URI_LEN+1]; JK_TRACE_ENTER(l); @@ -685,12 +686,12 @@ url, uw_map->size); rv = find_match(uw_map, url, l); /* If this doesn't find a match, try without the vhost. */ - if (! rv && vhost_len) { + if (rv < 0 && vhost_len) { rv = find_match(uw_map, &url[vhost_len], l); } /* In case we found a match, check for the unmounts. */ - if (rv && uw_map->nosize) { + if (rv >= 0 && uw_map->nosize) { /* Again first including vhost. */ int rc = is_nomatch(uw_map, url, rv, l); /* If no unmount was find, try without vhost. */ @@ -700,14 +701,18 @@ if (JK_IS_DEBUG_LEVEL(l)) { jk_log(l, JK_LOG_DEBUG, "Denying match for worker %s by nomatch rule", - rv); + uw_map->maps[rv]->worker_name); } - rv = NULL; + rv = -1; } } + if (rv >= 0) { + JK_TRACE_EXIT(l); + return uw_map->maps[rv]->worker_name; + } JK_TRACE_EXIT(l); - return rv; + return NULL; } int uri_worker_map_load(jk_uri_worker_map_t *uw_map, --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]