Files
Sun1602/Server/AuthSystem/AuthCommon/DevNote.txt
T
2022-10-26 12:25:11 +08:00

698 lines
28 KiB
Plaintext

First Release(v 1.0.1) : 2006.04.11, 신동훈
[Version Rule]
Type : a.b.c
Rule : a = 설계상에서의 변화가 있는 경우
b = 코드 단위의 버그를 수정하는 경우
c = 테스트버젼(홀수), 안정화버젼(짝수)
[DevNote Rule]
'-' 일반적인 기록
'!' 중요한 Check Point
'?' 미해결 사항
[======================================== DevNote ========================================]
/06.04.11/
- SUN과의 연동 일정을 1~2일 앞두고 최초 Release가 되었다.
- DB Query 처리로직 및 각 프로토콜의 인자 구현이 아직 거칠다.
- 모든 프로토콜은 기존 Auth의 그것과 완전 동일하다.
? AccountInfo::serialKey라는 항목이 있다. S2S_..._NEWCLIENT 관련 데이터인데, 어디에 쓰이는지
모르겠다. 알아보자.
- 이전의 AuthServer와 프로토콜 처리를 하나씩 비교해가면서 빠진 내용을 모두 구현한다.
/06.04.12/
! AccountManager에서 account문자열을 통해 AccountInfo를 얻어낼 수 없다.
AccountManager에서는 frontKey를 기준으로 AccountInfo를 생성하기 때문에 중복접속 시도 등의
경우 다른 frontKey로 동일한 account문자열의 AccountInfo가 생성될 수 있다.
! 초기 AuthServer 동작시 Memory가 지속적으로 증가하는 현상이 발생하는데, Memory leak은 아니다.
이 것은 QueryQueue 및 AccountManager 등에서 필요한 만큼의 Object Pool을 구성하는 단계이므로
어느정도 수준이 되면 더 이상 증가하지 않는다.
/06.04.13/
! CRT 디버깅을 하는 경우 _bstr_t의 사용에서 memory leak과 같은 현상이 발생할 수 있다.
원인은 정확히 모르지만, CRT환경에서 _bstr_t 내부의 delete가 적절하게 이루어지지 않는 것
같다.
/06.04.19/
- Location정보를 DB에서 관리하도록 개발된 로직은 상무님의 지시로 파기되었다.
지금은 memory에 관리하므로, AuthServer는 n대가 아니라 1대로만 세팅이 가능하다.
/06.04.20/
- SUN과의 첫 번째 연동작업이 끝났다. WiseClient로 테스트한 결과 Login/Logout이 정상적으로
처리된 것 같다.
오전이 되면 GameClient로 직접 테스트를 해봐야한다.(물론 중복접속까지도...)
- 아직 완벽하다고 장담할 수 없는 부분은 Location정보가 쓰레기처럼 남는 상황이 발생한다는 것이다.
Stress test를 끝내고 나면 많은 계정들이 어떠한 상태로 남아있는데, 내 생각에 이 것은
인증 완료 후 게임서버에 접속하지 않은 상황인 듯 하다.
/06.04.21/
! ver1.4.1 갱신.
- Location정보를 DB에서 완전 분리시켰다.
- 방어코드가 추가되어야하고, GameAgent 접속상태 또한 실시간 적용이 가능하도록 변경해야 한다.
/06.05.03/
- UserSts 복구기능 추가
- 성인서버 제한 기능 추가( GameSideManager에 허접하게 구현됨 )
/06.05.06/
- PC 방 UID 추가
/06.05.22/
! ver1.7.1 갱신
- Game Version, IP Block, 계정 Drop 기능 WOPS 연동준비 완료.
- eXtreme Library는 언젠가 파기해야한다. 이놈때문에 네트워크 로직을 추가하기가 복잡하다.
/06.06.26/
- 빌링 프로토콜 추가
/06.06.29/
- Wiki 와 SUN은 MessageId가 다르다.
그러므로 이 두가지를 MessageId_SUN.h, MessageId_Wiki.h로 나누었다.
__SUPPORT_SUN__ 혹은 __SUPPORT_WIKI__ 가 Define되어야 한다.
/06.07.10/
! 접속정보 복구관련 버그
게임서버가 종료되지 않은 상황에서 인증서버가 종료된 후 인증서버가 시작되면, 이전까지의
접속정보 복구를 시도한다. 이 때 AuthKey는 DB에 저장되지 않기 때문에 인증에서 임의로
AuthKey를 발생시키도록 되어있다.
이 경우, 두 가지 문제상황이 발생한다.
1. AuthKey를 0으로 초기화한 상태로 복구작업을 완료하면 AccountManager에서 AccountInfo를 제대로
저장하거나 검색하기 못한다.
2. GameAgent로부터 S2S_PC_LOGOUT을 받을 때 AuthKey가 다를경우 무시하는 루틴이 있기 떄문에,
복구시 AuthKey를 제대로 복구하지 않을 경우 Logout처리가 제대로 이루어지지 않게된다.
/06.07.13/
- MSG_S2S_ASK_NEWCLIENT에 userCode를 userCode[3]으로 확장
/06.07.14/
- 빌링 차감은 id/pw검사가 완료된 시간부터 시작한다.
- 빌링 차감메시지를 보내지 않은 계정이 Logout을 하더라도 빌링Logout메시지는 발생시킨다.
/06.07.27/
- USP_UPDATE_PayInfo 추가.
/06.08.17/
- 로그인 로그 남길 때 로그인 시간 01:01:01로 처리되던 버그 수정하여 배포 완료.
- AuthKey를 위치 정보에 추가로 저장하도록 코드 수정.
- 예외 IP 받았을 때 LoginFront에서 차단 IP 이전에 검사하여 Allow 시켜주는 코드 추가해야 한다.
- 테스트 서버용은 _TEST_SERVER define을 추가하며, 이 때는 타이틀 define값이 바뀌도록 수정한다.
- GM 접속 때(userSts 100번대) IP를 확인하여 '사내'인 경우에만 GM 권한을 줘야 한다네?-_-a 이거 언제 하나...?
- 예외 IP 받았을 때 LoginFront에서 먼저 검사하는 코드 추가하여 개발서버에 패치 완료.
- GM IP 확인하는 부분은 다다음주로 결정. 그 안에 시간 되면 해주는 정도로 작업한다.
/06.08.22/
- 로그인에서 예외 IP 처리하는 부분 본섭 패치 완료. 체크인 완료
- AuthKey 복구하는 코드 사내서버에 패치
/06.08.25/
- 중복 로그인 검출됐을 때 게임에 접속되어 있었던 쪽은 로그아웃 로그 남겨야 한다.
- LoginFront에서 IP리스트 받을 때 멈춰버리는 버그 발견. 일단 임시로 넘어가고...원인을 찾아보자.(인증에 로그도 남기고)
- GM IP 체크작업도 로그아웃 로그와 같이 한다.
/06.08.29/
- 중복 로그인 로그아웃 로그 남기는 코드 추가되어 본섭 패치까지 완료.
- 각 서버 빌드를 서비스마다 따로 두도록 수정하였다. 서비스마다 define을 다르게 설정하여 빌드 내용을 조금씩 바꾼다.
- AuthServer 버전 1.7.4로 올렸다.(이 버전에서 바뀔 내용은 GM IP체크 기능 추가, 아머킷 패턴 데이터 추가)
- LoginFront 버전 1.3.3으로 올렸다.(이 버전에서 바뀔 내용은 GM IP체크 기능 추가, 아머킷 패턴 데이터 추가)
- AuthAgent 버전 1.1.3으로 올렸다.(이 버전에서는 현재 특별히 바뀔 것은 없다)
- GM IP 체크할 때 사내IP를 어떻게 처리할 것인가가 문제다. 현재는 사내IP가 단지 사내 모드일 때만 작동하지만, 이제는 바뀌어야 하기 때문이다.
- 일단 사내 IP인 경우 사내 모드면 허용으로, 전체 모드면 사내로 보낼 수 있다면 별 문제 없이 처리가 가능하다.
- AuthKey 복구 버전이 라이브(라이브테스트는 아직) 풀려서 ConnectSts 갱신 안 되는 버그(프로시저 매개변수가 많아서) 생겼다.
임시로 라이브 DB 프로시저에 매개변수 추가하여 쿼리 작동만 되도록 바꾸었다. 다음 정기점검 때 이 부분 바뀌어야 한다.
/06.08.31/
- 사내IP 설정에 대해 인호씨, 종명씨에게 ti_Mode 구분을 명시적으로 넣어 달라고 요청. 이제 IP 제한은 다음과 같이 구분된다.
1. 국가IP - 일반적인 '허용'IP. 추가할 경우 이 IP를 제외한 모든 IP는 블럭된다.
2. 사내IP - GM들의 IP 제한을 위해 사용되는 구분. GM의 경우(또는 다른 작업의 경우도) 이 IP일 때만 GM 기능을 준다
3. 금지IP - 국가IP가 없다는 가정 하에, 특별히 접속을 금지해야 할 IP를 여기에 할당한다
4. 예외IP - 금지IP가 적용되는 상태에서 특정 IP(혹은 IP대역)만 접속을 허용해야 할 경우 이 타입으로 추가한다
/06.09.04/
- GM IP구분과 아머킷 작업중
- AUTHKEY 복구하는 코드/DB 변경 부분 내일 본섭(테섭포함)에 패치 예정
- 아머킷 패턴 리로드 1차 작업 완료(WiseClient 통한 테스트까지 됐는데 클라이언트 테스트 부족)
/06.09.05/
- AUTHKEY 복구 코드/DB 변경 본섭(테섭포함) 패치 완료.
/06.09.06/
/06.09.08/
- 아머킷 패턴 리로드하는 부분 RTT 리로드 부분까지 작업 완료.
- 중국쪽 DB ID/PASS 결정(SunDevAdmin/Tjs098)(*로, SunServiceID: TjsTls098)(*로 결정). IP만 넘어오면 대략적인 설정 끝내서 GT팀으로 넘길 예정
/06.09.11/
- GM IP체크하는 부분 LoginFront, AuthServer 다 작업해서 테스트 완료. 개발 배포서버 패치.
- 오늘 설치하기로 한 중국 클베 서버가 출국 문제 때문에 내일로 연기. 내일 대만쪽 서버도 세팅 예정이다.
일단 중국이랑 같은 버전을 쓸 예정.(아머킷/GM IP쪽 안 나감)
- 인증서버 처음 시작할 때 아머킷 패턴과 IP list 반복적으로 전송 시도하는 원인 찾는 중.
/06.09.13/
- AuthAgent에서 GameAgent 중복 접속 허용하지 않는 코드 추가. 개발/사내 패치 들어감.
- AuthServer 개발/사내 버전 1.7.5로 올림(라이브/테스트는 그대로 1.7.4. GM IPCHECK 들어갈 때 1.7.5로 올릴 예정)
- AuthAgent 개발/사내 버전 1.1.4로 올림(라이브/테스트는 그대로 1.1.3. GameAgent 중복접속 방지 코드 들어갈 때 올릴 예정)
- LoginFront 개발/사내 버전 1.3.4로 올림(라이브/테스트는 그대로 1.3.3. GM IPCHECK 들어갈 때 올릴 예정)
/06.09.18/
- 내일 정기점검 때 GM IP 체크하는 부분, GameAgent 중복 접속 허용하지 않는 코드 추가하여 라이브테스트에 패치 들어감
- AuthServer 개발/사내 버전 1.7.6으로 올림.(아머킷 구현) 테스트는 1.7.5(GM IPCHECK 구현)
- AuthAgent 테스트 1.1.4로 올림(중복접속 방지 구현)
- LoginFront 개발/사내 버전 1.3.5로 올림.(아머킷 구현) 테스트는 1.3.4(GM IPCHECK 구현)
/06.09.28/
- GM IPCHECK 되는 버전 라이브 패치 완료.
- 처음에 불필요한 IP List 전송 시도 막기 위해 주석처리했던 ResultControlIp에서 LoginFront들에 전송하는부분을 다시 해제.
(이것 때문에 접속중인 LoginFront에 갱신된 정보를 날려주지 않는 버그가 생겼다.-_-;)
- 라이브서버에 AuthAgent GameAgent 중복접속 방지코드 추가
/06.10.09/
- 아머킷 패턴 데이터 쿼리해서 받아올 때 WideChar로 받아오는 문제(기존 코드를 그대로 갖다붙이다 보니 신경을 안썼네-_-;)가 있어서
BYTE로 바꾸고 개발/사내 서버 패치.(AuthServer만)
/06.10.10/
- 인증로그에서 LoginTime, UsedTime 제대로 안남는 버그 발견.
- 라이브 테섭에서 인증서버 시작할 때 DB에 위치정보 남아있으면 정상시작 안됨. 과거 버그와 동일한 사항으로 확인 필요.
/06.10.16/
- 아머킷 패턴 업데이트 기능 라이브에 패치 준비(AuthServer, LoginFront 패치 필요)
=== AuthServer 1.7.8 ===
- 아머킷 패턴 데이터 Enable, Algorithm 읽어들이는 과정 추가
- 서비스 중에 인증서버 재시작했을 때 접속되어 있던 유저들의 Login시각을 재시작한 시각으로 수정
이 부분은 별도의 플래그를 둬서 DB쪽에서 알아서 인식해주거나 하는 식의 융통성이 필요하다. 아니면 DB 변경해서 완전복구를 하든지.
=========================
=== LoginFront 1.3.6 ===
- 아머킷 패턴 데이터 Enable 옵션 추가
=========================
/06.10.17/
- 인증서버 재시작했을 때 Login시각 보정할 수 있도록 UserSts 테이블에 컬럼 추가(ConnectTime)됐음.
- 프로시저 이름 바꿔서(..._LoginTime) 작업 후 테스트 완료했고, 개발서버 패치.
=== AuthServer 1.7.9 ===
- 인증서버 재시작했을 때 바뀐 프로시저 호출하여 LoginTime 복구
=========================
/06.10.18/
- 인증서버 통신중 생기는 버그(AuthAgent->AuthServer로 GameAgent 접속 알릴 때 한번에 안 넘어가는 버그) 확인과 명확한 코드 작성 위해
송/수신 버퍼 늘리고 Update() 외의 부분에 들어가 있는 Flush() 제거하고 extreme::SendPacket() false 떨어질 때 처리코드 추가한다.
일단 이 작업은 AuthAgent에만 추가하여 패치해 보고, 이상 없으면 전체 서버에 적용하자.
=== AuthAgent 1.1.5 ===
서버간(정확히는 Accept한 서버와) 통신 송/수신 버퍼 늘림. Flush() 제거. SendPacket() false 처리 추가
=========================
/06.10.19/
- AuthAgent 1.1.5 개발배포 테스트 시작. AuthServer 1.7.9 개발배포 테스트 완료(로그인 시각 복구 잘 됨)
- AuthServer도 AuthAgent와 동일한 패치 작업
=== AuthServer 1.7.10 ===
혼잡도 풀이면 인증서버에서부터 서버 선택 불가능하게 막는 기능 추가
- 서버간(정확히는 Accept한 서버와) 통신 송/수신 버퍼 늘림. Flush() 제거. SendPacket() false 처리 추가
=========================
- 위치정보 줄어드는 버그 확인중.
/06.10.23/
- 개발서버에 AuthServer 1.7.10 패치.
/06.10.24/
- 그간 SUN 지원만 하면서 코드가 WIKI에 맞지 않게 바뀌었던 부분들 확인하여 수정중.
- 현재의 __DEVTEST.../__OFFICE.../__LIVETEST... 정의를 WIKI에서도 사용할 수 있도록 수정.
- __SUPPORT_SUN__을 Define.h로 옮김
/06.10.26/
- WIKI처럼 월드 기반인 게임 지원을 위해 _SERVER_WORLDBASE define으로 기존 구조에서 월드단위 처리를 할 수 있도록 수정.(테스트 필요)
=== AuthServer 1.8.1(SUN) ===
에러일 때 직접 보내주는 문자열 메시지를 국가에 따라 바꿀 수 있도록 수정(StringTable.ini 추가)
=============================
=== AuthServer 1.1.0(WIKI) ===
WIKI 지원 위래 월드 기반으로 서버 선택하고 한 월드에 여러 GameAgent를 붙일 수 있도록 기능 수정(
==============================
/06.10.31/
=== AuthServer 1.8.2(SUN) ===
위치정보 쿼리할 때 timeout 조절 가능하도록 수정(ServerInfo.ini에 추가)
아머킷 패턴 업데이트 때 dll Load만 하고 Free 안하는 버그-_-; 수정
=============================
/06.11.03/
- WIKI 위치정보 로드하는 부분 버그 수정
- GameAgent에 유저 접속중에 ServerInfo.ini 변경하고 인증서버 재시작하면 위치정보 로드했을 때 잘못된 정보 들어온다.
_SERVER_WORLDBASE에서는 미리 찾아서 막도록 코드 추가했음.(더불어 GetWorldNo()에서 인덱스 잘못됐으면 0xFFFF만 리턴하게 수정)
/06.11.06/
- AuthServer가 읽어오는 SELECT_MATCH 정보 없애버리는 작업 시작.
처음 ini 파일에 설정된 IP로 접속할 때 인덱스 판별하므로 현재로서 크게 의미가 없으며, WORLDBASE일 경우에는 오히려
이 기능을 사용했을 때 병렬Agent를 지원할 수 없는 문제 발생(장기적으로는 구조 자체의 수정이 필요)
※ SUN쪽에도 적용중(1.8.3)
== AuthServer 1.2.0(WIKI) ===
AuthServer ServerInfo.ini의 SELECT_MATCH 기능 삭제.(그냥 통일된 인덱스 사용) 나머지도 싹 변경
=============================
/06.11.08/
- AuthAgent에서 ServerInfo.ini의 AgentList 읽지 않고, AuthServer로부터 AgentList 받게 수정
== AuthServer 1.8.3(SUN) ===
AuthAgent 접속했을 때 GameAgent List 보내주도록 패킷/코드 추가
ServerInfo.ini의 SELECT_MATCH 기능 삭제.(그냥 통일된 인덱스 사용) 나머지도 싹 변경
============================
=== AuthAgent 1.1.6(SUN) ===
AuthAgent에서 ServerInfo.ini의 AgentList 읽지 않고, AuthServer로부터 AgentList 받게 수정
============================
== AuthAgent 1.1.2(WIKI) ===
AuthAgent에서 ServerInfo.ini의 AgentList 읽지 않고, AuthServer로부터 AgentList 받게 수정
============================
/06.11.09/
- AuthServer 1.8.3 버전에서 버그 발생. 클라이언트에 보내주는 서버 리스트에 채널 정보 또는 서버 상태 정보가 제대로 전송 안되는 듯.
- AuthServer 1.8.3 버그 수정하여 개발서버 재배포 완료.
- 대만/중국 버전 관리를 위해 빌드 구성 추가(Release_Taiwan, Release_China) 및 define 추가(__RELEASE_TAIWAN__, __RELEASE_CHINA__)
/06.11.10/
== AuthServer 1.8.4(SUN) ===
ServerInfo에 채널/월드 설정할 때 인덱스가 0부터 시작하게 했던 것을 알기쉽게 1부터 시작하도록 수정
============================
/06.11.13/
- AuthServer 1.8.4에서 서버 목록 정보 제대로 전송 못 하는 버그 수정
== AuthServer 1.8.5(SUN) ===
DB 설정파일 정보를 암호화하여 File Injection하도록 수정(SUN스튜디오의 Mola Lib 사용)
============================
== LoginFront 1.3.7(SUN) ==
_NETWORKBUFFER_CHANGE define에 따라 네트웍 버퍼 관련 코드 수정된 것 적용
===========================
/06.11.15/
- 빌링서버 연동 패킷 헤더 바뀜(4바이트 사이즈/4바이트 타입). 거기에 맞춰서 수정 후 테스트.
- 테스트용 데이터도 넣어 둬야 함.
== LoginFront 1.3.8(SUN) ==
아머킷 패턴 보내는 시점을 인증 완료된 시점으로 변경
===========================
- 대만 테스트버전 다시 빌드. 현재 라이브 버전으로 빌드.
- 목록 설정에서 SERVERCNT 쓰지 않도록 수정
/06.11.21/
- 빌링서버 연동 중 만료 알림 패킷 작업 완료.(GameAgent까지. 클라 테스트만 해보면 됨)
== AuthServer 1.8.6(SUN) ==
빌링서버 연동 기능 수정 및 프로토콜 추가
서버 설정 파일에서 SERVERCNT 쓰지 않아도 알아서 설정하도록 수정
===========================
/06.11.22/
- 빌링서버에 PC방 아닌놈은 정량 차감/로그아웃 안보내게 수정
- 로그인 시점(OnS2SPCLogin)에 빌링 서버에 로그인 알림 추가(SendLogin)
- 빌링 만료된 경우 로그인 요청할 때 응답에 빌링 불가 알림 문자열 추가(define 아님)
== AuthServer 1.8.7(SUN) ==
빌링서버에 PC방 아닌놈은 정량 차감/로그아웃 안보내게 수정
로그인 시점(OnS2SPCLogin)에 빌링 서버에 로그인 알림 추가(SendLogin)
빌링 만료된 경우 로그인 요청할 때 응답에 빌링 불가 알림 문자열 추가
===========================
/06.11.23/
- 빌링 만료된 경우 로그인 요청할 때 받아오는 프로시저 수정. PcTime 컬럼 하나 추가로 받는다.(시간 남으면 남은대로, 없으면 0 반환)
- define _BILLING_CHECK_AUTH로 추가
- 서버 선택만 하면 게임 접속 상태로 넘어갔던 버그 수정
- 기존의 1분간 인증하면 종료시키는 코드를 3분간 인증으로 변경+인증서버와 접속시간만이 아니라, 하트비트 없었던 시간 3분으로 수정
== AuthServer 1.8.8(SUN) ==
빌링 만료된 경우 로그인 요청할 때 받아오는 프로시저 수정. PcTime 컬럼 하나 추가로 받는다.(시간 남으면 남은대로, 없으면 0 반환)
define _BILLING_CHECK_AUTH로 추가
서버 선택만 하면 게임 접속 상태로 넘어갔던 버그 수정
기존의 1분간 인증하면 종료시키는 코드를 3분간 인증으로 변경+인증서버와 접속시간만이 아니라, 하트비트 없었던 시간 3분으로 수정
===========================
- 개발배포에 1.8.8 패치
- AccountManager::Run()에서 인증서버 타임아웃 체크하는 기준에 서버선택->게임접속 사이의 시간을 뺐음. 대신 인증과 통신할 때마다
시간 갱신하는 코드도 다시 제거.
/06.11.24/
- 빌링 시간 만료된 경우 인증서버에서 로그를 남기지 않아서 로그 추가
- 사내서버 AuthServer 1.8.8 패치: AuthAgent는 1.1.6 패치
- _BILLING_CHECK_AUTH define 봉인: 인증서버에서 로그인할 때 빌링 체크 안한다
- Logout 보낸 경우 빌링 테스트 주기마다 Logout 안온 놈을 체크하여 카운트 증가. 증가는 하지만 끊어주지는 않고 로그만 남긴다
== AuthServer 1.8.9(SUN) ==
define _BILLING_CHECK_AUTH 제거
빌링 만료되어 GameAgent에 접속 종료 요청했을 때 응답 올 때까지 대기하며 timeout(빌링 타임아웃 주기와 동일)시마다 로그 남긴다
===========================
/06.11.27/
== AuthServer 1.8.10(SUN) ==
서버 목록 보내줄 때 맨 마지막 채널 빠지는 버그(NULL서버를 채널로 생각하므로) 수정
============================
- 빌링 만료됐을 때 끊는 부분 define으로 구분하도록 수정(빼면 끊어주지 않음)
- GameAgent와 끊어졌을 때 위치정보 Clear하면서 빌링서버에 로그아웃 알려주는 코드 추가
/06.11.28/
- 라이브 테스트 패치시 문제 발생. 구 버전 설정파일 일부 읽어들이다가 서버 종료되는 버그 발견.
- AuthAgent에서 AgentList 안 받게 하면 클라이언트에 내부 IP 전송하는 문제 발생. 설정살 명확하지 않아 그냥 define 제거하여
과거 버전으로 돌렸음.
- 라이브테스트 재패치(빌링 만료시 종료하는 부분만 빠진 버전)
== AuthAgent 1.1.5(SUN) ==
AgentList 그대로 사용
==========================
/06.12.01/
- 중국버전 1.8.2(SUN)로 빌드하여 GT팀 전달 완료.
- WIKI에 새로운 설정 파일 적용 작업중.
/06.12.06/
- WIKI 새로운 설정 파일 및 DB 테스트 완료. 개발 패치 12/7에 예정.
- 대만 LiveTest 서버 빌드 추가
== AuthAgent 1.1.6(SUN) ==
끊어줄 때 이유 알림
==========================
== AuthServer 1.8.11(SUN) ==
끊어줄 때 이유 알림
============================
/06.12.07/
- WIKI 빌드 완료
== AuthServer 1.1.0(WIKI) ==
== AuthAgent 1.1.0(WIKI) ==
== LoginFront 1.1.0(WIKI) ==
SUN에 적용된 설정파일 변경, DB 패치내용 전부 적용
============================
/06.12.11/
- 개발/사내 아머킷 패턴 버그(1024 넘어가는 데이터 복사할 때 옵셋 잘못 지정되는 버그) 수정
== AuthServer 1.8.12(SUN) ==
아머킷 패턴 버그 수정
============================
/06.12.13/
== AuthServer 1.8.13(SUN) ==
빌링 만료 알람 패킷 구조체 달랐던 문제 수정
============================
== AuthAgent 1.1.7(SUN) ==
빌링 만료 알람 패킷 구조체 달랐던 문제 수정
==========================
- extreme 라이브러리 최신버전 개발배포에 패치.(업뎃 늦어지는 문제 해결될까 해서 시도)
/06.12.14/
- 빌링 끊어졌다 안 붙는 에러 있다고 해서 일부 로그 추가하고 접속 끊어진 상태에서 패킷 전송할 때 실패 처리 코드 추가
- 라이브 테스트 서버에 빌링 만료되면 끊어주는 코드 추가(15일 패치용) - 라이브 테스트 AuthServer 1.8.13으로 버전업
/06.12.16/
- GameAgent에 ASK_PC_LOGOUT 날릴 때 바로 빌링서버에도 SendLogout() 해주도록 코드 수정
즉, 이후에 ANS_PC_LOGOUT이나 PC_LOGOUT 오더라도 이미 빌링 만료시킨 유저는 빌링서버에 SendLogout() 보내지 않는다.
혹시라도 GameAgent 오류로 인해 ANS_PC_LOGOUT이 바로 오지 않더라도 부당한 차감을 하는 경우를 방지하기 위함이다.
대신, 어떤 오류에 걸려서든 해당 유저가 그 이후로 계속 플레이가 가능했다면 그 시간만큼은 차감되지 않으므로
회사에는 손해다.
- 다시 변경. 위의 방법대로 하면 인증 로그와 빌링 로그의 시간이 안 맞아버리는 문제가 생긴다. 따라서
로그아웃 요청이 올 시간이 지난 경우 지나친 차감을 막기 위해 빌링 차감 1 주기만큼만 차감한다.
== AuthServer 1.9.1(SUN) ==
빌링 연동 오픈 준비 완료
로그아웃 요청이 올 시간이 지난 유저의 경우 지나친 차감을 막기 위해 빌링 차감 1 주기만큼만 차감하도록 수정
============================
/06.12.18/
- 19일 빌링 연동 패치 준비 완료! 전체 버전 2.0.0으로 업.
/06.12.19/
- 인증중인 유저들 중 너무 오래 걸리는 유저 끊어주는 기준 시간을 설정 파일에서 조정 가능하도록 수정.
[GAMEINFO]에 AUTH_TICK으로 설정하도록 하였음.(ms 단위)
LoginFront에서도 마찬가지로 아무 패킷 없는 유저 끊는 기준을 설정 파일에서 조정하도록 수정.
[LoginFront]에 LoginTick으로 설정 가능(ms 단위)
현재 라이브 테스트서버 패치까지 완료.
== AuthServer 2.0.1(SUN) ==
인증중인 유저들 중 너무 오래 걸리는 유저 끊어주는 기준 시간을 설정파일에서 조정 가능하도록 수정
===========================
== LoginFront 2.0.1(SUN) ==
아무 패킷 없는 유저 끊는 기준을 설정 파일에서 조정하도록 수정
===========================
/06.12.26/
- 로그아웃 로그에서 IP 남지 않아서 튕기는 유저들의 로그 확인 불가능하다는 문제 제기 있었음.
IP 남기도록 수정은 했는데...어차피 게임로그에서 확인이 가능한 거라 굳이 패치할 필요는 없을 것 같아 일단 주석 처리.
(로그에 문자열 하나 남기는 것도 거슬림)
/06.12.28/
- 각 서버 관련 Update() 호출 순서 조정(빌링서버와 AuthAgent 순서 문제 때문에 AuthAgent에서 로그아웃 처리 되기 전에 빌링 코드에
들어가는 문제 있었음)
== AuthServer 2.0.2(SUN) ==
각 서버 관련 Update() 호출 순서 조정
============================
- 차후 AuthServer 모든 로그에 UserGuid를 남겨야 할 것으로 판단된다. 빌링서버 등과 기록 비교할 때 기준이 모호함.
- 빌링 관련 로그들을 텍스트 로그로만 남기다 보니 문제가 생겼을 때(안 생겨야 정상이긴 하지만) 바로바로 확인이 불가능하다.
빌링은 DB에서 확인이 되는데 인증은 제한적인 내용만 DB에 남기기 때문에 반드시 텍스트 로그를 봐야 전후 순서 확인 가능.
이 부분은 장기적으로 로그 콜렉터 등을 통해서 해결하든지 하면 좋을 것 같긴 한데...당장의 답은 없다.
/07.01.03/
- GM이 사내 IP가 아닌 곳에서 접속하면 아예 끊어버리는 코드 추가(중국 The9 요청) - #define _GM_IPCONNECT_DISCONN 추가.
테스트는 완료됐고 9일 출장 전까지 GT팀에 바이너리 제공 예정.
중국 버전은 1.8.3으로 하나 올림(국내 1.8.3과 다름)
== AuthServer 1.8.3(SUN-China) ==
GM이 사내 IP가 아닌 곳에서 접속하면 아예 끊어버리는 코드 추가
=================================
/07.01.08/
- 패치 후에도 빌링쪽 빵꾸나는 유저가 있다고 해서 확인한 결과 있었다. 어째서인지 소스 찾아보던 중 문제 확인.
NetworkBilling::Update()에서 MakeList를 한 뒤 바로 보내줘야 되는데, 그렇지 않고 SendDeduction()이 MakeList()보다 앞에 있었다.
이것 때문에 MakeList()를 했던 바로 그 루프때 보내는 것까지 완료되지 않고 그 다음 루프에 완료된 것. 이러면 뭐 Agent랑 순서 바꿔봐야
의미가 없다.-_-; 이 순서도 바꾸었고, 개발/사내->라이브테스트/라이브 순서로 나갈 예정.
- 헌데 이렇게 한다고 해도 3000개를 넘어가는 경우에는 의미가 없다. 어차피 3000개 넘어가면 다음 루프로 Send가 미뤄지기 때문에 겹치는
경우는 반드시 발생한다. 방법이 없다.-_-;
일단 소스 변경은 취소.
/07.01.09/
- 인증 로그 확인 결과 ChangeStatus에서 로그인 시각을 0-0-0 0:0:0으로 넣는 버그 확인. 원인 파악중.
서버 선택할 때 발생한 것으로 보인다.(정확한 순서: 서버 선택->AnsNewClient 오기 전에 로그아웃->AnsNewClient 올 때 계정 없음 표시)
일단 정상적으로 봐서는 이런 문제가 발생할 것 같지 않은데...
/07.01.10/
- 일단 여러 가지 문제를 확인했으나 원인을 찾지 못해서 로그인 시각 설정하는 시점만 CheckOverlapLogin 안으로 옮겼다.
/07.01.15/
- extreme에서 SendPacket()할 때 버퍼 크기 모자라서 False 떨어지는 경우 해결책 찾아서 처리 - 일단 인증에서는 무조건 끊는 걸로 가자.
/07.01.26/
- 문자열 처리 잘못될 여지가 있는 부분 확인하여 수정중.
/07.02.02/
- ASK_PC_LOGOUT 보낼 때 이유 넣는 부분에서 일부 보내지 않던 것 보내게 수정(중복 접속, 잘못된 인증 정보)
== AuthServer 2.1.2 Dev(SUN) ==
== AuthServer 1.2.0 Dev(WIKI) ==
ASK_PC_LOGOUT 보낼 때 이유 넣는 부분에서 일부 보내지 않던 것 보내게 수정(중복 접속, 잘못된 인증 정보)
extreme에서 SendPacket() 실패하면 무조건 접속 종료
===============================
/07.02.07/
- 보안 카드 인증 프로토콜 추가. 회의를 거쳐 fix해야 하는데...늦어지네.-_-;
/07.02.21/ -> 김종호
- ServerInfo.ini 설정파일에 [MachingDBInfo] 카테고리 이름을 [RTTDBInfo] 로 변경
/07.02.23/성현창
- 중국/대만용 설정파일 바뀐 버전 빌드
/07.02.26/성현창
- 중국/대만용 빌드에서 DB Injection 빠져서 재빌드(실수-_-;)
== AuthServer 2.0.2 Taiwan(SUN) ==
== AuthServer 2.0.2 Taiwan Test(SUN) ==
== AuthServer 2.0.3 China(SUN) ==
DB Injection 기능 빠져 있는것 추가하여 빌드
=================================
-중국/대만 DB Injection용 프로젝트 설정 수정, 배치 파일 및 스크립트 파일 추가
/07.03.02/성현창
- 보안 인증 작업중에 생각이 바뀌어서 주고 받는 패킷 순서를 바꾸었다.
/07.03.07/성현창
- 보안 인증 중국 배포 버전 마감에 맞추어 배포. 리팩토링 필요하다.(퇴사 전까지 define 제거와 함께 작업 예정)
== AuthServer 2.1.0 China(SUN) ==
보안 인증 기능(Matrix Card) 추가
=================================
/07.03.09/성현창
- The9에서 넘어온 코드가 이상하다! 릴리즈일 때 값이 지멋대로...뭔가 메모리 초기화 문제가 있는 것 같은데? 확인중.
/07.03.12/(성현창)
- 매트릭스 카드 생성코드에서 사이즈 계산 잘못한 부분 수정
== AuthServer 2.1.1 China(SUN) ==
보안 인증 기능(Matrix Card) 버그 수정
=================================
보안 인증 대상일 때 DB에서 읽어온 값들(나이, Sts, IP 등)이 제대로 설정되지 않는 결함 수정.
== AuthServer 2.1.2 China(SUN) ==
보안 인증 대상일 때 DB에서 읽어온 값들(나이, Sts, IP 등)이 제대로 설정되지 않는 결함 수정
=================================
/07.03.15/성현창
-의미없는 define들(전부 적용되는 것들) 제거했다. 다만 WIKI의 경우 _DBINFO_CRYPT는 사용하지 않고 있었으므로 이 내용으로 패치할 때는
DBInfo Injection 처리를 해 줘야 한다. 이건 내일까지 해 놓을 예정.
-_SERVER_WORLDBASE define을 게임별 구분(일단 ini에 저장-차후 DB로 이전하는 것이 좋다)하는 코드로 바꾸도록 수정할 것(역시 내일 중 작업)
/07.03.27/ -> 김종호
== AuthServer v2.0.3 Taiwan(SUN)
== AuthServer v2.0.3 Taiwan Test(SUN)
== AuthServer v2.0.3 LiveTest(SUN)
- 3회 연속 인증 실패시 30분간 블록기능 추가
===========================================
- 사내 대만 테스트 인증서버 패치
- 국내 라이브 테스트 인증서버 패치
//07.03.29/ -> 김종호
== AuthServer v2.0.3 Taiwan(SUN)
== AuthServer v2.0.3 Taiwan Test(SUN)
- 계정 블록시 인증실패 회수 및 블록 시간을 설정할수 있게 변경
- 비밀번호 오류시 오류 카운트 데이터 추가
=============================================================
//07.03.30/ -> 김종호
== AuthServer v2.0.3 Taiwan(SUN)
- 개발 대만 테스트 서버(10.101.152.2, 라이브 버전) 패치
//07.04.03/ -> 김종호
== AuthServer v2.0.3 Taiwan(SUN)
- 사내 대만 테스트 서버(10.1.51.10, 라이브 버전) 패치
== AuthServer v2.0.3 Taiwan Test(SUN)
- 대만 라이브 테스트 버전 배포
//07.04.13/ -> 김종호
== AuthServer v2.0.3 Taiwan(SUN)
- 대만 라이브 버전 배포
//07.05.03/ -> 김종호
== AuthServer v2.1.3 China(SUN)
- 개발 중국 테스트 서버(10.101.152.1) PAAS 기능 추가 및 패치 테스트
//07.05.08/ -> 김종호
- ini 설정파일에서 서버의 IP를 읽을때 14자리만 읽는 버그 수정
//07.08.01/ -> 김종호
== AuthServer v2.0.3 Live(SUN)
- 연속 인증 실패시 일정시간 블록기능 추가
=========================================
- 국내 라이브 인증서버 패치
//07.11.22/ -> 김종호
☆ AuthServer Define 정리, 버전업
== 대만
- Taiwan AuthServer v2.0.3 -> v2.0.4 (Live, LiveTest 공통)
== 중국
- China AuthServer v2.1.2 -> v2.1.4
== 한국(버전 통합)
- AuthServer v2.1.2 -> v2.1.3 ( 개발, 사내 공통 )
- AuthServer v2.0.2 -> v2.1.3 ( Live )
- AuthServer v2.0.3 -> v2.1.3 ( LiveTest )
//07.11.23/ -> 김종호
== AuthServer Build 솔루션 추가(일본 버전)
- AuthServer v2.1.3 Japan
//07.12.11/ -> 김종호
== AuthServer v2.1.4 Live, LiveTest(국내 SUN)
- 인증 오류 실패시 실패계정 정보를 DB에 로그 생성
===========================================
- 사내 테스트 인증서버 패치
- 국내 라이브 및 라이브테스트 인증서버 패치
===========================================
//07.12.14~17/ -> 김종호
== AuthServer v2.1.5 Dev, Office Test(국내 SUN)
== AuthAgent v2.0.1 Dev, Office Test(국내 SUN)
- 유저 로그인시 Log DB에 선택한 캐릭터 이름 업데이트 기능 추가
==================================================
-> 개발 및 사내 테스트 인증서버 및 인증 Agent 패치
==================================================
//07.12.18/ -> 김종호
== AuthServer v2.1.5 Live, LiveTest(국내 SUN)
== AuthAgent v2.0.1 Live, LiveTest(국내 SUN)
- 유저 로그인시 Log DB에 선택한 캐릭터 이름 업데이트 기능 추가
===========================================================
-> 국내 라이브 및 라이브 테스트 인증서버 및 인증 Agent 패치
===========================================================
///////////////////////////////////////////////////////////////////////////////////
////08.01.xx/ -> 김종호
//== AuthServer v2.1.4 -> v2.2.4 Live(중국 SUN)
//- 형상 인증 기능 추가
// -> ../lib 폴더에 라이브러리 파일 2개 추가(dbg_ShapeAuth.lib, ShapeAuth.lib)
// -> ../include 폴더에 헤더 파일 3개 추가(SALib_dll.h, SATypeDef.h, IShapeAuth.h)
// -> ../_bin 폴더에 DLL 파일 2개 추가(Shape_Auth.dll, dbg_Shape_Auth.dll)
///////////////////////////////////////////////////////////////////////////////////
//08.01.15/ -> 김종호
☆ AuthServer 버전업
== 대만
- Taiwan AuthServer v2.0.4 -> v2.1.3 (Live, LiveTest 공통)
//08.01.17/ -> 김종호
== AuthServer v2.1.5 China(SUN)
=====================
-> 중국 인증서버 배포
=====================
//08.02.04/ -> 김종호
== AuthServer v2.1.3 Live(일본 SUN)
+ 일본 NetCafe 연동 기능 추가
+ 'NetCafeDBInfo.ini' 파일 추가
=================================
-> 개발 일본 테스트 인증서버 패치
-> 일본 인증서버 배포
=================================
//08.06.02/ -> 김종호
== AuthServer v2.1.5 Live(중국 SUN)
== AuthServer v2.1.4 Live(대만 SUN)
== AuthServer v2.1.4 LiveTest(대만 SUN)
== AuthAgent v2.0.1 Live(중국 SUN)
== AuthAgent v2.0.1 Live(대만 SUN)
== AuthAgent v2.0.1 LiveTest(대만 SUN)
+ 유저 로그인시 Log DB에 선택한 캐릭터 이름 업데이트 기능 추가
========================================================
-> 개발 중국, 대만 테스트 인증서버 및 인증 에이전트 패치
-> 중국, 대만 인증서버 및 인증 에이전트 배포
========================================================
//08.08.13/ -> 김종호
== AuthServer Build 솔루션 추가(영문 버전)
- AuthServer v2.1.5 English
==================================================
-> 개발 영문판 테스트 인증서버 설치(10.101.152.15)
-> LoginFront v2.0.2 English
-> AuthServer v2.1.5 English
-> AuthAgent v2.0.1 English
==================================================