From 7f7c0c4e31a17c9ae854f9460ccd34b4b5698f90 Mon Sep 17 00:00:00 2001
From: codemaster <codemaster@54d463be-8e91-2dee-dedb-b68131a5f0ec>
Date: Wed, 24 Nov 2004 22:23:34 +0000
Subject: - Updated to most of jA's 1067

git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/athena@351 54d463be-8e91-2dee-dedb-b68131a5f0ec
---
 src/char_sql/char.c | 26 +++++++++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)

(limited to 'src')

diff --git a/src/char_sql/char.c b/src/char_sql/char.c
index 2d54d21ce..571495a31 100644
--- a/src/char_sql/char.c
+++ b/src/char_sql/char.c
@@ -1976,6 +1976,7 @@ int lan_ip_check(unsigned char *p){
 int parse_char(int fd) {
 	int i, ch = 0;
 	char email[40];
+	unsigned short cmd;
 	struct char_session_data *sd;
 	unsigned char *p = (unsigned char *) &session[fd]->client_addr.sin_addr;
 
@@ -1992,10 +1993,29 @@ int parse_char(int fd) {
 	sd = session[fd]->session_data;
 
 	while(RFIFOREST(fd) >= 2) {
-//		if (RFIFOW(fd, 0) < 30000)
-//			printf("parse_char : %d %d %x\n", fd, RFIFOREST(fd), RFIFOW(fd, 0));
+		cmd = RFIFOW(fd,0);
+		// crc32�̃X�L�b�v�p
+		if(	sd==NULL			&&	// �����O�C��or�Ǘ��p�P�b�g
+			RFIFOREST(fd)>=4	&&	// �Œ�o�C�g������ �� 0x7530,0x7532�Ǘ��p�P����
+			RFIFOREST(fd)<=21	&&	// �ő�o�C�g������ �� �T�[�o�[���O�C������
+			cmd!=0x20b	&&	// md5�ʒm�p�P�b�g����
+			(RFIFOREST(fd)<6 || RFIFOW(fd,4)==0x65)	){	// ���ɉ����p�P�b�g�����Ă�Ȃ�A�ڑ��łȂ��Ƃ���
+			RFIFOSKIP(fd,4);
+			cmd = RFIFOW(fd,0);
+			printf("parse_char : %d crc32 skipped\n",fd);
+			if(RFIFOREST(fd)==0)
+				return 0;
+		}
 
-		switch(RFIFOW(fd, 0)) {
+//		if(cmd<30000 && cmd!=0x187)
+//			printf("parse_char : %d %d %d\n",fd,RFIFOREST(fd),cmd);
+
+		// �s���p�P�b�g�̏���
+//		if (sd == NULL && cmd != 0x65 && cmd != 0x20b && cmd != 0x187 &&
+//					 cmd != 0x2af8 && cmd != 0x7530 && cmd != 0x7532)
+//			cmd = 0xffff;	// �p�P�b�g�_���v��\��������
+		
+		switch(cmd){
 		case 0x20b: //20040622 encryption ragexe correspondence
 			if (RFIFOREST(fd) < 19)
 				return 0;
-- 
cgit v1.2.3-70-g09d2