Author: rjung Date: Thu Jan 10 16:22:09 2008 New Revision: 610997 URL: http://svn.apache.org/viewvc?rev=610997&view=rev Log: Use a function for updating the various params.
Modified: tomcat/connectors/trunk/jk/native/common/jk_status.c 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?rev=610997&r1=610996&r2=610997&view=diff ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_status.c (original) +++ tomcat/connectors/trunk/jk/native/common/jk_status.c Thu Jan 10 16:22:09 2008 @@ -2396,6 +2396,29 @@ } } +static int set_int_if_changed(status_endpoint_t *p, + worker_record_t *wr, + const char *att, + const char *arg, + int min, + int max, + volatile int *param, + const char *lb_name, + jk_logger_t *l) +{ + int i; + status_worker_t *w = p->worker; + i = status_get_int(p, arg, *param, l); + if (i != *param && i >= min && i <= max) { + jk_log(l, JK_LOG_INFO, + "Status worker '%s' setting '%s' for sub worker '%s' of lb worker '%s' to '%i'", + w->name, att, wr->name, lb_name, i); + *param = i; + return JK_TRUE; + } + return JK_FALSE; +} + static int commit_member(jk_ws_service_t *s, status_endpoint_t *p, worker_record_t *wr, @@ -2424,16 +2447,10 @@ rc |= 1; } } - i = status_get_int(p, JK_STATUS_ARG_LBM_FACTOR, - wr->lb_factor, l); - if (i != wr->lb_factor && i > 0) { - jk_log(l, JK_LOG_INFO, - "Status worker '%s' setting 'lbfactor' for sub worker '%s' of lb worker '%s' to '%i'", - w->name, wr->name, lb_name, i); - wr->lb_factor = i; + if (set_int_if_changed(p, wr, "lbfactor", JK_STATUS_ARG_LBM_FACTOR, + 1, INT_MAX, &wr->lb_factor, lb_name, l)) /* Recalculate the load multiplicators wrt. lb_factor */ rc |= 2; - } if ((rv = status_get_string(p, JK_STATUS_ARG_LBM_ROUTE, NULL, &arg, l)) == JK_TRUE) { if (strncmp(wr->route, arg, JK_SHM_STR_SIZ)) { @@ -2472,15 +2489,9 @@ rc |= 4; } } - i = status_get_int(p, JK_STATUS_ARG_LBM_DISTANCE, - wr->distance, l); - if (i != wr->distance && i > 0) { - jk_log(l, JK_LOG_INFO, - "Status worker '%s' setting 'distance' for sub worker '%s' of lb worker '%s' to '%i'", - w->name, wr->name, lb_name, i); - wr->distance = i; + if (set_int_if_changed(p, wr, "distance", JK_STATUS_ARG_LBM_DISTANCE, + 0, INT_MAX, &wr->distance, lb_name, l)) rc |= 4; - } if (rc) wr->sequence++; return rc; @@ -2554,25 +2565,16 @@ snprintf(vname, 32-1, "" JK_STATUS_ARG_MULT_VALUE_BASE "%d", j); if (!strcmp(attribute, JK_STATUS_ARG_LBM_FACTOR)) { - i = status_get_int(p, vname, wr->lb_factor, l); - if (i != wr->lb_factor && i > 0) { - jk_log(l, JK_LOG_INFO, - "Status worker '%s' setting 'lbfactor' for sub worker '%s' of lb worker '%s' to '%i'", - w->name, wr->name, name, i); - wr->lb_factor = i; + if (set_int_if_changed(p, wr, "lbfactor", vname, + 1, INT_MAX, &wr->lb_factor, name, l)) { rc = 2; sync_needed = JK_TRUE; } } else if (!strcmp(attribute, JK_STATUS_ARG_LBM_DISTANCE)) { - i = status_get_int(p, vname, wr->distance, l); - if (i != wr->distance && i > 0) { - jk_log(l, JK_LOG_INFO, - "Status worker '%s' setting 'distance' for sub worker '%s' of lb worker '%s' to '%i'", - w->name, wr->name, name, i); - wr->distance = i; + if (set_int_if_changed(p, wr, "distance", vname, + 0, INT_MAX, &wr->distance, name, l)) sync_needed = JK_TRUE; - } } else { int rv = status_get_string(p, vname, NULL, &arg, l); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]