Added support for CLion, removed a lot of unused code in preparation of the rewriting of the network stack

This commit is contained in:
2022-03-06 17:36:43 +02:00
parent b99293c9d7
commit d2f43a8620
82 changed files with 251 additions and 12546 deletions

View File

@ -16,7 +16,6 @@ find_package(Boost COMPONENTS system REQUIRED)
find_package(DevIL REQUIRED)
find_package(LZO REQUIRED)
find_package(cryptopp CONFIG REQUIRED)
find_package(GTest REQUIRED)
add_executable(${PROJECT_NAME} ${sources})
@ -30,7 +29,6 @@ target_link_libraries (${PROJECT_NAME} cryptopp-static)
include_directories(${Boost_INCLUDE_DIR})
target_link_libraries (${PROJECT_NAME} ${Boost_LIBRARIES})
if (IL_FOUND)
include_directories(${IL_INCLUDE_DIR})
target_link_libraries (${PROJECT_NAME} ${IL_LIBRARIES})
@ -47,11 +45,5 @@ set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package (Threads REQUIRED)
target_link_libraries (${PROJECT_NAME} Threads::Threads)
# Google test
if (GTEST_FOUND)
include_directories(${GTEST_INCLUDE_DIRS})
target_link_libraries (${PROJECT_NAME} ${GTEST_BOTH_LIBRARIES})
endif (GTEST_FOUND)
target_link_libraries(${PROJECT_NAME} libgame libpoly libsql libthecore liblua)

View File

@ -279,7 +279,7 @@ void SGuildMarkBlock::CopyFrom(const BYTE * pbCompBuf, DWORD dwCompSize, DWORD c
return;
m_sizeCompBuf = dwCompSize;
thecore_memcpy(m_abCompBuf, pbCompBuf, dwCompSize);
memcpy(m_abCompBuf, pbCompBuf, dwCompSize);
m_crc = crc;
//printf("SGuildMarkBlock::CopyFrom: %u > %u crc %u\n", sizeof(Pixel) * SGuildMarkBlock::SIZE, m_sizeCompBuf, m_crc);
}

View File

