mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 09:31:30 +00:00
Merge pull request #138 from Corysia/master
Changes for intel Mac OSX build
This commit is contained in:
commit
e047d99a6c
@ -99,6 +99,10 @@ IF(UNIX)
|
|||||||
ADD_DEFINITIONS(-DFREEBSD)
|
ADD_DEFINITIONS(-DFREEBSD)
|
||||||
SET(FREEBSD TRUE)
|
SET(FREEBSD TRUE)
|
||||||
ENDIF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
ENDIF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||||
|
IF(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||||
|
ADD_DEFINITIONS(-DDARWIN)
|
||||||
|
SET(DARWIN TRUE)
|
||||||
|
ENDIF(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||||
ENDIF(UNIX)
|
ENDIF(UNIX)
|
||||||
|
|
||||||
#use stdint.h types if they exist for this platform (we have to guess otherwise)
|
#use stdint.h types if they exist for this platform (we have to guess otherwise)
|
||||||
|
|||||||
@ -26,7 +26,9 @@ IF(UNIX)
|
|||||||
TARGET_LINK_LIBRARIES(export_client_files "${CMAKE_DL_LIBS}")
|
TARGET_LINK_LIBRARIES(export_client_files "${CMAKE_DL_LIBS}")
|
||||||
TARGET_LINK_LIBRARIES(export_client_files "z")
|
TARGET_LINK_LIBRARIES(export_client_files "z")
|
||||||
TARGET_LINK_LIBRARIES(export_client_files "m")
|
TARGET_LINK_LIBRARIES(export_client_files "m")
|
||||||
|
IF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(export_client_files "rt")
|
TARGET_LINK_LIBRARIES(export_client_files "rt")
|
||||||
|
ENDIF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(export_client_files "pthread")
|
TARGET_LINK_LIBRARIES(export_client_files "pthread")
|
||||||
ADD_DEFINITIONS(-fPIC)
|
ADD_DEFINITIONS(-fPIC)
|
||||||
ENDIF(UNIX)
|
ENDIF(UNIX)
|
||||||
|
|||||||
@ -26,7 +26,9 @@ IF(UNIX)
|
|||||||
TARGET_LINK_LIBRARIES(import_client_files "${CMAKE_DL_LIBS}")
|
TARGET_LINK_LIBRARIES(import_client_files "${CMAKE_DL_LIBS}")
|
||||||
TARGET_LINK_LIBRARIES(import_client_files "z")
|
TARGET_LINK_LIBRARIES(import_client_files "z")
|
||||||
TARGET_LINK_LIBRARIES(import_client_files "m")
|
TARGET_LINK_LIBRARIES(import_client_files "m")
|
||||||
|
IF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(import_client_files "rt")
|
TARGET_LINK_LIBRARIES(import_client_files "rt")
|
||||||
|
ENDIF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(import_client_files "pthread")
|
TARGET_LINK_LIBRARIES(import_client_files "pthread")
|
||||||
ADD_DEFINITIONS(-fPIC)
|
ADD_DEFINITIONS(-fPIC)
|
||||||
ENDIF(UNIX)
|
ENDIF(UNIX)
|
||||||
|
|||||||
@ -30,6 +30,10 @@
|
|||||||
#ifdef FREEBSD //Timothy Whitman - January 7, 2003
|
#ifdef FREEBSD //Timothy Whitman - January 7, 2003
|
||||||
#define MSG_NOSIGNAL 0
|
#define MSG_NOSIGNAL 0
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef DARWIN
|
||||||
|
#define MSG_NOSIGNAL SO_NOSIGPIPE // Corysia Taware - Sept. 27, 2013
|
||||||
|
// See http://lists.apple.com/archives/macnetworkprog/2002/Dec/msg00091.html
|
||||||
|
#endif // DARWIN
|
||||||
|
|
||||||
#ifdef _WINDOWS
|
#ifdef _WINDOWS
|
||||||
InitWinsock winsock;
|
InitWinsock winsock;
|
||||||
|
|||||||
@ -97,8 +97,12 @@ void BaseTCPServer::ListenNewConnections() {
|
|||||||
from.sin_family = AF_INET;
|
from.sin_family = AF_INET;
|
||||||
fromlen = sizeof(from);
|
fromlen = sizeof(from);
|
||||||
LockMutex lock(&MSock);
|
LockMutex lock(&MSock);
|
||||||
|
#ifndef DARWIN // Corysia - On OSX, 0 is a valid fd.
|
||||||
if (!sock)
|
if (!sock)
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
if (sock == -1) return;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Check for pending connects
|
// Check for pending connects
|
||||||
#ifdef _WINDOWS
|
#ifdef _WINDOWS
|
||||||
|
|||||||
@ -55,10 +55,17 @@ namespace EQEmu {
|
|||||||
std::string final_name = name;
|
std::string final_name = name;
|
||||||
final_name += ".lock";
|
final_name += ".lock";
|
||||||
|
|
||||||
|
#ifdef __DARWIN
|
||||||
|
#if __DARWIN_C_LEVEL < 200809L
|
||||||
|
imp_->fd_ = open(final_name.c_str(),
|
||||||
|
O_RDWR | O_CREAT,
|
||||||
|
S_IRUSR | S_IWUSR);
|
||||||
|
#else
|
||||||
imp_->fd_ = open(final_name.c_str(),
|
imp_->fd_ = open(final_name.c_str(),
|
||||||
O_RDWR | O_CREAT | O_CLOEXEC,
|
O_RDWR | O_CREAT | O_CLOEXEC,
|
||||||
S_IRUSR | S_IWUSR);
|
S_IRUSR | S_IWUSR);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
if(imp_->fd_ == -1) {
|
if(imp_->fd_ == -1) {
|
||||||
EQ_EXCEPT("IPC Mutex", "Could not create mutex.");
|
EQ_EXCEPT("IPC Mutex", "Could not create mutex.");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,7 +30,9 @@ IF(UNIX)
|
|||||||
TARGET_LINK_LIBRARIES(eqlaunch "${CMAKE_DL_LIBS}")
|
TARGET_LINK_LIBRARIES(eqlaunch "${CMAKE_DL_LIBS}")
|
||||||
TARGET_LINK_LIBRARIES(eqlaunch "z")
|
TARGET_LINK_LIBRARIES(eqlaunch "z")
|
||||||
TARGET_LINK_LIBRARIES(eqlaunch "m")
|
TARGET_LINK_LIBRARIES(eqlaunch "m")
|
||||||
|
IF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(eqlaunch "rt")
|
TARGET_LINK_LIBRARIES(eqlaunch "rt")
|
||||||
|
ENDIF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(eqlaunch "pthread")
|
TARGET_LINK_LIBRARIES(eqlaunch "pthread")
|
||||||
ADD_DEFINITIONS(-fPIC)
|
ADD_DEFINITIONS(-fPIC)
|
||||||
ENDIF(UNIX)
|
ENDIF(UNIX)
|
||||||
|
|||||||
@ -58,7 +58,9 @@ IF(UNIX)
|
|||||||
TARGET_LINK_LIBRARIES(loginserver "${CMAKE_DL_LIBS}")
|
TARGET_LINK_LIBRARIES(loginserver "${CMAKE_DL_LIBS}")
|
||||||
TARGET_LINK_LIBRARIES(loginserver "z")
|
TARGET_LINK_LIBRARIES(loginserver "z")
|
||||||
TARGET_LINK_LIBRARIES(loginserver "m")
|
TARGET_LINK_LIBRARIES(loginserver "m")
|
||||||
|
IF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(loginserver "rt")
|
TARGET_LINK_LIBRARIES(loginserver "rt")
|
||||||
|
ENDIF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(loginserver "pthread")
|
TARGET_LINK_LIBRARIES(loginserver "pthread")
|
||||||
TARGET_LINK_LIBRARIES(loginserver "EQEmuAuthCrypto")
|
TARGET_LINK_LIBRARIES(loginserver "EQEmuAuthCrypto")
|
||||||
TARGET_LINK_LIBRARIES(loginserver "cryptopp")
|
TARGET_LINK_LIBRARIES(loginserver "cryptopp")
|
||||||
|
|||||||
@ -36,7 +36,9 @@ IF(UNIX)
|
|||||||
TARGET_LINK_LIBRARIES(queryserv "${CMAKE_DL_LIBS}")
|
TARGET_LINK_LIBRARIES(queryserv "${CMAKE_DL_LIBS}")
|
||||||
TARGET_LINK_LIBRARIES(queryserv "z")
|
TARGET_LINK_LIBRARIES(queryserv "z")
|
||||||
TARGET_LINK_LIBRARIES(queryserv "m")
|
TARGET_LINK_LIBRARIES(queryserv "m")
|
||||||
|
IF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(queryserv "rt")
|
TARGET_LINK_LIBRARIES(queryserv "rt")
|
||||||
|
ENDIF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(queryserv "pthread")
|
TARGET_LINK_LIBRARIES(queryserv "pthread")
|
||||||
ADD_DEFINITIONS(-fPIC)
|
ADD_DEFINITIONS(-fPIC)
|
||||||
ENDIF(UNIX)
|
ENDIF(UNIX)
|
||||||
|
|||||||
@ -38,7 +38,9 @@ IF(UNIX)
|
|||||||
TARGET_LINK_LIBRARIES(shared_memory "${CMAKE_DL_LIBS}")
|
TARGET_LINK_LIBRARIES(shared_memory "${CMAKE_DL_LIBS}")
|
||||||
TARGET_LINK_LIBRARIES(shared_memory "z")
|
TARGET_LINK_LIBRARIES(shared_memory "z")
|
||||||
TARGET_LINK_LIBRARIES(shared_memory "m")
|
TARGET_LINK_LIBRARIES(shared_memory "m")
|
||||||
|
IF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(shared_memory "rt")
|
TARGET_LINK_LIBRARIES(shared_memory "rt")
|
||||||
|
ENDIF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(shared_memory "pthread")
|
TARGET_LINK_LIBRARIES(shared_memory "pthread")
|
||||||
ADD_DEFINITIONS(-fPIC)
|
ADD_DEFINITIONS(-fPIC)
|
||||||
ENDIF(UNIX)
|
ENDIF(UNIX)
|
||||||
|
|||||||
@ -32,7 +32,9 @@ IF(UNIX)
|
|||||||
TARGET_LINK_LIBRARIES(tests "${CMAKE_DL_LIBS}")
|
TARGET_LINK_LIBRARIES(tests "${CMAKE_DL_LIBS}")
|
||||||
TARGET_LINK_LIBRARIES(tests "z")
|
TARGET_LINK_LIBRARIES(tests "z")
|
||||||
TARGET_LINK_LIBRARIES(tests "m")
|
TARGET_LINK_LIBRARIES(tests "m")
|
||||||
TARGET_LINK_LIBRARIES(tests "rt")
|
IF(NOT DARWIN)
|
||||||
|
TARGET_LINK_LIBRARIES(loginserver "rt")
|
||||||
|
ENDIF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(tests "pthread")
|
TARGET_LINK_LIBRARIES(tests "pthread")
|
||||||
ADD_DEFINITIONS(-fPIC)
|
ADD_DEFINITIONS(-fPIC)
|
||||||
ENDIF(UNIX)
|
ENDIF(UNIX)
|
||||||
|
|||||||
@ -38,7 +38,9 @@ IF(UNIX)
|
|||||||
TARGET_LINK_LIBRARIES(ucs "${CMAKE_DL_LIBS}")
|
TARGET_LINK_LIBRARIES(ucs "${CMAKE_DL_LIBS}")
|
||||||
TARGET_LINK_LIBRARIES(ucs "z")
|
TARGET_LINK_LIBRARIES(ucs "z")
|
||||||
TARGET_LINK_LIBRARIES(ucs "m")
|
TARGET_LINK_LIBRARIES(ucs "m")
|
||||||
|
IF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(ucs "rt")
|
TARGET_LINK_LIBRARIES(ucs "rt")
|
||||||
|
ENDIF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(ucs "pthread")
|
TARGET_LINK_LIBRARIES(ucs "pthread")
|
||||||
ADD_DEFINITIONS(-fPIC)
|
ADD_DEFINITIONS(-fPIC)
|
||||||
ENDIF(UNIX)
|
ENDIF(UNIX)
|
||||||
|
|||||||
@ -84,7 +84,9 @@ IF(UNIX)
|
|||||||
TARGET_LINK_LIBRARIES(world "${CMAKE_DL_LIBS}")
|
TARGET_LINK_LIBRARIES(world "${CMAKE_DL_LIBS}")
|
||||||
TARGET_LINK_LIBRARIES(world "z")
|
TARGET_LINK_LIBRARIES(world "z")
|
||||||
TARGET_LINK_LIBRARIES(world "m")
|
TARGET_LINK_LIBRARIES(world "m")
|
||||||
|
IF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(world "rt")
|
TARGET_LINK_LIBRARIES(world "rt")
|
||||||
|
ENDIF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(world "pthread")
|
TARGET_LINK_LIBRARIES(world "pthread")
|
||||||
ADD_DEFINITIONS(-fPIC)
|
ADD_DEFINITIONS(-fPIC)
|
||||||
ENDIF(UNIX)
|
ENDIF(UNIX)
|
||||||
|
|||||||
@ -56,7 +56,7 @@
|
|||||||
#include <sys/ipc.h>
|
#include <sys/ipc.h>
|
||||||
#include <sys/sem.h>
|
#include <sys/sem.h>
|
||||||
#include <sys/shm.h>
|
#include <sys/shm.h>
|
||||||
#ifndef FREEBSD
|
#if not defined (FREEBSD) && not defined (DARWIN)
|
||||||
union semun {
|
union semun {
|
||||||
int val;
|
int val;
|
||||||
struct semid_ds *buf;
|
struct semid_ds *buf;
|
||||||
|
|||||||
@ -230,7 +230,9 @@ IF(UNIX)
|
|||||||
TARGET_LINK_LIBRARIES(zone "${CMAKE_DL_LIBS}")
|
TARGET_LINK_LIBRARIES(zone "${CMAKE_DL_LIBS}")
|
||||||
TARGET_LINK_LIBRARIES(zone "z")
|
TARGET_LINK_LIBRARIES(zone "z")
|
||||||
TARGET_LINK_LIBRARIES(zone "m")
|
TARGET_LINK_LIBRARIES(zone "m")
|
||||||
|
IF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(zone "rt")
|
TARGET_LINK_LIBRARIES(zone "rt")
|
||||||
|
ENDIF(NOT DARWIN)
|
||||||
TARGET_LINK_LIBRARIES(zone "pthread")
|
TARGET_LINK_LIBRARIES(zone "pthread")
|
||||||
ADD_DEFINITIONS(-fPIC)
|
ADD_DEFINITIONS(-fPIC)
|
||||||
ENDIF(UNIX)
|
ENDIF(UNIX)
|
||||||
|
|||||||
@ -12483,7 +12483,15 @@ void Client::Handle_OP_GuildCreate(const EQApplicationPacket *app)
|
|||||||
//
|
//
|
||||||
|
|
||||||
char *GuildName = (char *)app->pBuffer;
|
char *GuildName = (char *)app->pBuffer;
|
||||||
|
#ifdef DARWIN
|
||||||
|
#if __DARWIN_C_LEVEL < 200809L
|
||||||
|
if (strlen(GuildName) > 60)
|
||||||
|
#else
|
||||||
if(strnlen(GuildName, 64) > 60)
|
if(strnlen(GuildName, 64) > 60)
|
||||||
|
#endif // __DARWIN_C_LEVEL
|
||||||
|
#else
|
||||||
|
if(strnlen(GuildName, 64) > 60)
|
||||||
|
#endif // DARWIN
|
||||||
{
|
{
|
||||||
Message(clientMessageError, "Guild name too long.");
|
Message(clientMessageError, "Guild name too long.");
|
||||||
return;
|
return;
|
||||||
@ -12941,7 +12949,15 @@ void Client::Handle_OP_LFGuild(const EQApplicationPacket *app)
|
|||||||
VERIFY_PACKET_LENGTH(OP_LFGuild, app, LFGuild_PlayerToggle_Struct);
|
VERIFY_PACKET_LENGTH(OP_LFGuild, app, LFGuild_PlayerToggle_Struct);
|
||||||
LFGuild_PlayerToggle_Struct *pts = (LFGuild_PlayerToggle_Struct *)app->pBuffer;
|
LFGuild_PlayerToggle_Struct *pts = (LFGuild_PlayerToggle_Struct *)app->pBuffer;
|
||||||
|
|
||||||
|
#ifdef DARWIN
|
||||||
|
#if __DARWIN_C_LEVEL < 200809L
|
||||||
|
if (strlen(pts->Comment) > 256)
|
||||||
|
#else
|
||||||
if(strnlen(pts->Comment, 256) > 256)
|
if(strnlen(pts->Comment, 256) > 256)
|
||||||
|
#endif // __DARWIN_C_LEVEL
|
||||||
|
#else
|
||||||
|
if(strnlen(pts->Comment, 256) > 256)
|
||||||
|
#endif // DARWIN
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ServerPacket* pack = new ServerPacket(ServerOP_QueryServGeneric, strlen(GetName()) + strlen(pts->Comment) + 38);
|
ServerPacket* pack = new ServerPacket(ServerOP_QueryServGeneric, strlen(GetName()) + strlen(pts->Comment) + 38);
|
||||||
@ -12968,7 +12984,15 @@ void Client::Handle_OP_LFGuild(const EQApplicationPacket *app)
|
|||||||
VERIFY_PACKET_LENGTH(OP_LFGuild, app, LFGuild_GuildToggle_Struct);
|
VERIFY_PACKET_LENGTH(OP_LFGuild, app, LFGuild_GuildToggle_Struct);
|
||||||
LFGuild_GuildToggle_Struct *gts = (LFGuild_GuildToggle_Struct *)app->pBuffer;
|
LFGuild_GuildToggle_Struct *gts = (LFGuild_GuildToggle_Struct *)app->pBuffer;
|
||||||
|
|
||||||
|
#ifdef DARWIN
|
||||||
|
#if __DARWIN_C_LEVEL < 200809L
|
||||||
|
if (strlen(gts->Comment) > 256)
|
||||||
|
#else
|
||||||
if(strnlen(gts->Comment, 256) > 256)
|
if(strnlen(gts->Comment, 256) > 256)
|
||||||
|
#endif // __DARWIN_C_LEVEL
|
||||||
|
#else
|
||||||
|
if(strnlen(gts->Comment, 256) > 256)
|
||||||
|
#endif // __DARWIN
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ServerPacket* pack = new ServerPacket(ServerOP_QueryServGeneric, strlen(GetName()) + strlen(gts->Comment) + strlen(guild_mgr.GetGuildName(GuildID())) + 43);
|
ServerPacket* pack = new ServerPacket(ServerOP_QueryServGeneric, strlen(GetName()) + strlen(gts->Comment) + strlen(guild_mgr.GetGuildName(GuildID())) + 43);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user