ETCP: loadbalancer исключает down-линки, link_status=1 при инициализации
- etcp_loadbalancer_select_link() теперь пропускает линки со статусом != 1 - При установке initialized=1 сразу выставляется link_status=1 (up) - Добавлено логирование при изменении статуса линка на UP
This commit is contained in:
1 parent
bf33ae4e47
commit
0490c846c2
2 files changed
+7
-1
No files matched your search
@@ -803,6 +803,9 @@ static void etcp_connections_read_callback_socket(socket_t sock, void* arg) {
|
||||
|
||||
memory_pool_free(e_sock->instance->pkt_pool, pkt);
|
||||
link->initialized = 1;// получен init request (server), считаем линк уже готовым к работе
|
||||
link->link_status = 1; // Link is up after successful initialization
|
||||
DEBUG_INFO(DEBUG_CATEGORY_CONNECTION, "[%s] Link %p (local_id=%d) initialized and marked as UP (server)",
|
||||
link->etcp->log_name, link, link->local_link_id);
|
||||
|
||||
// Start keepalive timer
|
||||
if (!link->keepalive_timer && link->keepalive_interval > 0) {
|
||||
@@ -910,6 +913,9 @@ process_decrypted:
|
||||
// Mark link as initialized
|
||||
// DEBUG_DEBUG(DEBUG_CATEGORY_CONNECTION, "Setting link->initialized=1, link=%p, is_server=%d", link, link->is_server);
|
||||
link->initialized = 1;// получен init response (client)
|
||||
link->link_status = 1; // Link is up after successful initialization
|
||||
DEBUG_INFO(DEBUG_CATEGORY_CONNECTION, "[%s] Link %p (local_id=%d) initialized and marked as UP (client)",
|
||||
link->etcp->log_name, link, link->local_link_id);
|
||||
|
||||
// Start keepalive timer
|
||||
if (!link->keepalive_timer && link->keepalive_interval > 0) {
|
||||
|
||||
@@ -44,7 +44,7 @@ struct ETCP_LINK* etcp_loadbalancer_select_link(struct ETCP_CONN* etcp) {
|
||||
// link_index, link, link->initialized, link->shaper_timer==NULL?1:0,
|
||||
// (unsigned long long)link->shaper_load_time_tb, (unsigned long long)link->shaper_sub_nanotime);
|
||||
|
||||
if (!link->initialized || link->shaper_timer) {// если установлен таймер - значит надо ждать. не рассматриваем этот линк
|
||||
if (!link->initialized || link->shaper_timer || link->link_status != 1) {// если установлен таймер - значит надо ждать. не рассматриваем этот линк
|
||||
link = link->next;
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user