@ -116,7 +116,7 @@ bool AuctionBoard::InsertItemInfo (TAuctionItemInfo* item_info)
}
c = new TAuctionItemInfo();
thecore_memcpy (c, item_info, sizeof(TAuctionItemInfo));
memcpy (c, item_info, sizeof(TAuctionItemInfo));
c->item_proto = ITEM_MANAGER::instance().GetTable(c->item_num);
item_map.insert(TItemInfoMap::value_type(item_info->item_id, c));
@ -170,7 +170,7 @@ bool AuctionBoard::UpdateItemInfo (TAuctionItemInfo* item_info)
return false;
}
thecore_memcpy (c, item_info, sizeof(TAuctionItemInfo));
memcpy (c, item_info, sizeof(TAuctionItemInfo));
return true;
}
@ -352,7 +352,7 @@ bool SaleBoard::InsertItemInfo (TSaleItemInfo* item_info)
return false;
}
c = new TSaleItemInfo ();
thecore_memcpy (c, item_info, sizeof(TSaleItemInfo));
memcpy (c, item_info, sizeof(TSaleItemInfo));
c->item_proto = ITEM_MANAGER::instance().GetTable(c->item_num);
@ -457,7 +457,7 @@ bool WishBoard::InsertItemInfo (TWishItemInfo* item_info)
if (item_it == item_map->end())
{
TWishItemInfo* c = new TWishItemInfo();
thecore_memcpy (c, item_info, sizeof(TWishItemInfo));
memcpy (c, item_info, sizeof(TWishItemInfo));
c->item_proto = ITEM_MANAGER::instance().GetTable(c->item_num);
item_map->insert (TItemMap::value_type (item_num, c));
@ -1234,7 +1234,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
cmd_result++;
TAuctionItemInfo* new_item_info = (TAuctionItemInfo*)cmd_result;
TAuctionItemInfo* old_item_info = Auction.GetItemInfo (new_item_info->get_item_id());
thecore_memcpy (old_item_info, new_item_info, sizeof(TAuctionItemInfo));
memcpy (old_item_info, new_item_info, sizeof(TAuctionItemInfo));
MyBid.Insert(new_item_info->bidder_id, new_item_info->item_id, new_item_info->get_bid_price());
if (ch != NULL)
{
@ -1251,7 +1251,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
cmd_result++;
TAuctionItemInfo* new_item_info = (TAuctionItemInfo*)cmd_result;
TAuctionItemInfo* old_item_info = Auction.GetItemInfo (new_item_info->get_item_id());
thecore_memcpy (old_item_info, new_item_info, sizeof(TAuctionItemInfo));
memcpy (old_item_info, new_item_info, sizeof(TAuctionItemInfo));
if (ch != NULL)
{
ch->ChatPacket(CHAT_TYPE_INFO, "<EFBFBD><20>ع<EFBFBD><D8B9>Ⱦ<EFBFBD>.");

View File

@ -1,182 +0,0 @@
/* vi: set sw=4 ts=8 cino=g0,\:0 : */
/*********************************************************************
* date : 2010.4.7
* file : auth_brazil.c
* author : mhh
* description :
*/
#include "stdafx.h"
#ifndef __WIN32__
#include <unistd.h>
#include <stdint.h>
#endif
#include <stdio.h>
#include <string.h>
#ifdef __FreeBSD__
#include <md5.h>
#else
#include "../../libthecore/include/xmd5.h"
#endif
#include "auth_brazil.h"
static const char* FN_md5(const char *src)
{
static char s_buffer[512];
memset(s_buffer, 0x00, sizeof(s_buffer));
unsigned char digest[16] = {0};
MD5_CTX md5;
MD5Init(&md5);
MD5Update(&md5, (const unsigned char*) src, strlen(src));
MD5Final(digest, &md5);
int offset = 0;
for (int i=0; i<16; ++i) {
offset += sprintf(s_buffer + offset, "%02x", digest[i]);
}
return s_buffer;
}
static int FN_make_request(const char *login, const char *password, /*out*/ char *dst, int dst_size)
{
int len = snprintf(dst, dst_size,
// "GET /metin2/game_auth.php?ID=%s&PW=%s HTTP/1.1\r\n"
"GET /metin2/?ID=%s&PW=%s HTTP/1.1\r\n"
"Host: auth.ongame.com.br\r\n"
"Connection: Close\r\n\r\n",
login, FN_md5(password));
return len;
}
static int FN_parse_reply(char *reply)
{
char buffer[2048];
strncpy(buffer, reply, sizeof(buffer));
const char *delim = "\r\n";
char *last = 0;
char *v = strtok_r(buffer, delim, &last);
char *result = 0;
while (v)
{
result = v;
v = strtok_r(NULL, delim, &last);
}
if (result)
{
if (0 == strcasecmp("true", result))
return AUTH_BRAZIL_SUCC;
else if (0 == strcasecmp("false", result))
return AUTH_BRAZIL_WRONGPWD;
else if (0 == strcasecmp("unknown", result))
return AUTH_BRAZIL_NOID;
else if (0 == strcasecmp("flash", result))
return AUTH_BRAZIL_FLASHUSER;
}
return AUTH_BRAZIL_SERVER_ERR;
}
extern void socket_timeout(socket_t s, long sec, long usec);
int auth_brazil(const char *login, const char *pwd)
{
const char *host = "auth.ongame.com.br";
int port = 80;
socket_t fd = socket_connect(host, port);
if (fd < 0)
{
sys_err("[AUTH_BRAZIL] : could not connect to gsp server(%s)", host);
return AUTH_BRAZIL_SERVER_ERR;
}
socket_block(fd);
socket_timeout(fd, 3, 0);
// send request
{
char request[512];
int len = FN_make_request(login, pwd, request, sizeof(request));
#ifndef __WIN32__
if (write(fd, request, len) < 0)
#else
if (_write(fd, request, len) < 0)
#endif
{
sys_err("[AUTH_BRAZIL] : could not send auth-request (%s)", login);
close(fd);
return AUTH_BRAZIL_SERVER_ERR;
}
}
// read reply
{
char reply[1024] = {0};
int len = read(fd, reply, sizeof(reply));
close(fd);
if (len <= 0)
{
sys_err("[AUTH_BRAZIL] : could not recv auth-reply (%s)", login);
return AUTH_BRAZIL_SERVER_ERR;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><ECBFA1> query count<6E><74> <20>ø<EFBFBD><C3B8><EFBFBD>.
auth_brazil_inc_query_count();
return FN_parse_reply(reply);
}
}
static int s_query_count = 0;
int auth_brazil_inc_query_count()
{
return ++s_query_count;
}
void auth_brazil_log()
{
FILE *fp = 0;
// open and try backup
{
fp = fopen("AUTH_COUNT.log", "a");
if (0 == fp)
return;
struct stat sb;
fstat(fileno(fp), &sb);
if (sb.st_size > 1024 * 1024)
{
fclose(fp);
rename("AUTH_COUNT.log", "AUTH_COUNT.log.old");
fp = fopen("AUTH_COUNT.log", "a");
}
}
// write log
{
fprintf(fp, "%d\n", s_query_count);
fclose(fp);
}
// reset query count
s_query_count = 0;
}

View File

@ -1,23 +0,0 @@
/* vi: set sw=4 ts=8 cino=g0,\:0 : */
/*********************************************************************
* date : 2010.4.7
* file : auth_brazil.h
* author : mhh
* description :
*/
#ifndef __auth_brazil_h_1270647899__
#define __auth_brazil_h_1270647899__
#define AUTH_BRAZIL_SERVER_ERR 0
#define AUTH_BRAZIL_SUCC 1
#define AUTH_BRAZIL_NOID 2
#define AUTH_BRAZIL_WRONGPWD 3
#define AUTH_BRAZIL_FLASHUSER 4
int auth_brazil(const char *login, const char *pwd);
int auth_brazil_inc_query_count();
void auth_brazil_log();
#endif // __auth_brazil_h_1270647899__

View File

@ -37,7 +37,7 @@ CObject::CObject(TObject * pData, TObjectProto * pProto)
{
CEntity::Initialize(ENTITY_OBJECT);
thecore_memcpy(&m_data, pData, sizeof(TObject));
memcpy(&m_data, pData, sizeof(TObject));
}
CObject::~CObject()
@ -315,7 +315,7 @@ void CObject::RegenNPC()
CLand::CLand(TLand * pData)
{
thecore_memcpy(&m_data, pData, sizeof(TLand));
memcpy(&m_data, pData, sizeof(TLand));
}
CLand::~CLand()
@ -647,7 +647,7 @@ void CManager::Destroy()
bool CManager::LoadObjectProto(const TObjectProto * pProto, int size) // from DB
{
m_vec_kObjectProto.resize(size);
thecore_memcpy(&m_vec_kObjectProto[0], pProto, sizeof(TObjectProto) * size);
memcpy(&m_vec_kObjectProto[0], pProto, sizeof(TObjectProto) * size);
for (int i = 0; i < size; ++i)
{

View File

@ -1226,10 +1226,10 @@ void CHARACTER::CreatePlayerProto(TPlayerTable & tab)
if (m_stMobile.length() && !*m_szMobileAuth)
strncpy(tab.szMobile, m_stMobile.c_str(), sizeof(tab.szMobile));
thecore_memcpy(tab.parts, m_pointsInstant.parts, sizeof(tab.parts));
memcpy(tab.parts, m_pointsInstant.parts, sizeof(tab.parts));
// REMOVE_REAL_SKILL_LEVLES
thecore_memcpy(tab.skills, m_pSkillLevels, sizeof(TPlayerSkill) * SKILL_MAX_NUM);
memcpy(tab.skills, m_pSkillLevels, sizeof(TPlayerSkill) * SKILL_MAX_NUM);
// END_OF_REMOVE_REAL_SKILL_LEVLES
tab.horse = GetHorseData();
@ -1737,7 +1737,7 @@ void CHARACTER::SetPlayerProto(const TPlayerTable * t)
M2_DELETE_ARRAY(m_pSkillLevels);
m_pSkillLevels = M2_NEW TPlayerSkill[SKILL_MAX_NUM];
thecore_memcpy(m_pSkillLevels, t->skills, sizeof(TPlayerSkill) * SKILL_MAX_NUM);
memcpy(m_pSkillLevels, t->skills, sizeof(TPlayerSkill) * SKILL_MAX_NUM);
// END_OF_REMOVE_REAL_SKILL_LEVLES
if (t->lMapIndex >= 10000)
@ -1804,7 +1804,7 @@ void CHARACTER::SetPlayerProto(const TPlayerTable * t)
if (GetHorseLevel() > 0)
UpdateHorseDataByLogoff(t->logoff_interval);
thecore_memcpy(m_aiPremiumTimes, t->aiPremiumTimes, sizeof(t->aiPremiumTimes));
memcpy(m_aiPremiumTimes, t->aiPremiumTimes, sizeof(t->aiPremiumTimes));
m_dwLogOffInterval = t->logoff_interval;
@ -6251,8 +6251,8 @@ void CHARACTER::SendEquipment(LPCHARACTER ch)
p.equips[i].vnum = item->GetVnum();
p.equips[i].count = item->GetCount();
thecore_memcpy(p.equips[i].alSockets, item->GetSockets(), sizeof(p.equips[i].alSockets));
thecore_memcpy(p.equips[i].aAttr, item->GetAttributes(), sizeof(p.equips[i].aAttr));
memcpy(p.equips[i].alSockets, item->GetSockets(), sizeof(p.equips[i].alSockets));
memcpy(p.equips[i].aAttr, item->GetAttributes(), sizeof(p.equips[i].aAttr));
}
else
{

View File

@ -453,7 +453,7 @@ void CHARACTER::LoadAffect(DWORD dwCount, TPacketAffectElement * pElements)
info->pid = GetPlayerID();
info->count = dwCount;
info->data = M2_NEW char[sizeof(TPacketAffectElement) * dwCount];
thecore_memcpy(info->data, pElements, sizeof(TPacketAffectElement) * dwCount);
memcpy(info->data, pElements, sizeof(TPacketAffectElement) * dwCount);
event_create(load_affect_login_event, info, PASSES_PER_SEC(1));

View File

@ -414,8 +414,8 @@ void CHARACTER::SetItem(TItemPos Cell, LPITEM pItem)
pack.highlight = (Cell.window_type == DRAGON_SOUL_INVENTORY);
thecore_memcpy(pack.alSockets, pItem->GetSockets(), sizeof(pack.alSockets));
thecore_memcpy(pack.aAttr, pItem->GetAttributes(), sizeof(pack.aAttr));
memcpy(pack.alSockets, pItem->GetSockets(), sizeof(pack.alSockets));
memcpy(pack.aAttr, pItem->GetAttributes(), sizeof(pack.aAttr));
GetDesc()->Packet(&pack, sizeof(TPacketGCItemSet));
}
@ -1346,7 +1346,7 @@ bool CHARACTER::RefineInformation(BYTE bCell, BYTE bType, int iAdditionalCell)
else
{
p.material_count = prt->material_count;
thecore_memcpy(&p.materials, prt->materials, sizeof(prt->materials));
memcpy(&p.materials, prt->materials, sizeof(prt->materials));
}
// END_OF_REFINE_COST
@ -4403,8 +4403,7 @@ bool CHARACTER::UseItemEx(LPITEM item, TItemPos DestCell)
if (GetDungeon())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD><EFBFBD> %s%s <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."),
item->GetName(),
g_iUseLocale ? "" : (under_han(item->GetName()) ? LC_TEXT("<EFBFBD><EFBFBD>") : LC_TEXT("<EFBFBD><EFBFBD>")));
item->GetName(), "");
return false;
}

View File

@ -163,7 +163,7 @@ void CHARACTER::SkillLevelPacket()
TPacketGCSkillLevel pack;
pack.bHeader = HEADER_GC_SKILL_LEVEL;
thecore_memcpy(&pack.skills, m_pSkillLevels, sizeof(TPlayerSkill) * SKILL_MAX_NUM);
memcpy(&pack.skills, m_pSkillLevels, sizeof(TPlayerSkill) * SKILL_MAX_NUM);
GetDesc()->Packet(&pack, sizeof(TPacketGCSkillLevel));
}

View File

@ -1,9 +1,4 @@
#include "stdafx.h"
#ifdef __FreeBSD__
#include <md5.h>
#else
#include "../../libthecore/include/xmd5.h"
#endif
#include "utils.h"
#include "config.h"
@ -112,8 +107,7 @@ ACMD(do_user_horse_feed)
ch->RemoveSpecifyItem(dwFood, 1);
ch->FeedHorse();
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s%s <20>־<EFBFBD><D6BE><EFBFBD><EFBFBD>ϴ<EFBFBD>."),
ITEM_MANAGER::instance().GetTable(dwFood)->szLocaleName,
g_iUseLocale ? "" : under_han(ITEM_MANAGER::instance().GetTable(dwFood)->szLocaleName) ? LC_TEXT("<EFBFBD><EFBFBD>") : LC_TEXT("<EFBFBD><EFBFBD>"));
ITEM_MANAGER::instance().GetTable(dwFood)->szLocaleName, "");
}
else
{
@ -2353,30 +2347,9 @@ ACMD(do_in_game_mall)
}
char buf[512+1];
char sas[33];
MD5_CTX ctx;
const char sas_key[] = "GF9001";
snprintf(buf, sizeof(buf), "%u%u%s", ch->GetPlayerID(), ch->GetAID(), sas_key);
MD5Init(&ctx);
MD5Update(&ctx, (const unsigned char *) buf, strlen(buf));
#ifdef __FreeBSD__
MD5End(&ctx, sas);
#else
static const char hex[] = "0123456789abcdef";
unsigned char digest[16];
MD5Final(digest, &ctx);
int i;
for (i = 0; i < 16; ++i) {
sas[i+i] = hex[digest[i] >> 4];
sas[i+i+1] = hex[digest[i] & 0x0f];
}
sas[i+i] = '\0';
#endif
snprintf(buf, sizeof(buf), "mall http://%s/ishop?pid=%u&c=%s&sid=%d&sas=%s",
g_strWebMallURL.c_str(), ch->GetPlayerID(), country_code, g_server_id, sas);
snprintf(buf, sizeof(buf), "mall http://%s/ishop?pid=%u&c=%s&sid=%d",
g_strWebMallURL.c_str(), ch->GetPlayerID(), country_code, g_server_id);
ch->ChatPacket(CHAT_TYPE_COMMAND, buf);
}

View File

