mirror of https://github.com/OpenTTD/OpenTTD
(svn r1054) -Fix: [Network] Redid revision 1024, only a bit more nice this time
(revision length is back to 10, and checking is now done correctly)release/0.4.5
parent
bff8c0af61
commit
25dfbc3134
|
@ -39,7 +39,7 @@
|
||||||
|
|
||||||
#define NETWORK_NAME_LENGTH 80
|
#define NETWORK_NAME_LENGTH 80
|
||||||
#define NETWORK_HOSTNAME_LENGTH 80
|
#define NETWORK_HOSTNAME_LENGTH 80
|
||||||
#define NETWORK_REVISION_LENGTH 20
|
#define NETWORK_REVISION_LENGTH 10
|
||||||
#define NETWORK_PASSWORD_LENGTH 20
|
#define NETWORK_PASSWORD_LENGTH 20
|
||||||
#define NETWORK_PLAYERS_LENGTH 200
|
#define NETWORK_PLAYERS_LENGTH 200
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e)
|
||||||
else if (_selected_item->info.clients_on == _selected_item->info.clients_max)
|
else if (_selected_item->info.clients_on == _selected_item->info.clients_max)
|
||||||
w->disabled_state = (1<<17); // Server full, join button disabled
|
w->disabled_state = (1<<17); // Server full, join button disabled
|
||||||
#ifdef WITH_REV
|
#ifdef WITH_REV
|
||||||
else if (strncmp(_selected_item->info.server_revision, _openttd_revision, 10) != 0) {
|
else if (strncmp(_selected_item->info.server_revision, _openttd_revision, NETWORK_REVISION_LENGTH - 1) != 0) {
|
||||||
if (strncmp(_selected_item->info.server_revision, "norev000", sizeof(_selected_item->info.server_revision)) != 0)
|
if (strncmp(_selected_item->info.server_revision, "norev000", sizeof(_selected_item->info.server_revision)) != 0)
|
||||||
w->disabled_state = (1<<17); // Revision mismatch, join button disabled
|
w->disabled_state = (1<<17); // Revision mismatch, join button disabled
|
||||||
}
|
}
|
||||||
|
@ -115,7 +115,7 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e)
|
||||||
const NetworkGameList *cur_item = _network_game_list;
|
const NetworkGameList *cur_item = _network_game_list;
|
||||||
while (cur_item != NULL) {
|
while (cur_item != NULL) {
|
||||||
#ifdef WITH_REV
|
#ifdef WITH_REV
|
||||||
bool compatible = (strncmp(cur_item->info.server_revision, _openttd_revision, 10) == 0);
|
bool compatible = (strncmp(cur_item->info.server_revision, _openttd_revision, NETWORK_REVISION_LENGTH - 1) == 0);
|
||||||
#else
|
#else
|
||||||
bool compatible = true; // We have no idea if we are compatible...
|
bool compatible = true; // We have no idea if we are compatible...
|
||||||
#endif
|
#endif
|
||||||
|
@ -210,7 +210,7 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e)
|
||||||
y+=2;
|
y+=2;
|
||||||
|
|
||||||
#ifdef WITH_REV
|
#ifdef WITH_REV
|
||||||
if (strncmp(_selected_item->info.server_revision, _openttd_revision, 10) != 0) {
|
if (strncmp(_selected_item->info.server_revision, _openttd_revision, NETWORK_REVISION_LENGTH - 1) != 0) {
|
||||||
if (strncmp(_selected_item->info.server_revision, "norev000", sizeof(_selected_item->info.server_revision)) != 0)
|
if (strncmp(_selected_item->info.server_revision, "norev000", sizeof(_selected_item->info.server_revision)) != 0)
|
||||||
DrawStringMultiCenter(360, y, STR_NETWORK_VERSION_MISMATCH, 2); // server mismatch
|
DrawStringMultiCenter(360, y, STR_NETWORK_VERSION_MISMATCH, 2); // server mismatch
|
||||||
} else
|
} else
|
||||||
|
|
|
@ -580,7 +580,7 @@ DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_JOIN)
|
||||||
#if defined(WITH_REV) || defined (WITH_REV_HACK)
|
#if defined(WITH_REV) || defined (WITH_REV_HACK)
|
||||||
// Check if the client has WITH_REV enabled
|
// Check if the client has WITH_REV enabled
|
||||||
if (strncmp("norev000", client_revision, sizeof(client_revision)) != 0) {
|
if (strncmp("norev000", client_revision, sizeof(client_revision)) != 0) {
|
||||||
if (strncmp(_network_game_info.server_revision, client_revision, sizeof(_network_game_info.server_revision)) != 0) {
|
if (strncmp(_network_game_info.server_revision, client_revision, sizeof(_network_game_info.server_revision) - 1) != 0) {
|
||||||
// Different revisions!!
|
// Different revisions!!
|
||||||
SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_WRONG_REVISION);
|
SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_WRONG_REVISION);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue