136 lines
4.0 KiB
C
136 lines
4.0 KiB
C
#pragma once
|
|
|
|
#define MAX_IP_SIZE 64
|
|
#define MAX_NAME_SIZE 128
|
|
#define MAX_CLIENT_BUF_SIZE 1024
|
|
#define MAX_QUERY_STRING 1024
|
|
#define MAX_PATCH_VER_SIZE 32
|
|
#define MAX_WORLD_NAME_SIZE 64
|
|
#define MAX_USERID_SIZE 64
|
|
#define MAX_PASSWORD_SIZE 64
|
|
#define MAX_SERVERKEY_COUNT_PER_AGENT 10
|
|
#define MAX_GAMESERVER_COUNT_PER_AGENT 10
|
|
#define TOTAL_PATCH_VALUE 250
|
|
#define MAX_USER_COUNT 256
|
|
#define MAX_FTP_CONNECT_COUNT 100
|
|
#define MAX_PATCHDATA_COUNT 50
|
|
#define STRING_TABLE_ID_START_VALUE 10000
|
|
//Stream Size
|
|
#define MAX_SERVER_INFO_STREAM_SIZE 2048
|
|
#define MAX_VERSION_COUNT 3 //버전 구분자의 개수
|
|
#define MAX_VERSION_CHAR_SIZE 32 //최소 캐릭터 사이즈
|
|
#define MAX_FOLDER_NAME 64 //최대 폴더이름의 사이즈
|
|
#define MAX_FILE_NAME 64 //최대 파일이름 사이즈
|
|
#define DEFAULT_BUFFER_SIZE 128 //기본 버퍼 사이즈
|
|
//#define MAX_UPDATE_FOLDER_COUNT 100 //최대 업데이트 폴더 개수
|
|
//#define MAX_PARAM_COUNT 10 //최대 파라미터 개수
|
|
//#define LAUNCHER_UPDATE_NUM 100 //스크립트에서 설정하는 업데이트 넘버..런처는 없으므로 100으로 한다.
|
|
|
|
#define SAFE_DELETE( p) { if ( p) { delete ( p); ( p) = NULL; } }
|
|
#define SAFE_DELETE_ARRAY( p) { if ( p) { delete[] ( p); ( p) = NULL; } }
|
|
#define SAFE_RELEASE( p) { if ( p) { ( p)->Release(); ( p) = NULL; } }
|
|
#define SAFE_RELEASENDELETE(p) if (p) { (p)->Release(); delete (p); (p) = NULL; }
|
|
|
|
#define SWAP_32BIT_DATATYPE(dwOldSK) \
|
|
(( ((dwOldSK)&0x000000FF) << 24) | (((dwOldSK)&0x0000FF00) << 8) | (((dwOldSK)&0x00FF0000) >> 8) | (((dwOldSK)&0xFF000000) >> 24))
|
|
|
|
#define IN
|
|
#define OUT
|
|
#define INOUT
|
|
|
|
|
|
#define DISPMSG printf
|
|
|
|
|
|
|
|
|
|
#ifdef _DEBUG
|
|
|
|
#include <crtdbg.h>
|
|
#include <assert.h>
|
|
|
|
#define UASSERT(expr) _ASSERTE(expr)
|
|
#define ASSERTMSG(expr,m) if(!(expr)) \
|
|
{ \
|
|
printf(m); \
|
|
}
|
|
// 릴리즈시에도 Assert가 걸릴 수 있게 break
|
|
// 스크립트 오류시에
|
|
#define FASSERT(expr) _ASSERTE(expr)
|
|
#define DEBUG_CODE(c) c
|
|
|
|
#else
|
|
|
|
|
|
#define StartMemoryLeakCheck() __noop
|
|
#define BreakPointOnMemoryLeak __noop
|
|
#define UASSERT(expr) _ASSERTE(expr)
|
|
#define ASSERTMSG(expr,m) __noop
|
|
#define DEBUG_CODE(c) c
|
|
|
|
// 릴리즈시에도 Assert가 걸릴 수 있게 break
|
|
// 스크립트 오류시에
|
|
#define FASSERT(expr) {if( !(expr) ) { printf("Assertion failed: "###expr##", file %s, line: %d\n", __FILE__, __LINE__);__asm int 3}}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// define
|
|
#define __20070521__CHANGE_SERVER_TYPE
|
|
#define __20080310__CHANGE_SET_SERVERKEY // 버서키 생성 방식 변경
|
|
#define __20080312__SOLARAUTH_SERVER_PATCH // 솔라 패치기능 작업
|
|
#define __20120306__SOLARAUTH_SERVER_PATCH_RESULT// 솔라 패치기능 작업
|
|
|
|
#ifdef __20080312__SOLARAUTH_SERVER_PATCH
|
|
#define __VERSIONEX_CLASS // 버전 클래스
|
|
#endif
|
|
|
|
#define __20101123__UPDATE_AGENT_AUTO_RESTART // UpdateAgent에서 특정 서버들 재시작 지원
|
|
|
|
#define _NA_006254_20121119_SERVER_LIST_MODIFY // 2012.11.19 / 김진휘 / 불필요 서버리스트 제거및 서버리스트 수정
|
|
|
|
#define _NA_006543_20130318_HEARTBEAT // 2013.3.18 / 민경승 / UpdateAgent의 상태를 확인하기 위한 HeartBeat패킷 작업
|
|
|
|
// 동작과정( 작성 : 민경승 )
|
|
// UpdateServer와 UpdateAgent들이 heatbeat패킷으로 통신하고 응답이 없을 경우, Agent가 종료된 것으로 간주한다.
|
|
// 1. 해당 agentKey를 가진 서버를 찾고 역으로 월드를 찾아낸다.
|
|
// 2. 월드 내의 채널들을 돌며 해당 Agent의 Key를 가지고 있으면 빨간불로 바꾼다.(빨간불은 '패치중'상태에서 사용하므로 '패치중'상태를 자주 사용하는 경우 헷갈릴 수 있다.)
|
|
//
|
|
// 이 작업은
|
|
// (1) 하나의 AgentKey를 2개 이상의 월드에서 가지고 있지 않는다. (하나의 월드에서만 탐색함)
|
|
// (2) 하나의 Channel아래의 서버들은 모두 같은 AgentKey를 가지고 있다.
|
|
// (3) 다수의 Channel에 똑같은 AgentKey가 들어갈 순 있지만, Channel들이 모두 하나의 World에 있어야 한다. ( (1)의 예시)
|
|
// 이와 같은 내용을 전제로 작업되었기 때문에 이와 다른 경우, 정상적인 동작을 하지 않음.
|
|
|
|
#define _NA_006662_20130423_SVNPATCH //2013.04.23 / 민경승 / SVN스크립트 관리에서 패치기능 추가
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|