@ -365,7 +365,7 @@ ACMD(do_goto)
return;
}
if (isnhdigit(*arg1) && isnhdigit(*arg2))
if (isdigit(*arg1) && isdigit(*arg2))
{
str_to_number(x, arg1);
str_to_number(y, arg2);
@ -388,7 +388,7 @@ ACMD(do_goto)
if (*arg1 == '#')
str_to_number(mapIndex, (arg1 + 1));
if (*arg2 && isnhdigit(*arg2))
if (*arg2 && isdigit(*arg2))
{
str_to_number(empire, arg2);
empire = MINMAX(1, empire, 3);
@ -452,7 +452,7 @@ ACMD(do_warp)
int x = 0, y = 0;
if (isnhdigit(*arg1) && isnhdigit(*arg2))
if (isdigit(*arg1) && isdigit(*arg2))
{
str_to_number(x, arg1);
str_to_number(y, arg2);
@ -518,7 +518,7 @@ ACMD(do_item)
DWORD dwVnum;
if (isnhdigit(*arg1))
if (isdigit(*arg1))
str_to_number(dwVnum, arg1);
else
{
@ -769,7 +769,7 @@ ACMD(do_mob)
const CMob* pkMob = NULL;
if (isnhdigit(*arg1))
if (isdigit(*arg1))
{
str_to_number(vnum, arg1);
@ -830,7 +830,7 @@ ACMD(do_mob_ld)
const CMob* pkMob = NULL;
if (isnhdigit(*arg1))
if (isdigit(*arg1))
{
str_to_number(vnum, arg1);
@ -1951,7 +1951,7 @@ ACMD(do_book)
CSkillProto * pkProto;
if (isnhdigit(*arg1))
if (isdigit(*arg1))
{
DWORD vnum = 0;
str_to_number(vnum, arg1);

View File

@ -124,16 +124,10 @@ int gPlayerMaxLevel = 99;
bool g_BlockCharCreation = false;
//OPENID
int openid_server = 0;
char openid_host[256];
char openid_uri[256];
bool is_string_true(const char * string)
{
bool result = 0;
if (isnhdigit(*string))
if (isdigit(*string))
{
str_to_number(result, string);
return result > 0 ? true : false;
@ -490,25 +484,7 @@ void config_init(const string& st_localeServiceName)
snprintf(buf, sizeof(buf), "LOG_SQL: %s %s %s %s %d", log_host, log_user, log_pwd, log_db, log_port);
continue;
}
//OPENID
TOKEN("WEB_AUTH")
{
const char * line = two_arguments(value_string, openid_host, sizeof(openid_host), openid_uri, sizeof(openid_uri));
if (!*openid_host || !*openid_uri)
{
fprintf(stderr, "WEB_AUTH syntax error (ex: WEB_AUTH <host(metin2.co.kr) uri(/kyw/gameauth.php)>\n");
exit(1);
}
char buf[1024];
openid_server = 1;
snprintf(buf, sizeof(buf), "WEB_AUTH: %s %s", openid_host, openid_uri);
continue;
}
}
}
//ó<><C3B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
fclose(fpOnlyForDB);
@ -859,7 +835,7 @@ void config_init(const string& st_localeServiceName)
for (; *p; p++)
{
if (isnhspace(*p))
if (isspace(*p))
{
if (stNum.length())
{

View File

@ -19,11 +19,9 @@
#include "locale_service.h"
#include "pcbang.h"
#include "spam.h"
#include "auth_brazil.h"
extern bool g_bNoPasspod;
extern std::string g_stBlockDate;
extern int openid_server;
//<2F>߱<EFBFBD> passpod <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
bool CheckPasspod(const char * account)
@ -490,8 +488,8 @@ void DBManager::SendAuthLogin(LPDESC d)
ptod.bBillType = pkLD->GetBillType();
ptod.dwBillID = pkLD->GetBillID();
thecore_memcpy(ptod.iPremiumTimes, pkLD->GetPremiumPtr(), sizeof(ptod.iPremiumTimes));
thecore_memcpy(&ptod.adwClientKey, pkLD->GetClientKey(), sizeof(DWORD) * 4);
memcpy(ptod.iPremiumTimes, pkLD->GetPremiumPtr(), sizeof(ptod.iPremiumTimes));
memcpy(&ptod.adwClientKey, pkLD->GetClientKey(), sizeof(DWORD) * 4);
db_clientdesc->DBPacket(HEADER_GD_AUTH_LOGIN, d->GetHandle(), &ptod, sizeof(TPacketGDAuthLogin));
sys_log(0, "SendAuthLogin %s key %u", ptod.szLogin, ptod.dwID);
@ -698,22 +696,9 @@ void DBManager::AnalyzeReturnQuery(SQLMsg * pMsg)
if (pMsg->Get()->uiNumRows == 0)
{
if (true == LC_IsBrazil())
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>
ReturnQuery(QID_BRAZIL_CREATE_ID, qi->dwIdent, pinfo,
"INSERT INTO account(login, password, social_id, create_time) "
"VALUES('%s', password('%s'), '0000000', NOW()) ;",
pinfo->login, pinfo->passwd);
sys_log(0, "[AUTH_BRAZIL] : Create A new AccountID From OnGame");
}
else
{
sys_log(0, " NOID");
LoginFailure(d, "NOID");
M2_DELETE(pinfo);
}
sys_log(0, " NOID");
LoginFailure(d, "NOID");
M2_DELETE(pinfo);
}
else
{
@ -898,238 +883,6 @@ void DBManager::AnalyzeReturnQuery(SQLMsg * pMsg)
}
}
break;
case QID_AUTH_LOGIN_OPENID:
{
TPacketCGLogin3 * pinfo = (TPacketCGLogin3 *) qi->pvData;
LPDESC d = DESC_MANAGER::instance().FindByLoginKey(qi->dwIdent);
if (!d)
{
M2_DELETE(pinfo);
break;
}
//<2F><>ġ <20><><EFBFBD><EFBFBD> - By SeMinZ
d->SetLogin(pinfo->login);
sys_log(0, "QID_AUTH_LOGIN_OPENID: START %u %p", qi->dwIdent, get_pointer(d));
if (pMsg->Get()->uiNumRows == 0)
{
if (true == LC_IsBrazil())
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>
ReturnQuery(QID_BRAZIL_CREATE_ID, qi->dwIdent, pinfo,
"INSERT INTO account(login, password, social_id, create_time) "
"VALUES('%s', password('%s'), '0000000', NOW()) ;",
pinfo->login, pinfo->passwd);
sys_log(0, "[AUTH_BRAZIL] : Create A new AccountID From OnGame");
} else if (true == LC_IsJapan())
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>
ReturnQuery(QID_JAPAN_CREATE_ID, qi->dwIdent, pinfo,
"INSERT INTO account(login, password, social_id, create_time) "
"VALUES('%s', password('%s'), '0000000', NOW()) ;",
pinfo->login, "^Aasl@(!$)djl!231fj!&#");
sys_log(0, "[AUTH_JAPAN] : Create A new AccountID From OGE");
}
else
{
sys_log(0, " NOID");
LoginFailure(d, "NOID");
M2_DELETE(pinfo);
}
}
else
{
MYSQL_ROW row = mysql_fetch_row(pMsg->Get()->pSQLResult);
int col = 0;
// PASSWORD('%s'), password, securitycode, social_id, id, status
char szEncrytPassword[45 + 1];
char szPassword[45 + 1];
char szMatrixCode[MATRIX_CODE_MAX_LEN + 1];
char szSocialID[SOCIAL_ID_MAX_LEN + 1];
char szStatus[ACCOUNT_STATUS_MAX_LEN + 1];
DWORD dwID = 0;
if (!row[col])
{
sys_err("error column %d", col);
M2_DELETE(pinfo);
break;
}
strncpy(szEncrytPassword, row[col++], sizeof(szEncrytPassword));
if (!row[col])
{
sys_err("error column %d", col);
M2_DELETE(pinfo);
break;
}
strncpy(szPassword, row[col++], sizeof(szPassword));
if (!row[col])
{
*szMatrixCode = '\0';
col++;
}
else
{
strncpy(szMatrixCode, row[col++], sizeof(szMatrixCode));
}
if (!row[col])
{
sys_err("error column %d", col);
M2_DELETE(pinfo);
break;
}
strncpy(szSocialID, row[col++], sizeof(szSocialID));
if (!row[col])
{
sys_err("error column %d", col);
M2_DELETE(pinfo);
break;
}
str_to_number(dwID, row[col++]);
if (!row[col])
{
sys_err("error column %d", col);
M2_DELETE(pinfo);
break;
}
strncpy(szStatus, row[col++], sizeof(szStatus));
BYTE bNotAvail = 0;
str_to_number(bNotAvail, row[col++]);
int aiPremiumTimes[PREMIUM_MAX_NUM];
memset(&aiPremiumTimes, 0, sizeof(aiPremiumTimes));
char szCreateDate[256] = "00000000";
if (!g_iUseLocale)
{
str_to_number(aiPremiumTimes[PREMIUM_EXP], row[col++]);
str_to_number(aiPremiumTimes[PREMIUM_ITEM], row[col++]);
str_to_number(aiPremiumTimes[PREMIUM_SAFEBOX], row[col++]);
str_to_number(aiPremiumTimes[PREMIUM_AUTOLOOT], row[col++]);
str_to_number(aiPremiumTimes[PREMIUM_FISH_MIND], row[col++]);
str_to_number(aiPremiumTimes[PREMIUM_MARRIAGE_FAST], row[col++]);
str_to_number(aiPremiumTimes[PREMIUM_GOLD], row[col++]);
}
else
{
str_to_number(aiPremiumTimes[PREMIUM_EXP], row[col++]);
str_to_number(aiPremiumTimes[PREMIUM_ITEM], row[col++]);
str_to_number(aiPremiumTimes[PREMIUM_SAFEBOX], row[col++]);
str_to_number(aiPremiumTimes[PREMIUM_AUTOLOOT], row[col++]);
str_to_number(aiPremiumTimes[PREMIUM_FISH_MIND], row[col++]);
str_to_number(aiPremiumTimes[PREMIUM_MARRIAGE_FAST], row[col++]);
str_to_number(aiPremiumTimes[PREMIUM_GOLD], row[col++]);
if (LC_IsEurope() || test_server)
{
long retValue = 0;
str_to_number(retValue, row[col]);
time_t create_time = retValue;
struct tm * tm1;
tm1 = localtime(&create_time);
strftime(szCreateDate, 255, "%Y%m%d", tm1);
sys_log(0, "Create_Time %d %s", retValue, szCreateDate);
sys_log(0, "Block Time %d ", strncmp(szCreateDate, g_stBlockDate.c_str(), 8));
}
}
int nPasswordDiff = strcmp(szEncrytPassword, szPassword);
if (true == LC_IsBrazil())
{
nPasswordDiff = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>й<EFBFBD>ȣ üũ<C3BC><C5A9> <20><><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.
}
//OpenID : OpenID <20><> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD>й<EFBFBD>ȣ üũ<C3BC><C5A9> <20><><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.
if (openid_server)
{
nPasswordDiff = 0;
}
if (nPasswordDiff)
{
LoginFailure(d, "WRONGPWD");
sys_log(0, " WRONGPWD");
M2_DELETE(pinfo);
}
else if (bNotAvail)
{
LoginFailure(d, "NOTAVAIL");
sys_log(0, " NOTAVAIL");
M2_DELETE(pinfo);
}
else if (DESC_MANAGER::instance().FindByLoginName(pinfo->login))
{
LoginFailure(d, "ALREADY");
sys_log(0, " ALREADY");
M2_DELETE(pinfo);
}
else if (strcmp(szStatus, "OK"))
{
LoginFailure(d, szStatus);
sys_log(0, " STATUS: %s", szStatus);
M2_DELETE(pinfo);
}
else
{
if (LC_IsEurope())
{
//stBlockData >= 0 == <20><>¥<EFBFBD><C2A5> BlockDate <20><><EFBFBD><EFBFBD> <20>̷<EFBFBD>
if (strncmp(szCreateDate, g_stBlockDate.c_str(), 8) >= 0)
{
LoginFailure(d, "BLKLOGIN");
sys_log(0, " BLKLOGIN");
M2_DELETE(pinfo);
break;
}
char szQuery[1024];
snprintf(szQuery, sizeof(szQuery), "UPDATE account SET last_play=NOW() WHERE id=%u", dwID);
std::unique_ptr<SQLMsg> msg( DBManager::instance().DirectQuery(szQuery) );
}
TAccountTable & r = d->GetAccountTable();
r.id = dwID;
trim_and_lower(pinfo->login, r.login, sizeof(r.login));
strncpy(r.passwd, pinfo->passwd, sizeof(r.passwd));
strncpy(r.social_id, szSocialID, sizeof(r.social_id));
DESC_MANAGER::instance().ConnectAccount(r.login, d);
d->SetMatrixCode(szMatrixCode);
if (!g_bBilling)
{
LoginPrepare(BILLING_FREE, 0, 0, d, pinfo->adwClientKey, aiPremiumTimes);
//By SeMinZ
M2_DELETE(pinfo);
break;
}
sys_log(0, "QID_AUTH_LOGIN_OPENID: SUCCESS %s", pinfo->login);
}
}
}
break;
case QID_BILLING_GET_TIME:
{
@ -1436,69 +1189,6 @@ void DBManager::AnalyzeReturnQuery(SQLMsg * pMsg)
// END_OF_PCBANG_IP_LIST
case QID_BRAZIL_CREATE_ID :
{
TPacketCGLogin3 * pinfo = (TPacketCGLogin3 *) qi->pvData ;
if( pMsg->Get()->uiAffectedRows == 0 || pMsg->Get()->uiAffectedRows == (uint32_t)-1 )
{
LPDESC d = DESC_MANAGER::instance().FindByLoginKey(qi->dwIdent) ;
sys_log(0, "[AUTH_BRAZIL] NOID") ;
sys_log(0, "[AUTH_BRAZIL] : Failed to create a new account %s", pinfo->login) ;
LoginFailure(d, "NOID") ;
M2_DELETE(pinfo);
}
else
{
sys_log(0, "[AUTH_BRAZIL] : Succeed to create a new account %s", pinfo->login) ;
ReturnQuery(QID_AUTH_LOGIN, qi->dwIdent, pinfo,
"SELECT PASSWORD('%s'),password,securitycode,social_id,id,status,availDt - NOW() > 0,"
"UNIX_TIMESTAMP(silver_expire),"
"UNIX_TIMESTAMP(gold_expire),"
"UNIX_TIMESTAMP(safebox_expire),"
"UNIX_TIMESTAMP(autoloot_expire),"
"UNIX_TIMESTAMP(fish_mind_expire),"
"UNIX_TIMESTAMP(marriage_fast_expire),"
"UNIX_TIMESTAMP(money_drop_rate_expire),"
"UNIX_TIMESTAMP(create_time)"
" FROM account WHERE login='%s'",
pinfo->passwd, pinfo->login) ;
}
}
break;
case QID_JAPAN_CREATE_ID :
{
TPacketCGLogin3 * pinfo = (TPacketCGLogin3 *) qi->pvData ;
if( pMsg->Get()->uiAffectedRows == 0 || pMsg->Get()->uiAffectedRows == (uint32_t)-1 )
{
LPDESC d = DESC_MANAGER::instance().FindByLoginKey(qi->dwIdent) ;
sys_log(0, "[AUTH_JAPAN] NOID") ;
sys_log(0, "[AUTH_JAPAN] : Failed to create a new account %s", pinfo->login) ;
LoginFailure(d, "NOID") ;
M2_DELETE(pinfo);
}
else
{
sys_log(0, "[AUTH_JAPAN] : Succeed to create a new account %s", pinfo->login) ;
ReturnQuery(QID_AUTH_LOGIN_OPENID, qi->dwIdent, pinfo,
"SELECT PASSWORD('%s'),password,securitycode,social_id,id,status,availDt - NOW() > 0,"
"UNIX_TIMESTAMP(silver_expire),"
"UNIX_TIMESTAMP(gold_expire),"
"UNIX_TIMESTAMP(safebox_expire),"
"UNIX_TIMESTAMP(autoloot_expire),"
"UNIX_TIMESTAMP(fish_mind_expire),"
"UNIX_TIMESTAMP(marriage_fast_expire),"
"UNIX_TIMESTAMP(money_drop_rate_expire),"
"UNIX_TIMESTAMP(create_time)"
" FROM account WHERE login='%s'",
pinfo->passwd, pinfo->login) ;
}
}
break;
default:
sys_err("FATAL ERROR!!! Unhandled return query id %d", qi->iType);
break;

View File

@ -16,7 +16,6 @@ enum
QID_SAFEBOX_SIZE,
QID_DB_STRING,
QID_AUTH_LOGIN,
QID_AUTH_LOGIN_OPENID,
QID_LOTTO,
QID_HIGHSCORE_REGISTER,
QID_HIGHSCORE_SHOW,
@ -35,9 +34,6 @@ enum
// PROTECT_CHILD_FOR_NEWCIBN
QID_PROTECT_CHILD,
// END_PROTECT_CHILD_FOR_NEWCIBN
QID_BRAZIL_CREATE_ID,
QID_JAPAN_CREATE_ID,
};
typedef struct SUseTime

View File

@ -245,13 +245,13 @@ bool DESC::Setup(LPFDWATCH _fdw, socket_t _fd, const struct sockaddr_in & c_rSoc
#ifndef _IMPROVED_PACKET_ENCRYPTION_
if (LC_IsEurope())
{
thecore_memcpy(m_adwEncryptionKey, "1234abcd5678efgh", sizeof(DWORD) * 4);
thecore_memcpy(m_adwDecryptionKey, "1234abcd5678efgh", sizeof(DWORD) * 4);
memcpy(m_adwEncryptionKey, "1234abcd5678efgh", sizeof(DWORD) * 4);
memcpy(m_adwDecryptionKey, "1234abcd5678efgh", sizeof(DWORD) * 4);
}
else
{
thecore_memcpy(m_adwEncryptionKey, "testtesttesttest", sizeof(DWORD) * 4);
thecore_memcpy(m_adwDecryptionKey, "testtesttesttest", sizeof(DWORD) * 4);
memcpy(m_adwEncryptionKey, "testtesttesttest", sizeof(DWORD) * 4);
memcpy(m_adwDecryptionKey, "testtesttesttest", sizeof(DWORD) * 4);
}
#endif // _IMPROVED_PACKET_ENCRYPTION_
@ -578,7 +578,7 @@ void DESC::SetPhase(int _phase)
void DESC::BindAccountTable(TAccountTable * pAccountTable)
{
assert(pAccountTable != NULL);
thecore_memcpy(&m_accountTable, pAccountTable, sizeof(TAccountTable));
memcpy(&m_accountTable, pAccountTable, sizeof(TAccountTable));
DESC_MANAGER::instance().ConnectAccount(m_accountTable.login, this);
}
@ -920,7 +920,7 @@ void DESC::SendLoginSuccessPacket()
p.handle = GetHandle();
p.random_key = DESC_MANAGER::instance().MakeRandomKey(GetHandle()); // FOR MARK
thecore_memcpy(p.players, rTable.players, sizeof(rTable.players));
memcpy(p.players, rTable.players, sizeof(rTable.players));
for (int i = 0; i < PLAYER_PER_ACCOUNT; ++i)
{
@ -1035,7 +1035,7 @@ void DESC::SetSecurityKey(const DWORD * c_pdwKey)
if (g_iUseLocale && !LC_IsKorea())
c_pszKey = GetKey_20050304Myevan() + 37;
thecore_memcpy(&m_adwDecryptionKey, c_pdwKey, 16);
memcpy(&m_adwDecryptionKey, c_pdwKey, 16);
TEA_Encrypt(&m_adwEncryptionKey[0], &m_adwDecryptionKey[0], (const DWORD *) c_pszKey, 16);
sys_log(0, "SetSecurityKey decrypt %u %u %u %u encrypt %u %u %u %u",

View File

@ -197,7 +197,7 @@ void CLIENT_DESC::SetPhase(int iPhase)
strncpy(pck.szHost, d->GetHostName(), sizeof(pck.szHost));
pck.dwLoginKey = d->GetLoginKey();
#ifndef _IMPROVED_PACKET_ENCRYPTION_
thecore_memcpy(pck.adwClientKey, d->GetDecryptionKey(), 16);
memcpy(pck.adwClientKey, d->GetDecryptionKey(), 16);
#endif
buf.write(&pck, sizeof(TPacketLoginOnSetup));

View File

@ -419,7 +419,7 @@ void DESC_MANAGER::UpdateLocalUserCount()
f = std::for_each(c_ref_set.begin(), c_ref_set.end(), f);
m_iLocalUserCount = f.iTotalCount;
thecore_memcpy(m_aiEmpireUserCount, f.aiEmpireUserCount, sizeof(m_aiEmpireUserCount));
memcpy(m_aiEmpireUserCount, f.aiEmpireUserCount, sizeof(m_aiEmpireUserCount));
m_aiEmpireUserCount[1] += P2P_MANAGER::instance().GetEmpireUserCount(1);
m_aiEmpireUserCount[2] += P2P_MANAGER::instance().GetEmpireUserCount(2);

View File

@ -33,8 +33,8 @@ void exchange_packet(LPCHARACTER ch, BYTE sub_header, bool is_me, DWORD arg1, TI
if (sub_header == EXCHANGE_SUBHEADER_GC_ITEM_ADD && pvData)
{
thecore_memcpy(&pack_exchg.alSockets, ((LPITEM) pvData)->GetSockets(), sizeof(pack_exchg.alSockets));
thecore_memcpy(&pack_exchg.aAttr, ((LPITEM) pvData)->GetAttributes(), sizeof(pack_exchg.aAttr));
memcpy(&pack_exchg.alSockets, ((LPITEM) pvData)->GetSockets(), sizeof(pack_exchg.alSockets));
memcpy(&pack_exchg.aAttr, ((LPITEM) pvData)->GetAttributes(), sizeof(pack_exchg.aAttr));
}
else
{
@ -556,7 +556,7 @@ bool CExchange::Accept(bool bAccept)
if (Done())
{
if (m_lGold) // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
if (m_lGold) // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ??<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
GetOwner()->Save();
if (GetCompany()->Done())

View File

@ -185,7 +185,7 @@ namespace fishing
void Initialize()
{
SFishInfo fish_info_bak[MAX_FISH];
thecore_memcpy(fish_info_bak, fish_info, sizeof(fish_info));
memcpy(fish_info_bak, fish_info, sizeof(fish_info));
memset(fish_info, 0, sizeof(fish_info));
@ -208,7 +208,7 @@ void Initialize()
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>.
if (*fish_info_bak[0].name)
{
thecore_memcpy(fish_info, fish_info_bak, sizeof(fish_info));
memcpy(fish_info, fish_info_bak, sizeof(fish_info));
SendLog(" restoring to backup");
}
return;
@ -237,7 +237,7 @@ void Initialize()
if (*fish_info_bak[0].name)
{
thecore_memcpy(fish_info, fish_info_bak, sizeof(fish_info));
memcpy(fish_info, fish_info_bak, sizeof(fish_info));
SendLog(" restoring to backup");
}
break;

View File

@ -600,7 +600,7 @@ void CGuild::LoadGuildData(SQLMsg* pmsg)
m_data.skill_point = (BYTE) strtoul(row[4], (char **) NULL, 10);
if (row[5])
thecore_memcpy(m_data.abySkill, row[5], sizeof(BYTE) * GUILD_SKILL_COUNT);
memcpy(m_data.abySkill, row[5], sizeof(BYTE) * GUILD_SKILL_COUNT);
else
memset(m_data.abySkill, 0, sizeof(BYTE) * GUILD_SKILL_COUNT);
@ -648,7 +648,7 @@ void CGuild::SendDBSkillUpdate(int amount)
guild_skill.guild_id = m_data.guild_id;
guild_skill.amount = amount;
guild_skill.skill_point = m_data.skill_point;
thecore_memcpy(guild_skill.skill_levels, m_data.abySkill, sizeof(BYTE) * GUILD_SKILL_COUNT);
memcpy(guild_skill.skill_levels, m_data.abySkill, sizeof(BYTE) * GUILD_SKILL_COUNT);
db_clientdesc->DBPacket(HEADER_GD_GUILD_SKILL_UPDATE, 0, &guild_skill, sizeof(guild_skill));
}
@ -1466,7 +1466,7 @@ void CGuild::UpdateSkill(BYTE skill_point, BYTE* skill_levels)
}
}*/
thecore_memcpy(m_data.abySkill, skill_levels, sizeof(BYTE) * GUILD_SKILL_COUNT);
memcpy(m_data.abySkill, skill_levels, sizeof(BYTE) * GUILD_SKILL_COUNT);
ComputeGuildPoints();
}

View File

@ -883,7 +883,7 @@ void CGuildManager::ReserveWarAdd(TGuildWarReserve * p)
m_vec_kReserveWar.push_back(pkReserve);
}
thecore_memcpy(&pkReserve->data, p, sizeof(TGuildWarReserve));
memcpy(&pkReserve->data, p, sizeof(TGuildWarReserve));
sys_log(0, "ReserveWarAdd %u gid1 %u power %d gid2 %u power %d handicap %d",
pkReserve->data.dwID, p->dwGuildFrom, p->lPowerFrom, p->dwGuildTo, p->lPowerTo, p->lHandicap);

View File

@ -233,7 +233,6 @@ protected:
void ChangeName(LPDESC d, const char * data);
void AuthLogin(LPDESC d, const char * c_pData);
void AuthLoginOpenID(LPDESC d, const char * c_pData);
void ItemAward(const char * c_pData);
void ChangeEmpirePriv(const char* c_pData);
@ -365,11 +364,9 @@ class CInputAuth : public CInputProcessor
protected:
virtual int Analyze(LPDESC d, BYTE bHeader, const char * c_pData);
int auth_OpenID(const char *authKey, const char *ipAddr, char *rID);
public:
void Login(LPDESC d, const char * c_pData);
void LoginOpenID(LPDESC d, const char * c_pData); //2012.07.19 OpenID : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void PasspodAnswer(LPDESC d, const char * c_pData );
};

View File

@ -8,11 +8,9 @@
#include "matrix_card.h"
#include "passpod.h"
#include "locale_service.h"
#include "auth_brazil.h"
#include "db.h"
extern time_t get_global_time();
extern int openid_server;
bool FN_IS_VALID_LOGIN_STRING(const char *str)
{
@ -157,28 +155,8 @@ void CInputAuth::Login(LPDESC d, const char * c_pData)
sys_log(0, "InputAuth::Login : key %u:0x%x login %s", dwKey, dwPanamaKey, login);
// BRAZIL_AUTH
if (LC_IsBrazil() && !test_server)
{
int result = auth_brazil(login, passwd);
switch (result)
{
case AUTH_BRAZIL_SERVER_ERR:
case AUTH_BRAZIL_NOID:
LoginFailure(d, "NOID");
return;
case AUTH_BRAZIL_WRONGPWD:
LoginFailure(d, "WRONGPWD");
return;
case AUTH_BRAZIL_FLASHUSER:
LoginFailure(d, "FLASH");
return;
}
}
TPacketCGLogin3 * p = M2_NEW TPacketCGLogin3;
thecore_memcpy(p, pinfo, sizeof(TPacketCGLogin3));
memcpy(p, pinfo, sizeof(TPacketCGLogin3));
char szPasswd[PASSWD_MAX_LEN * 2 + 1];
DBManager::instance().EscapeString(szPasswd, sizeof(szPasswd), passwd, strlen(passwd));
@ -223,278 +201,6 @@ void CInputAuth::Login(LPDESC d, const char * c_pData)
}
}
void CInputAuth::LoginOpenID(LPDESC d, const char * c_pData)
{
//OpenID test code.
TPacketCGLogin5 *tempInfo1 = (TPacketCGLogin5 *)c_pData;
//<2F>Ϻ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ű Ȯ<><C8AE> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
char* authKey = tempInfo1->authKey;
char returnID[LOGIN_MAX_LEN + 1] = {0};
int test_url_get_protocol = auth_OpenID(authKey, inet_ntoa(d->GetAddr().sin_addr), returnID);
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> ó<><C3B3>
if (0!=test_url_get_protocol)
{
LoginFailure(d, "OpenID Fail");
return;
}
TPacketCGLogin3 tempInfo2;
strncpy(tempInfo2.login, returnID, LOGIN_MAX_LEN);
strncpy(tempInfo2.passwd, "0000", PASSWD_MAX_LEN);
for(int i=0;i<4;i++)
tempInfo2.adwClientKey[i] = tempInfo1->adwClientKey[i];
TPacketCGLogin3 * pinfo = &tempInfo2;
if (!g_bAuthServer)
{
sys_err ("CInputAuth class is not for game server. IP %s might be a hacker.",
inet_ntoa(d->GetAddr().sin_addr));
d->DelayedDisconnect(5);
return;
}
// string <20><><EFBFBD><EFBFBD><E1BCBA> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
char login[LOGIN_MAX_LEN + 1];
trim_and_lower(pinfo->login, login, sizeof(login));
char passwd[PASSWD_MAX_LEN + 1];
strncpy(passwd, pinfo->passwd, sizeof(passwd));
sys_log(0, "InputAuth::Login : %s(%d) desc %p",
login, strlen(login), get_pointer(d));
// check login string
if (false == FN_IS_VALID_LOGIN_STRING(login))
{
sys_log(0, "InputAuth::Login : IS_NOT_VALID_LOGIN_STRING(%s) desc %p",
login, get_pointer(d));
LoginFailure(d, "NOID");
return;
}
if (g_bNoMoreClient)
{
TPacketGCLoginFailure failurePacket;
failurePacket.header = HEADER_GC_LOGIN_FAILURE;
strncpy(failurePacket.szStatus, "SHUTDOWN", sizeof(failurePacket.szStatus));
d->Packet(&failurePacket, sizeof(failurePacket));
return;
}
if (DESC_MANAGER::instance().FindByLoginName(login))
{
LoginFailure(d, "ALREADY");
return;
}
DWORD dwKey = DESC_MANAGER::instance().CreateLoginKey(d);
DWORD dwPanamaKey = dwKey ^ pinfo->adwClientKey[0] ^ pinfo->adwClientKey[1] ^ pinfo->adwClientKey[2] ^ pinfo->adwClientKey[3];
d->SetPanamaKey(dwPanamaKey);
sys_log(0, "InputAuth::Login : key %u:0x%x login %s", dwKey, dwPanamaKey, login);
// BRAZIL_AUTH
if (LC_IsBrazil() && !test_server)
{
int result = auth_brazil(login, passwd);
switch (result)
{
case AUTH_BRAZIL_SERVER_ERR:
case AUTH_BRAZIL_NOID:
LoginFailure(d, "NOID");
return;
case AUTH_BRAZIL_WRONGPWD:
LoginFailure(d, "WRONGPWD");
return;
case AUTH_BRAZIL_FLASHUSER:
LoginFailure(d, "FLASH");
return;
}
}
TPacketCGLogin3 * p = M2_NEW TPacketCGLogin3;
thecore_memcpy(p, pinfo, sizeof(TPacketCGLogin3));
char szPasswd[PASSWD_MAX_LEN * 2 + 1];
DBManager::instance().EscapeString(szPasswd, sizeof(szPasswd), passwd, strlen(passwd));
char szLogin[LOGIN_MAX_LEN * 2 + 1];
DBManager::instance().EscapeString(szLogin, sizeof(szLogin), login, strlen(login));
// CHANNEL_SERVICE_LOGIN
if (Login_IsInChannelService(szLogin))
{
sys_log(0, "ChannelServiceLogin [%s]", szLogin);
DBManager::instance().ReturnQuery(QID_AUTH_LOGIN_OPENID, dwKey, p,
"SELECT '%s',password,securitycode,social_id,id,status,availDt - NOW() > 0,"
"UNIX_TIMESTAMP(silver_expire),"
"UNIX_TIMESTAMP(gold_expire),"
"UNIX_TIMESTAMP(safebox_expire),"
"UNIX_TIMESTAMP(autoloot_expire),"
"UNIX_TIMESTAMP(fish_mind_expire),"
"UNIX_TIMESTAMP(marriage_fast_expire),"
"UNIX_TIMESTAMP(money_drop_rate_expire),"
"UNIX_TIMESTAMP(create_time)"
" FROM account WHERE login='%s'",
szPasswd, szLogin);
}
// END_OF_CHANNEL_SERVICE_LOGIN
else
{
DBManager::instance().ReturnQuery(QID_AUTH_LOGIN_OPENID, dwKey, p,
"SELECT PASSWORD('%s'),password,securitycode,social_id,id,status,availDt - NOW() > 0,"
"UNIX_TIMESTAMP(silver_expire),"
"UNIX_TIMESTAMP(gold_expire),"
"UNIX_TIMESTAMP(safebox_expire),"
"UNIX_TIMESTAMP(autoloot_expire),"
"UNIX_TIMESTAMP(fish_mind_expire),"
"UNIX_TIMESTAMP(marriage_fast_expire),"
"UNIX_TIMESTAMP(money_drop_rate_expire),"
"UNIX_TIMESTAMP(create_time)"
" FROM account WHERE login='%s'",
szPasswd, szLogin);
}
}
extern void socket_timeout(socket_t s, long sec, long usec);
//OpenID
int CInputAuth::auth_OpenID(const char *authKey, const char *ipAddr, char *rID)
{
//return value
//0 : normal execution
//1 : cannot connect to openid auth server
//2 : socket_write failed
//3 : openid auth server not reply
//4 : Reply Error
//5 : Incorrect auth key.
extern char openid_host[256];
extern char openid_uri[256];
int port = 80;
socket_t fd = socket_connect(openid_host, port);
if (fd < 0)
{
sys_err("[auth_OpenID] : could not connect to OpenID server(%s)", openid_host);
return 1;
}
socket_block(fd);
socket_timeout(fd, 3, 0);
// send request
{
char request[512];
int len = snprintf(request, sizeof(request),
//"GET /kyw/gameauth.php?auth_key=%s&ip=%s HTTP/1.1\r\n"
"GET %s?auth_key=%s&ip=%s HTTP/1.1\r\n"
"Host: %s\r\n"
"Connection: Close\r\n\r\n",
//openid_uri, authKey,ipAddr);//"aaaaa", "202.31.212.73");
//authKey,ipAddr);
//"/kyw/gameauth.php", authKey, ipAddr);
openid_uri, authKey, ipAddr, openid_host);
//#ifndef __WIN32__
// if (write(fd, request, len) < 0)
//#else
if (socket_write(fd, request, len) < 0)
//#endif
{
sys_err("[auth_OpenID] : could not send auth-request (%s)", authKey);
socket_close(fd);
return 2;
}
}
// read reply
char reply[1024] = {0};
int len;
//#ifndef __WIN32__
// len = read(fd, reply, sizeof(reply));
//#else
len = socket_read(fd, reply, sizeof(reply));
//#endif
socket_close(fd);
if (len <= 0)
{
sys_err("[auth_OpenID] : could not recv auth-reply (%s)", authKey);
return 3;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ľ<EFBFBD>
char buffer[1024];
strcpy(buffer, reply);
const char *delim = "\r\n";
char *last = 0;
char *v = strtok(buffer, delim);
char *result = 0;
while (v)
{
result = v;
v = strtok(NULL, delim);
}
char *id = strtok(result, "%");
char *success = strtok(NULL, "%");
if (!*id || !*success)
{
sys_err("[auth_OpenID] : OpenID AuthServer Reply Error (%s)", reply);
return 4;
}
if (0 != strcmp("OK", success)) //<2F><><EFBFBD><EFBFBD> ó<><C3B3>
{
int returnNumber = 0;
str_to_number(returnNumber, id);
switch (returnNumber)
{
case 1:
sys_err("[auth_OpenID] : AuthKey incorrect");
break;
case 2:
sys_err("[auth_OpenID] : ip incorrect");
break;
case 3:
sys_err("[auth_OpenID] : used AuthKey");
break;
case 4:
sys_err("[auth_OpenID] : AuthKey not delivered");
break;
case 5:
sys_err("[auth_OpenID] : ip not delivered");
break;
case 6:
sys_err("[auth_OpenID] : AuthKey time over");
break;
default:
break;
return 5;
}
}
strcpy(rID, id);
return 0;
}
int CInputAuth::Analyze(LPDESC d, BYTE bHeader, const char * c_pData)
{
@ -521,14 +227,6 @@ int CInputAuth::Analyze(LPDESC d, BYTE bHeader, const char * c_pData)
Login(d, c_pData);
break;
//2012.07.19 OpenID : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
case HEADER_CG_LOGIN5_OPENID:
if (openid_server)
LoginOpenID(d, c_pData);
else
sys_err("HEADER_CG_LOGIN5_OPENID : wrong client access");
break;
case HEADER_CG_PASSPOD_ANSWER:
PasspodAnswer(d, c_pData);
break;

View File

@ -57,7 +57,6 @@ extern int auction_server;
extern void gm_insert(const char * name, BYTE level);
extern BYTE gm_get_level(const char * name, const char * host, const char* account );
extern void gm_host_insert(const char * host);
extern int openid_server;
#define MAPNAME_DEFAULT "none"
@ -1753,42 +1752,6 @@ void CInputDB::AuthLogin(LPDESC d, const char * c_pData)
d->Packet(&ptoc, sizeof(TPacketGCAuthSuccess));
sys_log(0, "AuthLogin result %u key %u", bResult, d->GetLoginKey());
}
void CInputDB::AuthLoginOpenID(LPDESC d, const char * c_pData)
{
if (!d)
return;
BYTE bResult = *(BYTE *) c_pData;
TPacketGCAuthSuccessOpenID ptoc;
ptoc.bHeader = HEADER_GC_AUTH_SUCCESS_OPENID;
if (bResult)
{
// Panama <20><>ȣȭ <20>ѿ<EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD> Ű <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SendPanamaList(d);
ptoc.dwLoginKey = d->GetLoginKey();
//NOTE: AuthSucess<73><73><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȱ׷<C8B1><D7B7><EFBFBD> PHASE Close<73><65> <20>Ǽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.-_-
//Send Client Package CryptKey
{
DESC_MANAGER::instance().SendClientPackageCryptKey(d);
DESC_MANAGER::instance().SendClientPackageSDBToLoadMap(d, MAPNAME_DEFAULT);
}
}
else
{
ptoc.dwLoginKey = 0;
}
strcpy(ptoc.login, d->GetLogin().c_str());
ptoc.bResult = bResult;
d->Packet(&ptoc, sizeof(TPacketGCAuthSuccessOpenID));
sys_log(0, "AuthLogin result %u key %u", bResult, d->GetLoginKey());
}
void CInputDB::ChangeEmpirePriv(const char* c_pData)
{
@ -2327,10 +2290,7 @@ int CInputDB::Analyze(LPDESC d, BYTE bHeader, const char * c_pData)
break;
case HEADER_DG_AUTH_LOGIN:
if (openid_server)
AuthLoginOpenID(DESC_MANAGER::instance().FindByHandle(m_dwHandle), c_pData);
else
AuthLogin(DESC_MANAGER::instance().FindByHandle(m_dwHandle), c_pData);
AuthLogin(DESC_MANAGER::instance().FindByHandle(m_dwHandle), c_pData);
break;
case HEADER_DG_CHANGE_EMPIRE_PRIV:

View File

@ -196,7 +196,7 @@ void CInputLogin::LoginByKey(LPDESC d, const char * data)
strncpy(ptod.szLogin, login, sizeof(ptod.szLogin));
ptod.dwLoginKey = pinfo->dwLoginKey;
thecore_memcpy(ptod.adwClientKey, pinfo->adwClientKey, sizeof(DWORD) * 4);
memcpy(ptod.adwClientKey, pinfo->adwClientKey, sizeof(DWORD) * 4);
strncpy(ptod.szIP, d->GetHostName(), sizeof(ptod.szIP));
db_clientdesc->DBPacket(HEADER_GD_LOGIN_BY_KEY, d->GetHandle(), &ptod, sizeof(TPacketGDLoginByKey));

View File

@ -216,7 +216,7 @@ void CItem::UpdatePacket()
for (int i = 0; i < ITEM_SOCKET_MAX_NUM; ++i)
pack.alSockets[i] = m_alSockets[i];
thecore_memcpy(pack.aAttr, GetAttributes(), sizeof(pack.aAttr));
memcpy(pack.aAttr, GetAttributes(), sizeof(pack.aAttr));
sys_log(2, "UpdatePacket %s -> %s", GetName(), m_pOwner->GetName());
m_pOwner->GetDesc()->Packet(&pack, sizeof(pack));
@ -541,7 +541,7 @@ int CItem::FindEquipCell(LPCHARACTER ch, int iCandidateCell)
return WEAR_UNIQUE1;
}
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>°<EFBFBD><C2B0><EFBFBD><EFBFBD><EFBFBD> <20>ѹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <EFBFBD>E<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>°<EFBFBD><C2B0><EFBFBD><EFBFBD><EFBFBD> <20>ѹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ?E<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
else if (GetWearFlag() & WEARABLE_ABILITY)
{
if (!ch->GetWear(WEAR_ABILITY1))
@ -994,7 +994,7 @@ bool CItem::CreateSocket(BYTE bSlot, BYTE bGold)
void CItem::SetSockets(const long * c_al)
{
thecore_memcpy(m_alSockets, c_al, sizeof(m_alSockets));
memcpy(m_alSockets, c_al, sizeof(m_alSockets));
Save();
}
@ -1992,8 +1992,8 @@ void CItem::CopyToRawData (TPlayerItem* new_item)
new_item->count = m_dwCount;
new_item->vnum = GetVnum();
thecore_memcpy (new_item->alSockets, m_alSockets, sizeof (m_alSockets));
thecore_memcpy (new_item->aAttr, m_aAttr, sizeof (m_aAttr));
memcpy (new_item->alSockets, m_alSockets, sizeof (m_alSockets));
memcpy (new_item->aAttr, m_aAttr, sizeof (m_aAttr));
new_item->owner = m_pOwner->GetPlayerID();
}

View File

@ -285,7 +285,7 @@ bool CItem::RemoveAttributeType(BYTE bType)
void CItem::SetAttributes(const TPlayerItemAttribute* c_pAttribute)
{
thecore_memcpy(m_aAttr, c_pAttribute, sizeof(m_aAttr));
memcpy(m_aAttr, c_pAttribute, sizeof(m_aAttr));
Save();
}

View File

@ -65,7 +65,7 @@ bool ITEM_MANAGER::Initialize(TItemTable * table, int size)
int i;
m_vec_prototype.resize(size);
thecore_memcpy(&m_vec_prototype[0], table, sizeof(TItemTable) * size);
memcpy(&m_vec_prototype[0], table, sizeof(TItemTable) * size);
for (int i = 0; i < size; i++)
{
if (0 != m_vec_prototype[i].dwVnumRange)
@ -460,8 +460,8 @@ void ITEM_MANAGER::SaveSingleItem(LPITEM item)
t.count = item->GetCount();
t.vnum = item->GetOriginalVnum();
t.owner = (t.window == SAFEBOX || t.window == MALL) ? item->GetOwner()->GetDesc()->GetAccountTable().id : item->GetOwner()->GetPlayerID();
thecore_memcpy(t.alSockets, item->GetSockets(), sizeof(t.alSockets));
thecore_memcpy(t.aAttr, item->GetAttributes(), sizeof(t.aAttr));
memcpy(t.alSockets, item->GetSockets(), sizeof(t.alSockets));
memcpy(t.aAttr, item->GetAttributes(), sizeof(t.aAttr));
db_clientdesc->DBPacketHeader(HEADER_GD_ITEM_SAVE, 0, sizeof(TPlayerItem));
db_clientdesc->Packet(&t, sizeof(TPlayerItem));
@ -1257,7 +1257,7 @@ bool DropEvent_CharStone_SetValue(const std::string& name, int value)
// fixme
// <20><><EFBFBD><EFBFBD> <20>Ͱ<EFBFBD> <20>Բ<EFBFBD> quest<73><74> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
// <20>̰<EFBFBD> <20>ʹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ݾ<EFBFBD>...
// <EFBFBD><EFBFBD>.. <20>ϵ<EFBFBD><CFB5>ڵ<EFBFBD> <20>ȴ<EFBFBD> <20>̤<EFBFBD>
// ??.. <20>ϵ<EFBFBD><CFB5>ڵ<EFBFBD> <20>ȴ<EFBFBD> <20>̤<EFBFBD>
// <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
// by rtsummit <20><>ġ<EFBFBD><C4A1> <20><>¥
static struct DropEvent_RefineBox

View File

@ -29,11 +29,6 @@ int (*check_name) (const char * str) = NULL;
int (*is_twobyte) (const char * str) = NULL;
bool LC_InitLocalization( const std::string& szLocal );
int is_twobyte_euckr(const char * str)
{
return ishan(*str);
}
int is_twobyte_gb2312(const char * str)
{
if (!str || !*str)
@ -227,46 +222,6 @@ int check_name_big5(const char * str )
return check_name_independent(str);
}
int check_name_euckr(const char * str)
{
int code;
const char* tmp;
if (!str || !*str)
return 0;
if ( strlen(str) < 2 || strlen(str) > 12 )
return 0;
for (tmp = str; *tmp; ++tmp)
{
// <20>ѱ<EFBFBD><D1B1><EFBFBD> <20>ƴϰ<C6B4> <20><>ĭ<EFBFBD≯<EFBFBD> <20>߸<EFBFBD><DFB8><EFBFBD> <20><>
if (isnhspace(*tmp))
return 0;
// <20>ѱ<EFBFBD><D1B1><EFBFBD> <20>ƴϰ<C6B4> <20><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
if (isnhdigit(*tmp))
continue;
// <20>ѱ<EFBFBD><D1B1><EFBFBD> <20>ƴϰ<C6B4> <20><><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD><CCB6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
if (!ishan(*tmp) && isalpha(*tmp))
continue;
code = *tmp;
code += 256;
if (code < 176 || code > 200)
return 0;
++tmp;
if (!*tmp)
break;
}
return check_name_independent(str);
}
int check_name_latin1(const char * str)
{
int code;
@ -281,15 +236,15 @@ int check_name_latin1(const char * str)
for (tmp = str; *tmp; ++tmp)
{
// <20>ѱ<EFBFBD><D1B1><EFBFBD> <20>ƴϰ<C6B4> <20><>ĭ<EFBFBD≯<EFBFBD> <20>߸<EFBFBD><DFB8><EFBFBD> <20><>
if (isnhspace(*tmp))
if (isspace(*tmp))
return 0;
// <20>ѱ<EFBFBD><D1B1><EFBFBD> <20>ƴϰ<C6B4> <20><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
if (isnhdigit(*tmp))
if (isdigit(*tmp))
continue;
// <20>ѱ<EFBFBD><D1B1><EFBFBD> <20>ƴϰ<C6B4> <20><><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD><CCB6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
if (!ishan(*tmp) && isalpha(*tmp))
if (isalpha(*tmp))
continue;
unsigned char uc_tmp = *tmp;
@ -1197,10 +1152,10 @@ bool LocaleService_Init(const std::string& c_rstServiceName)
void LocaleService_TransferDefaultSetting()
{
if (!check_name)
check_name = check_name_euckr;
check_name = check_name_independent;
if (!is_twobyte)
is_twobyte = is_twobyte_euckr;
is_twobyte = is_twobyte_gb2312;
if (!exp_table)
exp_table = exp_table_common;

View File

@ -21,7 +21,7 @@ CLoginData::CLoginData()
void CLoginData::SetClientKey(const DWORD * c_pdwClientKey)
{
thecore_memcpy(&m_adwClientKey, c_pdwClientKey, sizeof(DWORD) * 4);
memcpy(&m_adwClientKey, c_pdwClientKey, sizeof(DWORD) * 4);
}
const DWORD * CLoginData::GetClientKey()
@ -140,7 +140,7 @@ const char * CLoginData::GetLogin()
void CLoginData::SetPremium(int * paiPremiumTimes)
{
thecore_memcpy(m_aiPremiumTimes, paiPremiumTimes, sizeof(m_aiPremiumTimes));
memcpy(m_aiPremiumTimes, paiPremiumTimes, sizeof(m_aiPremiumTimes));
}
int CLoginData::GetPremium(BYTE type)

View File

@ -55,7 +55,6 @@
#include "spam.h"
#include "panama.h"
#include "threeway_war.h"
#include "auth_brazil.h"
#include "DragonLair.h"
#include "skill_power.h"
#include "SpeedServer.h"
@ -66,10 +65,6 @@
#include "auction_manager.h"
#endif
#ifndef __WIN32__
#include <gtest/gtest.h>
#endif
#ifdef USE_STACKTRACE
#include <execinfo.h>
#endif
@ -112,8 +107,6 @@ int start(int argc, char **argv);
int idle();
void destroy();
void test();
enum EProfile
{
PROF_EVENT,
@ -232,9 +225,6 @@ void heartbeat(LPHEART ht, int pulse)
// 1<>ʸ<EFBFBD><CAB8><EFBFBD>
if (!(pulse % ht->passes_per_sec))
{
if (g_bAuthServer && LC_IsBrazil() && !test_server)
auth_brazil_log();
if (!g_bAuthServer)
{
TPlayerCountPacket pack;
@ -334,18 +324,6 @@ int main(int argc, char **argv)
DebugAllocator::StaticSetUp();
#endif
#ifndef __WIN32__
// <Factor> start unit tests if option is set
if ( argc > 1 )
{
if ( strcmp( argv[1], "unittest" ) == 0 )
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
}
#endif
ilInit(); // DevIL Initialize
WriteVersion();

View File

@ -65,7 +65,7 @@ bool CMobManager::Initialize(TMobTable * pTable, int iSize)
{
CMob * pkMob = M2_NEW CMob;
thecore_memcpy(&pkMob->m_table, t, sizeof(TMobTable));
memcpy(&pkMob->m_table, t, sizeof(TMobTable));
m_map_pkMobByVnum.insert(std::map<DWORD, CMob *>::value_type(t->dwVnum, pkMob));
m_map_pkMobByName.insert(std::map<std::string, CMob *>::value_type(t->szLocaleName, pkMob));

View File

@ -52,7 +52,7 @@ enum
HEADER_CG_MESSENGER = 67,
HEADER_CG_MALL_CHECKOUT = 69,
HEADER_CG_SAFEBOX_CHECKIN = 70, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2><EFBFBD><EFBFBD> <20>ֆ<EFBFBD><EFBFBD>´<EFBFBD>.
HEADER_CG_SAFEBOX_CHECKIN = 70, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2><EFBFBD><EFBFBD> <20><>??<EFBFBD>´<EFBFBD>.
HEADER_CG_SAFEBOX_CHECKOUT = 71, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>´<EFBFBD>.
HEADER_CG_PARTY_INVITE = 72,
@ -91,8 +91,6 @@ enum
HEADER_CG_SCRIPT_SELECT_ITEM = 114,
// END_OF_SCRIPT_SELECT_ITEM
HEADER_CG_LOGIN5_OPENID = 116, //OpenID : Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD>κ<EFBFBD><CEBA><EFBFBD> OpenID <20><><EFBFBD><EFBFBD>Ű<EFBFBD><C5B0> <20>޴´<DEB4>.
// HEADER_CG_ROULETTE = 200,
// HEADER_CG_RUNUP_MATRIX_ANSWER = 201,
@ -276,8 +274,6 @@ enum
HEADER_GC_HYBRIDCRYPT_SDB = 153, // SDB means Supplmentary Data Blocks
//HYBRID CRYPT
HEADER_GC_AUTH_SUCCESS_OPENID = 154,
// ROULETTE
HEADER_GC_ROULETTE = 200,
// END_ROULETTE
@ -548,13 +544,6 @@ typedef struct command_login3
DWORD adwClientKey[4];
} TPacketCGLogin3;
typedef struct command_login5
{
BYTE header;
char authKey[OPENID_AUTHKEY_LEN + 1];
DWORD adwClientKey[4];
} TPacketCGLogin5;
typedef struct command_matrix_card
{
BYTE bHeader;
@ -901,14 +890,6 @@ typedef struct packet_auth_success
BYTE bResult;
} TPacketGCAuthSuccess;
typedef struct packet_auth_success_openid
{
BYTE bHeader;
DWORD dwLoginKey;
BYTE bResult;
char login[LOGIN_MAX_LEN + 1];
} TPacketGCAuthSuccessOpenID;
typedef struct packet_login_failure
{
BYTE header;

View File

@ -146,7 +146,6 @@ CPacketInfoCG::CPacketInfoCG()
Set(HEADER_CG_LOGIN, sizeof(TPacketCGLogin), "Login", true);
Set(HEADER_CG_LOGIN2, sizeof(TPacketCGLogin2), "Login2", true);
Set(HEADER_CG_LOGIN3, sizeof(TPacketCGLogin3), "Login3", true);
Set(HEADER_CG_LOGIN5_OPENID, sizeof(TPacketCGLogin5), "Login5", true); //OpenID
Set(HEADER_CG_ATTACK, sizeof(TPacketCGAttack), "Attack", true);
Set(HEADER_CG_CHAT, sizeof(TPacketCGChat), "Chat", true);
Set(HEADER_CG_WHISPER, sizeof(TPacketCGWhisper), "Whisper", true);

View File

@ -869,15 +869,6 @@ namespace quest
return 1;
}
int _under_han(lua_State* L)
{
if (!lua_isstring(L, 1))
lua_pushboolean(L, 0);
else
lua_pushboolean(L, under_han(lua_tostring(L, 1)));
return 1;
}
int _notice_all( lua_State* L )
{
ostringstream s;
@ -1395,7 +1386,6 @@ namespace quest
{ "find_npc_by_vnum", _find_npc_by_vnum },
{ "set_quest_state", _set_quest_state },
{ "get_quest_state", _get_quest_state },
{ "under_han", _under_han },
{ "notice", _notice },
{ "notice_all", _notice_all },
{ "notice_in_map", _notice_in_map },

View File

@ -76,8 +76,8 @@ bool CSafebox::Add(DWORD dwPos, LPITEM pkItem)
pack.count = pkItem->GetCount();
pack.flags = pkItem->GetFlag();
pack.anti_flags = pkItem->GetAntiFlag();
thecore_memcpy(pack.alSockets, pkItem->GetSockets(), sizeof(pack.alSockets));
thecore_memcpy(pack.aAttr, pkItem->GetAttributes(), sizeof(pack.aAttr));
memcpy(pack.alSockets, pkItem->GetSockets(), sizeof(pack.alSockets));
memcpy(pack.aAttr, pkItem->GetAttributes(), sizeof(pack.aAttr));
m_pkChrOwner->GetDesc()->Packet(&pack, sizeof(pack));
sys_log(1, "SAFEBOX: ADD %s %s count %d", m_pkChrOwner->GetName(), pkItem->GetName(), pkItem->GetCount());

View File

@ -333,7 +333,7 @@ int CShop::Buy(LPCHARACTER ch, BYTE pos)
}
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> 5%
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>?? <20><><EFBFBD><EFBFBD> 5%
if (!m_pkPC)
{
CMonarch::instance().SendtoDBAddMoney(dwTax, ch->GetEmpire(), ch);
@ -463,8 +463,8 @@ bool CShop::AddGuest(LPCHARACTER ch, DWORD owner_vid, bool bOtherEmpire)
if (item.pkItem)
{
thecore_memcpy(pack2.items[i].alSockets, item.pkItem->GetSockets(), sizeof(pack2.items[i].alSockets));
thecore_memcpy(pack2.items[i].aAttr, item.pkItem->GetAttributes(), sizeof(pack2.items[i].aAttr));
memcpy(pack2.items[i].alSockets, item.pkItem->GetSockets(), sizeof(pack2.items[i].alSockets));
memcpy(pack2.items[i].aAttr, item.pkItem->GetAttributes(), sizeof(pack2.items[i].aAttr));
}
}
@ -531,8 +531,8 @@ void CShop::BroadcastUpdateItem(BYTE pos)
pack2.item.vnum = m_itemVector[pos].vnum;
if (m_itemVector[pos].pkItem)
{
thecore_memcpy(pack2.item.alSockets, m_itemVector[pos].pkItem->GetSockets(), sizeof(pack2.item.alSockets));
thecore_memcpy(pack2.item.aAttr, m_itemVector[pos].pkItem->GetAttributes(), sizeof(pack2.item.aAttr));
memcpy(pack2.item.alSockets, m_itemVector[pos].pkItem->GetSockets(), sizeof(pack2.item.alSockets));
memcpy(pack2.item.aAttr, m_itemVector[pos].pkItem->GetAttributes(), sizeof(pack2.item.aAttr));
}
else
{

View File

@ -65,7 +65,7 @@ size_t str_lower(const char * src, char * dest, size_t dest_size)
void skip_spaces(const char **string)
{
for (; **string != '\0' && isnhspace(**string); ++(*string));
for (; **string != '\0' && isspace(**string); ++(*string));
}
const char *one_argument(const char *argument, char *first_arg, size_t first_size)
@ -94,7 +94,7 @@ const char *one_argument(const char *argument, char *first_arg, size_t first_siz
continue;
}
if (!mark && isnhspace(*argument))
if (!mark && isspace(*argument))
break;
*(first_arg++) = *argument;
@ -121,7 +121,7 @@ const char *first_cmd(const char *argument, char *first_arg, size_t first_arg_si
// \0 <20>ڸ<EFBFBD> Ȯ<><C8AE>
first_arg_size -= 1;
while (*argument && !isnhspace(*argument) && cur_len < first_arg_size)
while (*argument && !isspace(*argument) && cur_len < first_arg_size)
{
*(first_arg++) = LOWER(*argument);
++argument;