Dedupe Hello sends; retry on reject
This commit is contained in:
1 parent
cb4ddfdee6
commit
80c4a64e76
1 file changed
+18
-2
@@ -6,6 +6,8 @@ $RPGClient::Version = 2;
|
|||||||
$RPGClient::Active = 0;
|
$RPGClient::Active = 0;
|
||||||
$RPGClient::Yaw = 0;
|
$RPGClient::Yaw = 0;
|
||||||
$RPGClient::Dist = 14;
|
$RPGClient::Dist = 14;
|
||||||
|
$RPGClient::HelloPending = 0;
|
||||||
|
$RPGClient::HelloLast = "";
|
||||||
|
|
||||||
function RPGClient_NormPos(%ctrl, %pos)
|
function RPGClient_NormPos(%ctrl, %pos)
|
||||||
{
|
{
|
||||||
@@ -204,10 +206,20 @@ function RPGClient_ZoomOut(%val)
|
|||||||
|
|
||||||
function RPGClient_SendHello()
|
function RPGClient_SendHello()
|
||||||
{
|
{
|
||||||
|
if ($RPGClient::Server)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!isObject(ServerConnection))
|
if (!isObject(ServerConnection))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
%now = getSimTime();
|
||||||
|
if ($RPGClient::HelloLast !$= "" && %now - $RPGClient::HelloLast < 900)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$RPGClient::HelloLast = %now;
|
||||||
commandToServer('RPG_Hello', $RPGClient::Version);
|
commandToServer('RPG_Hello', $RPGClient::Version);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -221,10 +233,12 @@ function clientCmdRPG_Welcome(%serverProto, %accepted)
|
|||||||
if (%accepted && %serverProto == $RPGClient::Version)
|
if (%accepted && %serverProto == $RPGClient::Version)
|
||||||
{
|
{
|
||||||
$RPGClient::Server = 1;
|
$RPGClient::Server = 1;
|
||||||
|
$RPGClient::HelloPending = 0;
|
||||||
}
|
}
|
||||||
else if (!%accepted)
|
else if (!%accepted)
|
||||||
{
|
{
|
||||||
echo("Client_RPG: server rejected handshake (server proto " @ %serverProto @ ")");
|
echo("Client_RPG: server rejected handshake (server proto " @ %serverProto @ ")");
|
||||||
|
schedule(1500, 0, RPGClient_SendHello);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -367,6 +381,9 @@ package RPGClient_Cleanup
|
|||||||
{
|
{
|
||||||
RPGClient_DisableOverlay();
|
RPGClient_DisableOverlay();
|
||||||
RPGClient_UnbindKeys();
|
RPGClient_UnbindKeys();
|
||||||
|
$RPGClient::Server = 0;
|
||||||
|
$RPGClient::HelloPending = 0;
|
||||||
|
$RPGClient::HelloLast = "";
|
||||||
Parent::disconnectedCleanup(%doReconnect);
|
Parent::disconnectedCleanup(%doReconnect);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -377,8 +394,7 @@ package RPGClient_Mission
|
|||||||
function onMissionDownloadComplete()
|
function onMissionDownloadComplete()
|
||||||
{
|
{
|
||||||
Parent::onMissionDownloadComplete();
|
Parent::onMissionDownloadComplete();
|
||||||
schedule(200, 0, RPGClient_SendHello);
|
schedule(250, 0, RPGClient_SendHello);
|
||||||
schedule(2000, 0, RPGClient_SendHello);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
activatePackage(RPGClient_Mission);
|
activatePackage(RPGClient_Mission);
|
||||||
|
|||||||
Reference in new issue
Block a user