diff --git a/.gitignore b/.gitignore index b7d34254..940d0336 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,11 @@ gmon.out *.pdb *.sln *.vcproj +.ignore + +Integration.code-workspace +Makefile + Source/Integration/lpx-*.hpp Source/Integration/lpx-*.cpp diff --git a/Source/Integration/LockedWrapper.cpp b/Source/Integration/LockedWrapper.cpp index ddc53146..563cf181 100644 --- a/Source/Integration/LockedWrapper.cpp +++ b/Source/Integration/LockedWrapper.cpp @@ -43,7 +43,7 @@ int64 FlxLockedWrapper::GetActor() { IdView FlxLockedWrapper::GetNear(int64 id, double rx, double ry, double rz) { uint32 size; int64* data; - Lockable.Wrapper.get_tangibles_near(Get(), id, rx, ry, rz, &size, &data); + Lockable.Wrapper.get_tangibles_near(Get(), id, rx, ry, rz, &size, (int64_t**)&data); return IdView(data, size); } @@ -64,7 +64,7 @@ StringViewVec FlxLockedWrapper::GetAnimationQueues(IdView ids) { const char** StrBuf = Lockable.AQStrBuffer.GetData(); // Get the animation queues into the static buffers. - Lockable.Wrapper.get_animation_queues(Get(), num, ids.GetData(), LenBuf, StrBuf); + Lockable.Wrapper.get_animation_queues(Get(), num, (const int64_t *)ids.GetData(), LenBuf, StrBuf); // Transfer data from static buffers into an array of string_view StringViewVec result; @@ -73,4 +73,4 @@ StringViewVec FlxLockedWrapper::GetAnimationQueues(IdView ids) { result[i] = std::string_view(StrBuf[i], LenBuf[i]); } return result; -} \ No newline at end of file +} diff --git a/Source/Integration/LuprexSockets.cpp b/Source/Integration/LuprexSockets.cpp index a7d213c4..4ad0c0fc 100644 --- a/Source/Integration/LuprexSockets.cpp +++ b/Source/Integration/LuprexSockets.cpp @@ -23,9 +23,13 @@ THIRD_PARTY_INCLUDES_START THIRD_PARTY_INCLUDES_END #undef UI +#ifdef __linux__ +#else #define WIN32_LEAN_AND_MEAN #include #include +#endif + #include #include #include @@ -241,6 +245,26 @@ public: // ///////////////////////////////////////////////////////////////// +#ifdef __linux__ +inline static void strerror_helper(int status, int errnum, char errbuf[256]) { + if (status != 0) { + snprintf(errbuf, 256, "unknown errno %d", errnum); + } +} + +inline static void strerror_helper(const char *result, int errnum, char errbuf[256]) { + if (result != errbuf) { + snprintf(errbuf, 256, "%s", result); + } +} + +static std::string strerror_str(int errnum) { + char buf[256]; + auto rval = strerror_r(errnum, buf, 256); + strerror_helper(rval, errnum, buf); + return buf; +} +#else static std::string strerror_str(int errnum) { char buf[256]; int status = strerror_s(buf, 256, errnum); @@ -250,6 +274,8 @@ static std::string strerror_str(int errnum) { } return buf; } +#endif + static FSocket* OpenConnection(ISocketSubsystem *subsys, const std::string& host, const std::string& port, std::string& err) { @@ -401,6 +427,12 @@ static SSL_CTX* SSLNewContext(int verify, const SSL_METHOD *method, BIO *tracebi return ctx; } +#ifdef __linux__ +static std::string SSLLoadCertificateAuthorities(SSL_CTX* ctx) { + check(SSL_CTX_set_default_verify_paths(ctx) == 1); + return ""; +} +#else static std::string SSLLoadCertificateAuthorities(SSL_CTX* ctx) { HCERTSTORE hStore = CertOpenSystemStoreW(0, L"ROOT"); @@ -427,6 +459,7 @@ static std::string SSLLoadCertificateAuthorities(SSL_CTX* ctx) { CertCloseStore(hStore, 0); return ""; } +#endif static std::string SSLUseCertificateString(SSL_CTX* ctx, const char* str) { SSLClearErrors(); @@ -747,7 +780,7 @@ void FLpxChannel::Advance() AdvanceReadWrite(); break; default: - checkf(false, L"EChanState is invalid"); + checkf(false, TEXT("EChanState is invalid")); break; } diff --git a/luprex-install.sh b/luprex-install.sh index c02912d7..edc17b8e 100755 --- a/luprex-install.sh +++ b/luprex-install.sh @@ -14,9 +14,10 @@ rm -f Source/Integration/lpx-*.cpp rm -f Binaries/Linux/luprexlib.so mkdir -p Binaries/Linux -ln -s $LUPREX/ext/base-writer.hpp Source/Integration/lpx-basewriter.hpp -ln -s $LUPREX/cpp/drv/drvutil.hpp Source/Integration/lpx-drvutil.hpp -ln -s $LUPREX/cpp/drv/drvutil.cpp Source/Integration/lpx-drvutil.cpp -ln -s $LUPREX/cpp/core/enginewrapper.hpp Source/Integration/lpx-enginewrapper.hpp +echo '#include "'$LUPREX'/ext/base-writer.hpp"' > Source/Integration/lpx-basewriter.hpp +echo '#include "'$LUPREX'/cpp/drv/drvutil.hpp"' > Source/Integration/lpx-drvutil.hpp +echo '#include "'$LUPREX'/cpp/drv/drvutil.cpp"' > Source/Integration/lpx-drvutil.cpp +echo '#include "'$LUPREX'/cpp/core/enginewrapper.hpp"' > Source/Integration/lpx-enginewrapper.hpp + ln -s $LUPREX/build/linux/luprexlib.so Binaries/Linux/luprexlib.so