struct conn_src conn_src; /* connection source settings */
- struct server *tracknext, *track; /* next server in a tracking list, tracked server */
+ struct server *track; /* the server we're currently tracking, if any */
+ struct server *trackers; /* the list of servers tracking us, if any */
+ struct server *tracknext; /* next server tracking <track> in <track>'s trackers list */
char *trackit; /* temporary variable to make assignment deferrable */
int consecutive_errors; /* current number of consecutive errors */
int consecutive_errors_limit; /* number of consecutive errors that triggers an event */
s->counters.down_trans++;
- if (s->state & SRV_CHECKED)
- for (srv = s->tracknext; srv; srv = srv->tracknext)
- if (!(srv->state & SRV_MAINTAIN))
- /* Only notify tracking servers that are not already in maintenance. */
- set_server_down(&srv->check);
+ for (srv = s->trackers; srv; srv = srv->tracknext)
+ if (!(srv->state & SRV_MAINTAIN))
+ /* Only notify tracking servers that are not already in maintenance. */
+ set_server_down(&srv->check);
}
check->health = 0; /* failure */
Warning("%s.\n", trash.str);
send_log(s->proxy, LOG_NOTICE, "%s.\n", trash.str);
- if (s->state & SRV_CHECKED)
- for (srv = s->tracknext; srv; srv = srv->tracknext)
- if (!(srv->state & SRV_MAINTAIN))
- /* Only notify tracking servers if they're not in maintenance. */
- set_server_up(&srv->check);
+ for (srv = s->trackers; srv; srv = srv->tracknext)
+ if (!(srv->state & SRV_MAINTAIN))
+ /* Only notify tracking servers if they're not in maintenance. */
+ set_server_up(&srv->check);
}
if (check->health >= check->rise)
if (!s->proxy->srv_bck && !s->proxy->srv_act)
set_backend_down(s->proxy);
- if (s->state & SRV_CHECKED)
- for(srv = s->tracknext; srv; srv = srv->tracknext)
- set_server_disabled(&srv->check);
+ for (srv = s->trackers; srv; srv = srv->tracknext)
+ set_server_disabled(&srv->check);
}
static void set_server_enabled(struct check *check) {
Warning("%s.\n", trash.str);
send_log(s->proxy, LOG_NOTICE, "%s.\n", trash.str);
- if (s->state & SRV_CHECKED)
- for(srv = s->tracknext; srv; srv = srv->tracknext)
- set_server_enabled(&srv->check);
+ for (srv = s->trackers; srv; srv = srv->tracknext)
+ set_server_enabled(&srv->check);
}
static void check_failed(struct check *check)