From b397f7c6615f68f044100168eeaf157f6c60227c Mon Sep 17 00:00:00 2001 From: ultramage Date: Fri, 9 Nov 2007 21:44:29 +0000 Subject: * Re-worked the login-char-map packet spam mechanism - mapserver no longer sends entire user list to charserver every 10 seconds; similar change done to the char-login connection - user count updates are only sent when the value actually changes instead of servers polling each other every few seconds - the servers now prevent interserver connection timeout explicitly by sending ping/ack packet pairs instead of relying on the usercount polling to do so; keepalive is sent every 'stall_time'-2 seconds - removed the @refreshonline command as refresh happens automatically every 5 seconds git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11703 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/login/login.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'src/login') diff --git a/src/login/login.c b/src/login/login.c index 2b1650e2c..91a2f1996 100644 --- a/src/login/login.c +++ b/src/login/login.c @@ -1441,10 +1441,6 @@ int parse_fromchar(int fd) return 0; //printf("parse_fromchar: Receiving of the users number of the server '%s': %d\n", server[id].name, RFIFOL(fd,2)); server[id].users = RFIFOL(fd,2); - // send some answer - WFIFOHEAD(fd,2); - WFIFOW(fd,0) = 0x2718; - WFIFOSET(fd,2); RFIFOSKIP(fd,6); break; @@ -1500,6 +1496,17 @@ int parse_fromchar(int fd) RFIFOSKIP(fd,6); break; + case 0x2719: // ping request from charserver + if( RFIFOREST(fd) < 2 ) + return 0; + + WFIFOHEAD(fd,2); + WFIFOW(fd,0) = 0x2718; + WFIFOSET(fd,2); + + RFIFOSKIP(fd,2); + break; + case 0x2720: // Request to become a GM if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) return 0; @@ -3419,9 +3426,10 @@ int login_lan_config_read(const char *lancfgName) subnet_count++; } - ShowStatus("Read information about %d subnetworks.\n", subnet_count); } + ShowStatus("Read information about %d subnetworks.\n", subnet_count); + fclose(fp); return 0; } -- cgit v1.2.3-60-g2f50