tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <seb...@gmail.com>
Subject Re: svn commit: r753147 - /tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
Date Fri, 13 Mar 2009 14:37:56 GMT
On 13/03/2009, mturk@apache.org <mturk@apache.org> wrote:
> Author: mturk
>  Date: Fri Mar 13 07:25:50 2009
>  New Revision: 753147
>
>  URL: http://svn.apache.org/viewvc?rev=753147&view=rev
>  Log:
>  Use inplace rewrite of dot part. We are safe to do that cause sessionid is allocated
for every request

Might be good to add that assumption to the documentation in the source file?

>  Modified:
>     tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
>
>  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=753147&r1=753146&r2=753147&view=diff
>  ==============================================================================
>  --- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c (original)
>  +++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c Fri Mar 13 07:25:50 2009
>  @@ -689,7 +689,7 @@
>
>   static int find_by_session(jk_ws_service_t *s,
>                             lb_worker_t *p,
>  -                           const char *name,
>  +                           char *sessionid,

Would it not be better to keep the const modifier here?
Likewise in the other changed functions.

>                             jk_logger_t *l)
>   {
>
>  @@ -697,7 +697,7 @@
>      unsigned int i;
>
>      for (i = 0; i < p->num_of_workers; i++) {
>  -        if (strcmp(p->lb_workers[i].route, name) == 0) {
>  +        if (strcmp(p->lb_workers[i].route, sessionid) == 0) {
>              rc = i;
>              break;
>          }
>  @@ -707,33 +707,22 @@
>
>   static int find_best_bydomain(jk_ws_service_t *s,
>                                lb_worker_t *p,
>  -                              const char *name,
>  +                              char *sessionid,
>                                int *states,
>                                jk_logger_t *l)
>   {
>      unsigned int i;
>      int d = 0;
>      jk_uint64_t curmin = 0;
>  -    char rdomain[JK_SHM_STR_SIZ+1];
>      int candidate = -1;
>      int activation;
>      lb_sub_worker_t wr;
>  -    const char *domain = strchr(name, '.');
>  +    char *idpart = strchr(sessionid, '.');
>  +    char *domain = sessionid;
>
>  -    if (domain) {
>  -        size_t dl = (size_t)(domain - name);
>  -        if (dl >= JK_SHM_STR_SIZ) {
>  -            /* Overflow */
>  -            return -1;
>  -        }
>  -        else {
>  -            strncpy(rdomain, name, dl);
>  -            rdomain[dl] = '\0';
>  -            domain = rdomain;
>  -        }
>  +    if (idpart) {
>  +        *idpart = '\0';
>      }
>  -    else
>  -        domain = name;
>      /* First try to see if we have available candidate */
>      for (i = 0; i < p->num_of_workers; i++) {
>          /* Skip all workers that are not member of domain */
>  @@ -759,6 +748,10 @@
>              }
>          }
>      }
>  +    if (idpart) {
>  +        /* Restore original char */
>  +        *idpart = '.';
>  +    }
>      return candidate;
>   }
>
>  @@ -810,17 +803,17 @@
>
>   static int find_bysession_route(jk_ws_service_t *s,
>                                  lb_worker_t *p,
>  -                                const char *name,
>  +                                char *sessionid,
>                                  int *states,
>                                  jk_logger_t *l)
>   {
>      int uses_domain  = 0;
>      int candidate = -1;
>
>  -    candidate = find_by_session(s, p, name, l);
>  +    candidate = find_by_session(s, p, sessionid, l);
>      if (candidate < 0) {
>          uses_domain = 1;
>  -        candidate = find_best_bydomain(s, p, name, states, l);
>  +        candidate = find_best_bydomain(s, p, sessionid, states, l);
>      }
>      if (candidate >= 0) {
>          lb_sub_worker_t wr = p->lb_workers[candidate];
>  @@ -871,7 +864,7 @@
>   {
>      int rc = -1;
>      unsigned int i;
>  -    const char *redirect = NULL;
>  +    char *redirect = NULL;
>
>      for (i = 0; i < p->num_of_workers; i++) {
>          if (strlen(p->lb_workers[i].redirect)) {
>
>
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>  For additional commands, e-mail: dev-help@tomcat.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message