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

Fixing several compilation & runtime problems

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10164 54d463be-8e91-2dee-dedb-b68131a5f0ec
ultramage 18 лет назад
Родитель
Сommit
515d98c194
5 измененных файлов с 22 добавлено и 27 удалено
  1. 7 9
      src/char/char.c
  2. 5 8
      src/char_sql/char.c
  3. 4 4
      src/login/login.c
  4. 4 4
      src/map/chrif.h
  5. 2 2
      src/map/map.c

+ 7 - 9
src/char/char.c

@@ -3344,7 +3344,6 @@ int parse_char(int fd)
 	int map_fd;
 	struct char_session_data *sd;
 	uint32 ipl = session[fd]->client_addr;
-	uint32 subnet_map_ip;
 	
 	RFIFOHEAD(fd);
 
@@ -3532,6 +3531,7 @@ int parse_char(int fd)
 			}
 			{
 				//Send player to map
+				uint32 subnet_map_ip;
 				char map_name[MAP_NAME_LENGTH];
 				snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(cd->last_point.map));
 
@@ -3541,11 +3541,8 @@ int parse_char(int fd)
 				memcpy(WFIFOP(fd,6), map_name, MAP_NAME_LENGTH);
 			
 				// Advanced subnet check [LuzZza]
-				if(subnet_map_ip = lan_subnetcheck(ipl))
-					WFIFOL(fd,22) = htonl(subnet_map_ip);
-				else
-					WFIFOL(fd,22) = htonl(server[i].ip);
-
+				subnet_map_ip = lan_subnetcheck(ipl);
+				WFIFOL(fd,22) = (subnet_map_ip) ? htonl(subnet_map_ip) : htonl(server[i].ip);
 				WFIFOW(fd,26) = server[i].port; // /!\ must be sent in intel host byte order /!\ (client bug)
 				WFIFOSET(fd,28);
 
@@ -3940,7 +3937,8 @@ int send_accounts_tologin(int tid, unsigned int tick, int id, int data) {
 	return 0;
 }
 
-int check_connect_login_server(int tid, unsigned int tick, int id, int data) {
+int check_connect_login_server(int tid, unsigned int tick, int id, int data)
+{
 	if (login_fd > 0 && session[login_fd] != NULL)
 		return 0;
 
@@ -4342,11 +4340,11 @@ int do_init(int argc, char **argv)
 			ShowStatus("Defaulting to %s as our IP address\n", ip_str);
 		if (!login_ip) {
 			strcpy(login_ip_str, ip_str);
-			login_ip = inet_addr(login_ip_str);
+			login_ip = ntohl(inet_addr(login_ip_str));
 		}
 		if (!char_ip) {
 			strcpy(char_ip_str, ip_str);
-			char_ip = inet_addr(char_ip_str);
+			char_ip = ntohl(inet_addr(char_ip_str));
 		}
 	}
 

+ 5 - 8
src/char_sql/char.c

@@ -3152,7 +3152,6 @@ int parse_char(int fd)
 	int map_fd;
 	struct char_session_data *sd;
 	uint32 ipl = session[fd]->client_addr;
-	uint32 subnet_map_ip;
 	RFIFOHEAD(fd);
 
 	sd = (struct char_session_data*)session[fd]->session_data;
@@ -3340,6 +3339,7 @@ int parse_char(int fd)
 			}
 			{
 				//Send player to map.
+				uint32 subnet_map_ip;
 				char map_name[MAP_NAME_LENGTH];
 				snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(char_dat.last_point.map));
 
@@ -3349,11 +3349,8 @@ int parse_char(int fd)
 				memcpy(WFIFOP(fd,6), map_name, MAP_NAME_LENGTH);
 
 				// Advanced subnet check [LuzZza]
-				if(subnet_map_ip = lan_subnetcheck(ipl))
-					WFIFOL(fd,22) = htonl(subnet_map_ip);
-				else
-					WFIFOL(fd,22) = htonl(server[i].ip);
-
+				subnet_map_ip = lan_subnetcheck(ipl);
+				WFIFOL(fd,22) = (subnet_map_ip) ? htonl(subnet_map_ip) : htonl(server[i].ip);
 				WFIFOW(fd,26) = server[i].port; // /!\ must be sent in intel host byte order /!\ (client bug)
 				WFIFOSET(fd,28);
 			}
