if (ret == 0) {
// check sorry status if ret == 0
// sorry_check argument 1 means check connection count
+ // Check the connection count(--upper, maxconn)
if (l7vs_sched_sorry_check(srv, 1)) {
if (!sorry_save) {
// save sorry dest to xxx_tmp only first time
}
}
// when select_dest NG
+ // No suitable realservers exist
if (!sorry_save2) {
// save sorry dest to xxx_tmp2 only first time
srv_tmp2 = srv;
l = g_list_next(l);
}
+ // Over maximum connections
if (sorry_save) {
// saved sorry dest is exist
// set sorry-server destination
- //*dest_ret = (struct l7vs_dest *)l7vs_sched_sorry_dest(srv_tmp, NULL, 1);
*dest_ret = (struct l7vs_dest *)l7vs_sched_sorry_dest(srv_tmp, NULL, 0);
if (!*dest_ret) {
LOGGER_PUT_LOG_ERROR(LOG_CAT_L7VSD_SORRY_SERVER,2, "sorry-server dest is NULL");
return -1;
}
*srv_ret = srv_tmp;
+ conn->old_dest = dest_tmp;
conn->cldata_len = len_tmp;
conn->sorry_conn_flag = 1;
val = 1;
+
+ // No suitable realservers exist
} else if (sorry_save2) {
// saved sorry dest2 is exist
// set sorry-server destination
- //*dest_ret = (struct l7vs_dest *)l7vs_sched_sorry_dest(srv_tmp2, NULL, 1);
*dest_ret = (struct l7vs_dest *)l7vs_sched_sorry_dest(srv_tmp2, NULL, 0);
if (!*dest_ret) {
LOGGER_PUT_LOG_ERROR(LOG_CAT_L7VSD_SORRY_SERVER,3, "sorry-server dest is NULL");
return -1;
}
*srv_ret = srv_tmp2;
+ conn->old_dest = dest_tmp2;
conn->cldata_len = len_tmp2;
conn->sorry_conn_flag = 1;
val = 1;