Good morning All. Just tried Jean's recent change to mod_jk2.c and _pleased_ to say JkUriSet now registers correctly the same as a [uri] section, and can access /admin with only a <Location> in the httpd.conf. I did note there were duplicate uri objects created (based on their name) if the same uri spec was in both files, but in any case this is a lot closer to theory than in the past. Thanks Jean.
Norm ----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, April 01, 2004 12:22 AM Subject: cvs commit: jakarta-tomcat-connectors/jk/native2/server/apache2 mod_jk2.c > jfclere 2004/03/31 06:22:04 > > Modified: jk/native2/server/apache2 mod_jk2.c > Log: > Fix handling of id added in jk2_create_dir_config(). > I do not see why we need this id... May because jk2_merge_dir_config() > was buggy. > That fixes PR 18472 and 28916. > > Revision Changes Path > 1.82 +33 -16 jakarta-tomcat-connectors/jk/native2/server/apache2/mod_jk2.c > > Index: mod_jk2.c > =================================================================== > RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/mod_jk2.c,v > retrieving revision 1.81 > retrieving revision 1.82 > diff -u -r1.81 -r1.82 > --- mod_jk2.c 21 Mar 2004 09:44:30 -0000 1.81 > +++ mod_jk2.c 31 Mar 2004 14:22:04 -0000 1.82 > @@ -221,14 +221,25 @@ > strcpy(tmp_full_url, s->server_hostname); > strcat(tmp_full_url, uriEnv->uri); > } > + > uriEnv->mbean->setAttribute(workerEnv->globalEnv, uriEnv->mbean, > "uri", tmp_full_url); > uriEnv->mbean->setAttribute(workerEnv->globalEnv, uriEnv->mbean, > "path", cmd->path); > + > uriEnv->name = tmp_virtual; > uriEnv->virtual = tmp_virtual; > > + } else { > + /* > + * The jk2_create_dir_config added an id to uri and path > + * we have to correct it here. > + */ > + > + uriEnv->mbean->setAttribute(workerEnv->globalEnv, uriEnv->mbean, > + "uri", cmd->path); > } > + > /* now lets actually add the parameter set in the <Location> block */ > uriEnv->mbean->setAttribute(workerEnv->globalEnv, uriEnv->mbean, > (char *)name, (void *)val); > @@ -293,40 +304,46 @@ > jk_uriEnv_t *child = (jk_uriEnv_t *)childv; > jk_uriEnv_t *parent = (jk_uriEnv_t *)parentv; > jk_uriEnv_t *winner = NULL; > - jk_uriEnv_t *loser = NULL; > + char *hostchild; > + char *hostparent; > > if (child == NULL || child->uri == NULL || child->workerName == NULL) { > winner = parent; > - loser = child; > } > else if (parent == NULL || parent->uri == NULL > || parent->workerName == NULL) { > winner = child; > - loser = parent; > /* interresting bit... so far they are equal ... */ > } > else if (strlen(parent->uri) > strlen(child->uri)) { > winner = parent; > - loser = child; > + } > + else if (strlen(parent->uri) == strlen(child->uri)) { > + /* Try the virtual host to decide */ > + hostchild = child->mbean->getAttribute(workerEnv->globalEnv, child->mbean,"host"); > + hostparent = parent->mbean->getAttribute(workerEnv->globalEnv, parent->mbean,"host"); > + if (hostchild == NULL) > + winner = parent; > + if (hostparent == NULL) > + winner = child; > + if (winner == NULL) { > + if (strlen(hostchild) > strlen(hostparent)) > + winner = child; > + else > + winner = parent; > + } > } > else { > winner = child; > - loser = parent; > } > > /* Do we merge loser into winner - i.e. inherit properties ? */ > > - /*if ( winner == child ) > - fprintf(stderr, "Going with the child\n"); > - else if ( winner == parent ) > - fprintf(stderr, "Going with the parent\n"); > - else > - fprintf(stderr, "Going with NULL\n"); > - */ > - fprintf(stderr, "Merging %s %s %s\n", > - (winner == NULL || winner->uri == NULL) ? "" : winner->uri, > + ap_log_perror(APLOG_MARK, APLOG_DEBUG, 0, NULL, > + "mod_jk2 Merging %s %s winner: %s\n", > (child == NULL || child->uri == NULL) ? "" : child->uri, > - (parent == NULL || parent->uri == NULL) ? "" : parent->uri); > + (parent == NULL || parent->uri == NULL) ? "" : parent->uri, > + (winner == child) ? "parent" : "child" ); > > > return (void *)winner; > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]