@@ -4221,11 +4218,11 @@ int do_init(int argc, char **argv)
 			ShowStatus("Defaulting to %s as our IP address\n", ip_str);
 		if (!login_ip) {
 			strcpy(login_ip_str, ip_str);
-			login_ip = inet_addr(login_ip_str);
+			login_ip = ntohl(inet_addr(login_ip_str));
 		}
 		if (!char_ip) {
 			strcpy(char_ip_str, ip_str);
-			char_ip = inet_addr(char_ip_str);
+			char_ip = ntohl(inet_addr(char_ip_str));
 		}
 	}
 

+ 4 - 4
src/login/login.c

@@ -388,13 +388,13 @@ int check_ipmask(uint32 ip, const unsigned char *str)
 	unsigned char *p = (unsigned char *)&ip2, *p2 = (unsigned char *)&mask;
 
 	// scan ip address
-	if (sscanf((const char*)str, "%d.%d.%d.%d/%n", &p[3], &p[2], &p[1], &p[0], &i) != 4 || i == 0)
+	if (sscanf((const char*)str, "%u.%u.%u.%u/%n", &p[3], &p[2], &p[1], &p[0], &i) != 4 || i == 0)
 		return 0;
 
 	// scan mask
-	if (sscanf((const char*)str+i, "%d.%d.%d.%d", &p2[3], &p2[2], &p2[1], &p2[0]) == 4) {
+	if (sscanf((const char*)str+i, "%u.%u.%u.%u", &p2[3], &p2[2], &p2[1], &p2[0]) == 4) {
 		;
-	} else if (sscanf((const char*)(str+i), "%d", &m) == 1 && m >= 0 && m <= 32) {
+	} else if (sscanf((const char*)(str+i), "%u", &m) == 1 && m >= 0 && m <= 32) {
 		for(i = 0; i < m && i < 32; i++)
 			mask |= (1 << i);
 	} else {
@@ -3108,7 +3108,7 @@ int parse_login(int fd)
 					WFIFOHEAD(fd, 47+32*MAX_SERVERS);
 					for(i = 0; i < MAX_SERVERS; i++) {
 						if (server_fd[i] >= 0) {
-						    // Advanced subnet check [LuzZza]
+							// Advanced subnet check [LuzZza]
 							uint32 subnet_char_ip = lan_subnetcheck(ipl);
 							WFIFOL(fd,47+server_num*32) = (subnet_char_ip) ? htonl(subnet_char_ip) : htonl(server[i].ip);
 							WFIFOW(fd,47+server_num*32+4) = server[i].port; // /!\ must be sent in intel host byte order /!\ (client bug)

+ 4 - 4
src/map/chrif.h

@@ -23,13 +23,13 @@ int chrif_isconnect(void);
 extern int chrif_connected;
 extern int other_mapserver_count;
 
-void chrif_authreq(struct map_session_data *);
+void chrif_authreq(struct map_session_data* sd);
 void chrif_authok(int fd);
 int chrif_scdata_request(int account_id, int char_id);
-int chrif_save(struct map_session_data*, int flag);
-int chrif_charselectreq(struct map_session_data*sd, uint32 s_ip);
+int chrif_save(struct map_session_data* sd, int flag);
+int chrif_charselectreq(struct map_session_data* sd, uint32 s_ip);
 void check_fake_id(int fd, struct map_session_data *sd, int target_id);
-int chrif_changemapserver(struct map_session_data*sd, short map, int x, int y, uint32 ip, uint16 port);
+int chrif_changemapserver(struct map_session_data* sd, short map, int x, int y, uint32 ip, uint16 port);
 
 int chrif_searchcharid(int char_id);
 int chrif_changegm(int id,const char *pass,int len);

+ 2 - 2
src/map/map.c

@@ -268,9 +268,9 @@ int map_freeblock_unlock_sub(char *file, int lineno)
 		int i;
 		for (i = 0; i < block_free_count; i++)
 		{
-//			aFree(block_free[i]);
+			aFree(block_free[i]);
 //			_mfree(block_free[i], file, lineno, __func__);
-			_mfree(block_free[i], file, ((block_free[i]?block_free[i]->type:0)*100000)+lineno, __func__);
+//			_mfree(block_free[i], file, ((block_free[i]?block_free[i]->type:0)*100000)+lineno, __func__);
 			block_free[i] = NULL;
 		}
 		block_free_count = 0;