Просмотр исходного кода

- Fixed subnet checking being broken in the login txt server.
- Changed a bit the information of the subnet checking to include the ip that is being checked.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5458 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 19 лет назад
Родитель
Сommit
37912c2a7b
5 измененных файлов с 20 добавлено и 17 удалено
  1. 3 0
      Changelog-Trunk.txt
  2. 4 4
      src/char/char.c
  3. 4 4
      src/char_sql/char.c
  4. 5 5
      src/login/login.c
  5. 4 4
      src/login_sql/login.c

+ 3 - 0
Changelog-Trunk.txt

@@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.  EVERYTHING ELSE
 GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
 
+2006/03/04
+	* Fixed a bug in the subnet checking function, login-TXT server. Also
+	  changed the messages to be a bit more informative. [Skotlex]
 2006/03/03
 	* Added function battle_set_walkdelay in charge of updating walkdelays of
 	  characters based on two criterias: when the delay is induced by damage, if

+ 4 - 4
src/char/char.c

@@ -3022,7 +3022,7 @@ static int char_mapif_init(int fd) {
 int lan_subnetcheck(long *p) {
 
 	int i;
-	unsigned char *sbn, *msk;
+	unsigned char *sbn, *msk, *src = (unsigned char *)p;
 	
 	for(i=0; i<subnet_count; i++) {
 	
@@ -3031,14 +3031,14 @@ int lan_subnetcheck(long *p) {
 			sbn = (unsigned char *)&subnet[i].subnet;
 			msk = (unsigned char *)&subnet[i].mask;
 			
-			ShowStatus("Subnet check result: "CL_CYAN"%u.%u.%u.%u/%u.%u.%u.%u"CL_RESET"\n",
-				sbn[0], sbn[1], sbn[2], sbn[3], msk[0], msk[1], msk[2], msk[3]);
+			ShowInfo("Subnet check [%u.%u.%u.%u]: Matches "CL_CYAN"%u.%u.%u.%u/%u.%u.%u.%u"CL_RESET"\n",
+				src[0], src[1], src[2], src[3], sbn[0], sbn[1], sbn[2], sbn[3], msk[0], msk[1], msk[2], msk[3]);
 			
 			return subnet[i].map_ip;
 		}
 	}
 	
-	ShowStatus("Subnet check result: "CL_CYAN"no matches."CL_RESET"\n");
+	ShowInfo("Subnet check [%u.%u.%u.%u]: "CL_CYAN"WAN"CL_RESET"\n", src[0], src[1], src[2], src[3]);
 	return 0;
 }
 

+ 4 - 4
src/char_sql/char.c

@@ -2907,7 +2907,7 @@ int char_mapif_init(int fd) {
 int lan_subnetcheck(long *p) {
 
 	int i;
-	unsigned char *sbn, *msk;
+	unsigned char *sbn, *msk, *src = (unsigned char *)p;
 	
 	for(i=0; i<subnet_count; i++) {
 	
@@ -2916,14 +2916,14 @@ int lan_subnetcheck(long *p) {
 			sbn = (unsigned char *)&subnet[i].subnet;
 			msk = (unsigned char *)&subnet[i].mask;
 			
-			ShowStatus("Subnet check result: "CL_CYAN"%u.%u.%u.%u/%u.%u.%u.%u"CL_RESET"\n",
-				sbn[0], sbn[1], sbn[2], sbn[3], msk[0], msk[1], msk[2], msk[3]);
+			ShowInfo("Subnet check [%u.%u.%u.%u]: Matches "CL_CYAN"%u.%u.%u.%u/%u.%u.%u.%u"CL_RESET"\n",
+				src[0], src[1], src[2], src[3], sbn[0], sbn[1], sbn[2], sbn[3], msk[0], msk[1], msk[2], msk[3]);
 			
 			return subnet[i].char_ip;
 		}
 	}
 	
-	ShowStatus("Subnet check result: "CL_CYAN"no matches."CL_RESET"\n");
+	ShowInfo("Subnet check [%u.%u.%u.%u]: "CL_CYAN"WAN"CL_RESET"\n", src[0], src[1], src[2], src[3]);
 	return 0;
 }
 

+ 5 - 5
src/login/login.c

@@ -2984,23 +2984,23 @@ int parse_admin(int fd) {
 int lan_subnetcheck(unsigned char *p) {
 
 	int i;
-	unsigned char *sbn, *msk;
+	unsigned char *sbn, *msk, *src = (unsigned char *)p;
 	
 	for(i=0; i<subnet_count; i++) {
 	
-		if((subnet[i].subnet & subnet[i].mask) == ((long)p & subnet[i].mask)) {
+		if((subnet[i].subnet & subnet[i].mask) == (*p & subnet[i].mask)) {
 			
 			sbn = (char *)&subnet[i].subnet;
 			msk = (char *)&subnet[i].mask;
 			
-			ShowMessage("Subnet check result: "CL_CYAN"%u.%u.%u.%u/%u.%u.%u.%u"CL_RESET"\n",
-				sbn[0], sbn[1], sbn[2], sbn[3], msk[0], msk[1], msk[2], msk[3]);
+			ShowInfo("Subnet check [%u.%u.%u.%u]: Matches "CL_CYAN"%u.%u.%u.%u/%u.%u.%u.%u"CL_RESET"\n",
+				src[0], src[1], src[2], src[3], sbn[0], sbn[1], sbn[2], sbn[3], msk[0], msk[1], msk[2], msk[3]);
 			
 			return subnet[i].char_ip;
 		}
 	}
 	
-	ShowMessage("Subnet check result: "CL_CYAN"no matches."CL_RESET"\n");
+	ShowInfo("Subnet check [%u.%u.%u.%u]: "CL_CYAN"WAN"CL_RESET"\n", src[0], src[1], src[2], src[3]);
 	return 0;
 }
 

+ 4 - 4
src/login_sql/login.c

@@ -1368,7 +1368,7 @@ int parse_fromchar(int fd){
 int lan_subnetcheck(long *p) {
 
 	int i;
-	unsigned char *sbn, *msk;
+	unsigned char *sbn, *msk, *src = (unsigned char *)p;
 	
 	for(i=0; i<subnet_count; i++) {
 	
@@ -1377,14 +1377,14 @@ int lan_subnetcheck(long *p) {
 			sbn = (unsigned char *)&subnet[i].subnet;
 			msk = (unsigned char *)&subnet[i].mask;
 			
-			ShowStatus("Subnet check result: "CL_CYAN"%u.%u.%u.%u/%u.%u.%u.%u"CL_RESET"\n",
-				sbn[0], sbn[1], sbn[2], sbn[3], msk[0], msk[1], msk[2], msk[3]);
+			ShowInfo("Subnet check [%u.%u.%u.%u]: Matches "CL_CYAN"%u.%u.%u.%u/%u.%u.%u.%u"CL_RESET"\n",
+				src[0], src[1], src[2], src[3], sbn[0], sbn[1], sbn[2], sbn[3], msk[0], msk[1], msk[2], msk[3]);
 			
 			return subnet[i].char_ip;
 		}
 	}
 	
-	ShowStatus("Subnet check result: "CL_CYAN"no matches."CL_RESET"\n");
+	ShowInfo("Subnet check [%u.%u.%u.%u]: "CL_CYAN"WAN"CL_RESET"\n", src[0], src[1], src[2], src[3]);
 	return 0;
 }