698 lines
28 KiB
Plaintext
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
|
|
================================================== |