Author: rjung Date: Sat Nov 18 17:11:04 2006 New Revision: 476673 URL: http://svn.apache.org/viewvc?view=rev&rev=476673 Log: - Deprecated MATCH_TYPEs not used any longer - JkMountFile reload didn't really work when the original file and the new file contained rules, which only differed by the existence of "!". The logic only allowed to change a "-" prefix between reloads, but not "!". Now we also check the MATCH_TYPE_NOMATCH bit when we check for duplicates. (likely fix for BZ 40997)
Modified: tomcat/connectors/trunk/jk/native/common/jk_status.c tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.c tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.h Modified: tomcat/connectors/trunk/jk/native/common/jk_status.c URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_status.c?view=diff&rev=476673&r1=476672&r2=476673 ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_status.c (original) +++ tomcat/connectors/trunk/jk/native/common/jk_status.c Sat Nov 18 17:11:04 2006 @@ -220,14 +220,17 @@ static const char *status_val_match(unsigned int match) { - if (match & MATCH_TYPE_STOPPED) - return "Stopped"; - else if (match & MATCH_TYPE_DISABLED) + if (match & MATCH_TYPE_DISABLED) return "Disabled"; else if (match & MATCH_TYPE_NO_MATCH) return "Unmount"; else if (match & MATCH_TYPE_EXACT) return "Exact"; + else if (match & MATCH_TYPE_WILDCHAR_PATH) + return "Wildchar"; +/* deprecated + else if (match & MATCH_TYPE_STOPPED) + return "Stopped"; else if (match & MATCH_TYPE_CONTEXT) return "Context"; else if (match & MATCH_TYPE_CONTEXT_PATH) @@ -236,8 +239,7 @@ return "Suffix"; else if (match & MATCH_TYPE_GENERAL_SUFFIX) return "General Suffix"; - else if (match & MATCH_TYPE_WILDCHAR_PATH) - return "Wildchar"; + */ else return "Error"; } 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?view=diff&rev=476673&r1=476672&r2=476673 ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.c (original) +++ tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.c Sat Nov 18 17:11:04 2006 @@ -245,25 +245,27 @@ for (i = 0; i < uw_map->size; i++) { uwr = uw_map->maps[i]; if (strcmp(uwr->uri, puri) == 0) { - /* Update disabled flag */ - if (match_type & MATCH_TYPE_DISABLED) - uwr->match_type |= MATCH_TYPE_DISABLED; - else - uwr->match_type &= ~MATCH_TYPE_DISABLED; - if (strcmp(uwr->worker_name, worker) == 0) { - jk_log(l, JK_LOG_DEBUG, - "map rule %s=%s already exists", - puri, worker); - JK_TRACE_EXIT(l); - return JK_TRUE; - } - else { - jk_log(l, JK_LOG_DEBUG, - "changing map rule %s=%s ", - puri, worker); - uwr->worker_name = jk_pool_strdup(&uw_map->p, worker); - JK_TRACE_EXIT(l); - return JK_TRUE; + if (uwr->match_type & MATCH_TYPE_NO_MATCH == match_type & MATCH_TYPE_NO_MATCH) { + /* Update disabled flag */ + if (match_type & MATCH_TYPE_DISABLED) + uwr->match_type |= MATCH_TYPE_DISABLED; + else + uwr->match_type &= ~MATCH_TYPE_DISABLED; + if (strcmp(uwr->worker_name, worker) == 0) { + jk_log(l, JK_LOG_DEBUG, + "map rule %s=%s already exists", + puri, worker); + JK_TRACE_EXIT(l); + return JK_TRUE; + } + else { + jk_log(l, JK_LOG_DEBUG, + "changing map rule %s=%s ", + puri, worker); + uwr->worker_name = jk_pool_strdup(&uw_map->p, worker); + JK_TRACE_EXIT(l); + return JK_TRUE; + } } } } @@ -434,7 +436,7 @@ if (!(uwr->match_type & MATCH_TYPE_NO_MATCH) || (uwr->match_type & MATCH_TYPE_DISABLED)) continue; - /* Check only mathing workers */ + /* Check only matching workers */ if (strcmp(uwr->worker_name, worker)) continue; if (uwr->match_type & MATCH_TYPE_WILDCHAR_PATH) { Modified: tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.h URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.h?view=diff&rev=476673&r1=476672&r2=476673 ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.h (original) +++ tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.h Sat Nov 18 17:11:04 2006 @@ -40,17 +40,27 @@ #define JK_URIMAP_RELOAD 60 #define MATCH_TYPE_EXACT 0x0001 +/* deprecated #define MATCH_TYPE_CONTEXT 0x0002 + */ /* match all context path URIs with a path component suffix */ +/* deprecated #define MATCH_TYPE_CONTEXT_PATH 0x0004 + */ +/* deprecated #define MATCH_TYPE_SUFFIX 0x0010 + */ /* match all URIs of the form *ext */ +/* deprecated #define MATCH_TYPE_GENERAL_SUFFIX 0x0020 + */ /* match multiple wild characters (*) and (?) */ #define MATCH_TYPE_WILDCHAR_PATH 0x0040 #define MATCH_TYPE_NO_MATCH 0x1000 #define MATCH_TYPE_DISABLED 0x2000 +/* deprecated #define MATCH_TYPE_STOPPED 0x4000 + */ #define JK_MAX_URI_LEN 4095 struct uri_worker_record --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]