Commit cab60cc7 authored by nanahira's avatar nanahira

fix instant disconnect after reconnect

parent 453404ee
...@@ -655,8 +655,8 @@ CLIENT_heartbeat_unregister = (client) -> ...@@ -655,8 +655,8 @@ CLIENT_heartbeat_unregister = (client) ->
#log.info(2, client.name) #log.info(2, client.name)
return true return true
CLIENT_heartbeat_register = (client, send, extend_time) -> CLIENT_heartbeat_register = (client, send) ->
if !settings.modules.heartbeat_detection.enabled or client.closed or client.is_post_watcher or client.pre_reconnecting or client.pos > 3 or client.confirming_cards if !settings.modules.heartbeat_detection.enabled or client.closed or client.is_post_watcher or client.pre_reconnecting or client.reconnecting or client.pos > 3 or client.confirming_cards
return false return false
if client.heartbeat_timeout if client.heartbeat_timeout
CLIENT_heartbeat_unregister(client) CLIENT_heartbeat_unregister(client)
...@@ -670,7 +670,7 @@ CLIENT_heartbeat_register = (client, send, extend_time) -> ...@@ -670,7 +670,7 @@ CLIENT_heartbeat_register = (client, send, extend_time) ->
CLIENT_heartbeat_unregister(client) CLIENT_heartbeat_unregister(client)
client.destroy() unless client.closed or client.heartbeat_responsed client.destroy() unless client.closed or client.heartbeat_responsed
return return
, settings.modules.heartbeat_detection.wait_time * (if extend_time then 1.5 else 1)) , settings.modules.heartbeat_detection.wait_time)
#log.info(1, client.name) #log.info(1, client.name)
return true return true
...@@ -2548,8 +2548,7 @@ ygopro.stoc_follow 'TIME_LIMIT', true, (buffer, info, client, server)-> ...@@ -2548,8 +2548,7 @@ ygopro.stoc_follow 'TIME_LIMIT', true, (buffer, info, client, server)->
cur_players[1] = cur_players[1] - 2 cur_players[1] = cur_players[1] - 2
check = client.pos == cur_players[info.player] check = client.pos == cur_players[info.player]
if check if check
extend_time = settings.modules.reconnect.enabled and client.reconnecting CLIENT_heartbeat_register(client, false)
CLIENT_heartbeat_register(client, false, extend_time)
return false return false
ygopro.ctos_follow 'TIME_CONFIRM', false, (buffer, info, client, server)-> ygopro.ctos_follow 'TIME_CONFIRM', false, (buffer, info, client, server)->
......
...@@ -839,8 +839,8 @@ ...@@ -839,8 +839,8 @@
return true; return true;
}; };
CLIENT_heartbeat_register = function(client, send, extend_time) { CLIENT_heartbeat_register = function(client, send) {
if (!settings.modules.heartbeat_detection.enabled || client.closed || client.is_post_watcher || client.pre_reconnecting || client.pos > 3 || client.confirming_cards) { if (!settings.modules.heartbeat_detection.enabled || client.closed || client.is_post_watcher || client.pre_reconnecting || client.reconnecting || client.pos > 3 || client.confirming_cards) {
return false; return false;
} }
if (client.heartbeat_timeout) { if (client.heartbeat_timeout) {
...@@ -858,7 +858,7 @@ ...@@ -858,7 +858,7 @@
if (!(client.closed || client.heartbeat_responsed)) { if (!(client.closed || client.heartbeat_responsed)) {
client.destroy(); client.destroy();
} }
}, settings.modules.heartbeat_detection.wait_time * (extend_time ? 1.5 : 1)); }, settings.modules.heartbeat_detection.wait_time);
return true; return true;
}; };
...@@ -3148,7 +3148,7 @@ ...@@ -3148,7 +3148,7 @@
}); });
ygopro.stoc_follow('TIME_LIMIT', true, function(buffer, info, client, server) { ygopro.stoc_follow('TIME_LIMIT', true, function(buffer, info, client, server) {
var check, cur_players, extend_time, room; var check, cur_players, room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
return; return;
...@@ -3193,8 +3193,7 @@ ...@@ -3193,8 +3193,7 @@
check = client.pos === cur_players[info.player]; check = client.pos === cur_players[info.player];
} }
if (check) { if (check) {
extend_time = settings.modules.reconnect.enabled && client.reconnecting; CLIENT_heartbeat_register(client, false);
CLIENT_heartbeat_register(client, false, extend_time);
} }
return false; return false;
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment