keepalive handshake: device_type + keepalive negotiation in UDP/TCP INIT
- Добавлен device_type (1 байт, CLIENT_TYPE_*) в INIT_REQUEST и INIT_RESPONSE - Добавлен keepalive_interval (2 байта) в INIT_RESPONSE - STCP handshake расширен с 43 до 46 байт (device_type+keepalive) - negotiate_keepalive(): оба desktop/server → min, иначе (есть mobile) → max - keepalive_interval вынесен в UTUN_INSTANCE для использования в handshake - stcp_client_connect() принимает device_type и keepalive_interval - peer_device_type/peer_keepalive_interval передаются через stcp_link в ETCP_LINK
This commit is contained in:
1 parent
43aca4a41b
commit
0f1bd3d120
37 files changed
+535
-309
No files matched your search
+2
-1
@@ -101,6 +101,7 @@ static int instance_init_common(struct UTUN_INSTANCE* instance, struct UASYNC* u
|
||||
|
||||
// Set client type
|
||||
instance->client_type = config->global.client_type;
|
||||
instance->keepalive_interval = (uint16_t)(config->global.keepalive_interval > 0 ? config->global.keepalive_interval : 200);
|
||||
instance->client_activity = (instance->client_type == CLIENT_TYPE_SERVER) ? CLIENT_ACTIVITY_ACTIVE : CLIENT_ACTIVITY_STANDBY;
|
||||
instance->client_activity_timer = NULL;
|
||||
|
||||
@@ -512,7 +513,7 @@ void utun_instance_destroy(struct UTUN_INSTANCE *instance) {
|
||||
if (tc) DEBUG_INFO(DEBUG_CATEGORY_SYS, "[DESTROY] J: closed %d TCP links", tc);
|
||||
}
|
||||
queue_free(instance->tcp_connections); instance->tcp_connections = NULL;
|
||||
while (instance->tcp_sockets) tcp_socket_remove(instance->tcp_sockets);
|
||||
/* TCP sockets already cleaned in Phase G via etcp_sockets */
|
||||
uasync_drain_immediate(instance->ua);
|
||||
DEBUG_INFO(DEBUG_CATEGORY_SYS, "[DESTROY] J done — TCP");
|
||||
|
||||
|
||||
Reference in new issue
Block a user