mturk       2005/02/16 03:24:39

  Modified:    jk/native/common jk_status.c
  Log:
  Allow named status update. This will allow setting runtime data using
  any http client, not only interactive status console page.
  Full request api for updating parameters will be documented.
  
  Revision  Changes    Path
  1.15      +20 -8     jakarta-tomcat-connectors/jk/native/common/jk_status.c
  
  Index: jk_status.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_status.c,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- jk_status.c       16 Feb 2005 11:00:45 -0000      1.14
  +++ jk_status.c       16 Feb 2005 11:24:39 -0000      1.15
  @@ -509,19 +509,31 @@
       }
       else  {
           int n = status_int("lb", s->query_string, -1);
  -        worker_record_t *wr;
  +        worker_record_t *wr = NULL;
           ajp_worker_t *a;
  -        if (n < 0 || n >= (int)sw->we->num_of_workers)
  -            return;
  -        w = wc_get_worker_for_name(sw->we->worker_list[n], l);
  +        if (n >= 0 && n < (int)sw->we->num_of_workers)
  +            w = wc_get_worker_for_name(sw->we->worker_list[n], l);
  +        else {
  +            if (!(b = status_cmd("l", s->query_string, buf, sizeof(buf))))
  +                return;
  +            w = wc_get_worker_for_name(b, l);
  +        }
           if (!w || w->type != JK_LB_WORKER_TYPE)
               return;
           lb = (lb_worker_t *)w->worker_private;
           i = status_int("id", s->query_string, -1);
  -        if (i < 0 || i >= (int)lb->num_of_workers)
  +        if (i >= 0 && i < (int)lb->num_of_workers)
  +            wr = &(lb->lb_workers[i]);
  +        else {
  +            for (i = 0; i < (int)lb->num_of_workers; i++) {
  +                if (strcmp(dworker, lb->lb_workers[i].s->name) == 0) {
  +                    wr = &(lb->lb_workers[i]);
  +                    break;            
  +                }
  +            }
  +        }
  +        if (!wr)
               return;
  -
  -        wr = &(lb->lb_workers[i]);
           a  = (ajp_worker_t *)wr->w->worker_private;
   
           if ((b = status_cmd("wr", s->query_string, buf, sizeof(buf))))
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to