stop the client disconnecting of the server sends out a bad revision #, this is very dangerous, the server really shouldn't be sending the same rev #, we could really do with some strong tests case that cover this. Either way this commit 'resolves' #1510

This commit is contained in:
John McLear 2013-02-27 19:29:59 +00:00
parent ebd8b85072
commit 994c4ebeed

View file

@ -294,8 +294,8 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad)
if (newRev != (oldRev + 1)) if (newRev != (oldRev + 1))
{ {
dmesg("bad message revision on NEW_CHANGES: " + newRev + " not " + (oldRev + 1)); top.console.warn("bad message revision on NEW_CHANGES: " + newRev + " not " + (oldRev + 1));
setChannelState("DISCONNECTED", "badmessage_newchanges"); // setChannelState("DISCONNECTED", "badmessage_newchanges");
return; return;
} }
msgQueue.push(msg); msgQueue.push(msg);
@ -304,8 +304,8 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad)
if (newRev != (rev + 1)) if (newRev != (rev + 1))
{ {
dmesg("bad message revision on NEW_CHANGES: " + newRev + " not " + (rev + 1)); top.console.warn("bad message revision on NEW_CHANGES: " + newRev + " not " + (rev + 1));
setChannelState("DISCONNECTED", "badmessage_newchanges"); // setChannelState("DISCONNECTED", "badmessage_newchanges");
return; return;
} }
rev = newRev; rev = newRev;
@ -318,8 +318,8 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad)
{ {
if (newRev != (msgQueue[msgQueue.length - 1].newRev + 1)) if (newRev != (msgQueue[msgQueue.length - 1].newRev + 1))
{ {
dmesg("bad message revision on ACCEPT_COMMIT: " + newRev + " not " + (msgQueue[msgQueue.length - 1][0] + 1)); top.console.warn("bad message revision on ACCEPT_COMMIT: " + newRev + " not " + (msgQueue[msgQueue.length - 1][0] + 1));
setChannelState("DISCONNECTED", "badmessage_acceptcommit"); // setChannelState("DISCONNECTED", "badmessage_acceptcommit");
return; return;
} }
msgQueue.push(msg); msgQueue.push(msg);
@ -328,8 +328,8 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad)
if (newRev != (rev + 1)) if (newRev != (rev + 1))
{ {
dmesg("bad message revision on ACCEPT_COMMIT: " + newRev + " not " + (rev + 1)); top.console.warn("bad message revision on ACCEPT_COMMIT: " + newRev + " not " + (rev + 1));
setChannelState("DISCONNECTED", "badmessage_acceptcommit"); // setChannelState("DISCONNECTED", "badmessage_acceptcommit");
return; return;
} }
rev = newRev; rev = newRev;