-
Notifications
You must be signed in to change notification settings - Fork 491
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NativeIO: Add Linux support #2696
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
0blu
added a commit
to 0blu/vmangos-core
that referenced
this pull request
Aug 25, 2024
* Create NativeAliases.h * IO::Networking moved some files around * `IocpOperationTask` as member of `AsyncSocket` to avoid `new` memory allocation * Native IO: Able to compile empty impl on linux * Fix windows build * Native IO: Linux add fs support * Native IO: Linux, able to connect * Fix uninitialized `m_sessionDurationTimeout` * Fix SO_REUSEADDR on linux * Sortof impl of unix epoll AsyncSocket * Add own implementation of `AsyncSystemTimer` * Code Style * Native IO: Add all other Write handlers * NativeIO: Linux add EPOLLRDHUP for disconnect requests * Fix windows build * NativeIO: Windows Code Style * Fix EnumFlags * Update comment
0blu
added a commit
to 0blu/vmangos-core
that referenced
this pull request
Sep 14, 2024
* Realmd: Native windows implementation of BufferedSocket. * Reimplement config loading without using ACE. * Make IsLineEndChar static. * Use modern networking sockets for low CPU usage and high performant code (vmangos#2680) * Make m_ServiceStatus volatile * Add type size to eAuthCmd and AuthResult * NativeIO: Realmd: First impl of `LogonChallenge` just like cMangos Currently only windows support. Using legacy `::select` function. Must use IOCTL in the future. * Add "Network" to log type string * Make m_ServiceStatus volatile (again) * SRP6 add const to parameter * Database add DbExecMode to force sync statements (prevent race condition) * Reimplement most AuthSocket handers async (like cMangos) * Use high performance winsock2 async sockets The implementation is inspired by Boost::ASIO and Nginx * Async networking: Split declaration and definition inside header * Async networking: Move implementation into own folder * Fix realmd build. * Remove commented out stuff. * Fix crash on login. * Fix reconnecting to realmd. * No need to endian convert build twice. * Add MaxSessionDuration to realmd (vmangos#2687) * Make m_ServiceStatus volatile * Add type size to eAuthCmd and AuthResult * NativeIO: Realmd: First impl of `LogonChallenge` just like cMangos Currently only windows support. Using legacy `::select` function. Must use IOCTL in the future. * Add "Network" to log type string * Make m_ServiceStatus volatile (again) * SRP6 add const to parameter * Database add DbExecMode to force sync statements (prevent race condition) * Reimplement most AuthSocket handers async (like cMangos) * Use high performance winsock2 async sockets The implementation is inspired by Boost::ASIO and Nginx * Async networking: Split declaration and definition inside header * Async networking: Move implementation into own folder * Fix ATTR_PRINTF on PExecute with DbExecMode * Add function IO::Multithreading::CreateThread with nameable threads * Add IO::Timer::AsyncSystemTimer * Change RunEventLoop error handling * Remove Timer was already removed error log * Add comment explaining why we cant use `SetThreadDescription` * Remove `MaNGOS::` prefix from `IO::` namespace * Include stirng header in CreateThread.h * Add CMD_XFER_ACCEPT support (vmangos#2691) * Make m_ServiceStatus volatile * Add type size to eAuthCmd and AuthResult * NativeIO: Realmd: First impl of `LogonChallenge` just like cMangos Currently only windows support. Using legacy `::select` function. Must use IOCTL in the future. * Add "Network" to log type string * Make m_ServiceStatus volatile (again) * SRP6 add const to parameter * Database add DbExecMode to force sync statements (prevent race condition) * Reimplement most AuthSocket handers async (like cMangos) * Use high performance winsock2 async sockets The implementation is inspired by Boost::ASIO and Nginx * Async networking: Split declaration and definition inside header * Async networking: Move implementation into own folder * Fix ATTR_PRINTF on PExecute with DbExecMode * Add function IO::Multithreading::CreateThread with nameable threads * Add IO::Timer::AsyncSystemTimer * Change RunEventLoop error handling * Remove Timer was already removed error log * Add comment explaining why we cant use `SetThreadDescription` * Remove `MaNGOS::` prefix from `IO::` namespace * Add TrinityCore's EnumFlag implementation Reference: https://github.com/TrinityCore/TrinityCore/blob/a0e5f9db7e3fdf70ec70533e64e5653f04eeac16/src/common/Utilities/EnumFlag.h * Fix windows #include * Please split `socket->Write(...)` calls * Async socket add Write for `uint8[]` * Update AsyncServerListener.h * Update AuthCodes.h * Add namespace `IO::Filesystem` * ByteBuffer add `append(std::vector<uint8> const& src)` * Realmd: Remove old PatchHandler * Add new `ClientPatchCache` * Realmd: Add support for `CMD_XFER_ACCEPT` * Remove ACE_TYPES from `XFER_DATA_CHUNK` * Add `IO::Networking::` `IpAddress` and `IpEndpoint` structures * Add `IO::Networking::IsInSameSubnet` * Add function `AsyncSocket<T>::GetRemoteEndpoint()` and `GetRemoteIpString()` * Make ReamList use new `IO::Networking::IpAddress` * Fix `IO::Filesystem::GetAllFilesInFolder` comment * Remove semicolon after include. * Fix build error in EnumFlag. * Fix AuthSocket build. * Code style fixes. * NativeIO: Add Linux support (vmangos#2696) * Create NativeAliases.h * IO::Networking moved some files around * `IocpOperationTask` as member of `AsyncSocket` to avoid `new` memory allocation * Native IO: Able to compile empty impl on linux * Fix windows build * Native IO: Linux add fs support * Native IO: Linux, able to connect * Fix uninitialized `m_sessionDurationTimeout` * Fix SO_REUSEADDR on linux * Sortof impl of unix epoll AsyncSocket * Add own implementation of `AsyncSystemTimer` * Code Style * Native IO: Add all other Write handlers * NativeIO: Linux add EPOLLRDHUP for disconnect requests * Fix windows build * NativeIO: Windows Code Style * Fix EnumFlags * Update comment * Native networking for mangosd (vmangos#2707) * Native mangosd: Able to "join" the game * Add ring buffer for packets. Encryption is done in IO thread * Rename all threads * Add Reactor style native IO like Boost or ACE * Add a WorldSocketMgt just like `TrinityCore` * Readd realmd support with new IoContext stuff * New IO ctx now compiles under linux (still some runtime bugs) * Native: Linux use eventfd for context switch notify * Fix windows build * Fix usage of `std::shared_ptr<WorldSocket>` * Make m_sendQueueIsRunning atomic * Fix duplicated line * Fix duplicated maiev scan in debug (vmangos#2706) * Remove lock free packet send queue for now * Fix linux build * Initialize some variables at `WorldSession` to make clang-tidy happy * NativeIO: Use std::atomic to be lock free * Native: Also make windows IO lock free * Fix sql field index comment * Remove unnecessary includes * Update mangosd.conf.dist.in * Minor changes to native IO code and comments * Fix initial macos bugs * Fix some comments * Inline MANGOS_ASSERT condition * Add JetBrain IDE code style defaults (vmangos#2709) * Native IO: Fix macOS build * Reformat `mangos/Master.cpp` and `realmd/Main.cpp` * Fix incorrect client ip realmd -> mangosd check * Re-add `HandlePing` support for older clients * Reformat `WorldSocket.cpp` * Native: World/ioCtx shutdown fix * AsyncSystemTimer: Fix potential notify loss * Minor changes to native branch (vmangos#2715) * NativeIO: Remove unused parts of the code * WorldSession do `FinalizeSession()` on socket * Rename variable * Native IO: Don't get the filePath from a handle * Reformat AsyncIoOperation.h * Use inet_ntop instead inet_ntoa for thread-safety * Fix visibility in AsyncSocket * Clear CONTEXT_PRESENT when StopPendingTransactions * Fix build with Visual Studio 2015 (vmangos#2717) * Remove `::inet_ntop` dependency on windows We cant use ::inet_ntoa(...) because it's not thread safe. We cant use ::inet_ntop(...) because it's not WinXP compatible. So we have to do it ourselves. * Fix Windows `AsyncSystemTimer` on 32bit * Fix `EnumFlags.h` on VS14 * Add comment to `GetRemoteIpString` * Add max size to `m_sendQueue` * Use backward library for stacktrace. * Fix extractors build. * Add missing includes. * More missing includes. * Replace ACE_TSS in Database with non ACE implementation (vmangos#2718) * Add IO::Networking::DNS::ResolveDomain (vmangos#2722) * Increase max line length of `sConfig::Reload()` If for example a full windows path would be provided in one of the variables, it would fail * Rename `sConfig.SetSource()` * Add `std::expected` backport * ServiceWin32 use `nullptr` instead of `0` * Replace `ACE/get_opt` with custom `ArgparseForServer` * Use std::chrono instead of ACE Time * Move mangos remote stuff in separate folder * Logical const-correctness for sConfig * Add `sConfig.IsSet` * Add `AsyncSocket::ReadSome` * Add `AsyncSocket::ReadSome` * Move `array_deleter` into separate header * Remove ACE from `RASocket` * RASocket add support for telnet negotiation Allow applications like Putty to connect to the server * Move gSOAP into a diffrent folder * Update gSOAP `2.7.10` (2008) to `2.8.135` (2024) * Fix double free in SOAP code * Add `IO::Networking::IpAddress::FromIpv4Uint32` * Add SOAP without ACE * `Warden::GetModuleNames` without ACE * `IsIPAddress` without ACE * `Log::WaitBeforeContinueIfNeed` sleep without ACE * Replace ACE specific numeric types with std:: ones * Remove unused `DelayExecutor` * Don't print ACE version on startup * Remove ACE include from `mangosd/Master.cpp` * Remove ACE include from `realmd/AuthSocket.cpp` * Remove `LockedQueue` from `Common.h` * Always show warnings. Disable locally if needed. * Remove code for Solaris in `Common.h` * Remove ACE from `sprintf` formatting macros * Remove `countof` macro * Remove networking includes stuff from `Common.h` * Remove ACE from `Common.h` * Fix `world-daemon` logging name Bug introduced in a566778 * Fix missing includes * Add `#undef main` to realmd and mangosd * Fix linux build * AsyncSocket non generic and offload to cpp file * NativeIO: Set atomic state before `::WSASend/Recv` * Native: Remove even more ACE includes * Fix usage of `MANGOS_ASSERT` (add `;` at end) * Add `jeremy-rifkin/cpptrace` to repo tree * Remove Replaced `backward.hpp` with `cpptrace` And also moved the stack trace handling to a cpp file, since its not performance critical * Add `IO::Utils::GetCurrentProcessId()` * Remove ACE headers for global Windows.h import 😭 I really tried a lot to avoid a global Windows header include. I was able remove all of the references but not for G3D, they have it deeply embedded in their headers. For example a simple `Vector.h` depends on `Windows.h` (like WTF). * Remove last references of ACE in code and CMake * Native: Fix Linux build after ACE removal * Fix macOS build * Fix Linux build of mmap/MapBuilder.cpp * Fix missing argument in a `sLog.Out()` call * Move `array_deleter` to `MaNGOS::Memory` namespace * Create `MaNGOS::Memory::no_deleter` Discover new and exciting ways how to leak memory by using this struct. * Move realmd packets to file `AuthPackets.h` * Use `XFER_DATA_CHUNK*` instead of `uint8*` * Add `IO::Filesystem::FileHandle::Seek` * Readd `CMD_XFER_RESUME` * Remove `typedef` of `struct`s in AuthPackets * Use real `XFER_INIT` packet * Add `gulrak/filesystem` * Replace some IO::Filesystem with std::filesystem * Add `MaNGOS::Policies::NoCopyNoMove` * Fix shutdown crash when with `ThreadSpecificPtr` * Fix RaspberryPi build * Native IO: Changed internal `ipv4` representation * Rename `nostd::expected` to `nonstd::expected` * Refactor `IO::Networking::AsyncServer` * `IO::ReadableBuffer` to replace all buffers types * `ReadableBuffer` rename `ByteBuffer` member * Fix missing `;` * Enforce `;` at end of `MANGOS_DEBUG_ASSERT` * Fix Linux build after AsyncSocketAcceptor refactor * Fix windows build * Rename file to `ReadableBuffer.h` * Fix typo `GetLeastUsedIoContext` * Add comment to `IO::ReadableBuffer` * Add connect feature for sockets * Fix mac build * Update cpptrace to fix Visual Studio 2015 bug * Fix realmd build. * Native IO Documentation * Revert "Native Branch: Replace parts of `IO::Filesystem` with C++17 `std::filesystem`" (vmangos#2757) * Fix WinXP bug. lol * Fix more potential errors on windows * Use `inet_pton` instead of `inet_addr` * Change `cmake_minimum_required` of `cpptrace` * Add dependencies to `3rd Party` cmake folder group * Add comment how to use `EnumFlag` * Remove `FileOpenFlags` Backport commit from reverted fs change vmangos#2746 * Add comment to `Errors.h` * log stacktrace to `sLog` instead of `std::cout` * Remove ACE stuff from github buildaction * Update `cpptrace` to fix 32bit bug * AsyncSocketAcceptor only log on real error * "Lowered" log level of mostly uninteresting logs * Reason for `IO::ReadableBuffer` * Fix cmake error. * Fix RaspberryPI build OS: Ubuntu 24.10 Server --------- Co-authored-by: ratkosrb <[email protected]> Co-authored-by: ratkosrb <[email protected]> Co-authored-by: Nolin <[email protected]>
0blu
added a commit
to 0blu/vmangos-core
that referenced
this pull request
Sep 26, 2024
commit 2106888 Author: 0blu <[email protected]> Date: Thu Sep 26 02:25:03 2024 +0200 `PrintStacktrace` show error if no debug symbols commit fdcae22 Merge: 2f79467 72090ec Author: 0blu <[email protected]> Date: Thu Sep 26 02:20:20 2024 +0200 Merge branch 'development' of https://github.com/vmangos/core into HEAD commit 2f79467 Merge: ce22bf7 60a3ca7 Author: ratkosrb <[email protected]> Date: Wed Sep 25 02:33:41 2024 +0200 Merge pull request vmangos#2777 from 0blu/native-realmd-no-init-ip Native Branch: Fix missing IP at realmd commit 60a3ca7 Author: 0blu <[email protected]> Date: Tue Sep 24 00:12:18 2024 +0200 Print human readable error on ::bind() error commit e1f8888 Author: 0blu <[email protected]> Date: Tue Sep 24 00:11:11 2024 +0200 Fix crash if unable to bind port commit 612e8aa Author: 0blu <[email protected]> Date: Tue Sep 24 00:10:29 2024 +0200 Add `IO::Networking::DNS::SelectionStrategy` commit a443e7e Author: 0blu <[email protected]> Date: Mon Sep 23 23:46:28 2024 +0200 Remove deprecated `std::unexpected` commit 0096b51 Author: 0blu <[email protected]> Date: Mon Sep 23 23:09:22 2024 +0200 Fix uninitialized IP string in `AuthHandler` commit ce22bf7 Author: Nolin <[email protected]> Date: Mon Sep 23 22:00:58 2024 +0200 Fix Apple Silicon Build commit 8eb16b5 Merge: a14d299 54c7538 Author: ratkosrb <[email protected]> Date: Mon Sep 23 02:04:07 2024 +0200 Merge pull request vmangos#2774 from 0blu/realmlist-dns Native Branch: DNS resolve realmlist addresses commit 54c7538 Author: 0blu <[email protected]> Date: Mon Sep 23 01:11:15 2024 +0200 RealmList DNS resolve commit c1c4927 Author: 0blu <[email protected]> Date: Mon Sep 23 01:04:39 2024 +0200 Resolve IP addresses without touching DNS layer commit 89a399f Author: 0blu <[email protected]> Date: Mon Sep 23 00:54:15 2024 +0200 Improve `SystemErrorToString` commit a14d299 Merge: 5465f01 37b832c Author: ratkosrb <[email protected]> Date: Wed Sep 18 09:26:55 2024 +0200 Merge pull request vmangos#2771 from 0blu/native-proxy-protocol-real-ip Native Branch: Add built-in support for proxy-v2 to get the real IP of a player commit 37b832c Author: 0blu <[email protected]> Date: Wed Sep 18 00:57:35 2024 +0200 Fix unix build commit a02eb3f Author: 0blu <[email protected]> Date: Tue Sep 17 23:16:38 2024 +0200 Realmd add `TrustedProxyServers` commit b1662cc Author: 0blu <[email protected]> Date: Tue Sep 17 22:22:50 2024 +0200 Mangosd add `TrustedProxyServers` commit 3788d87 Author: 0blu <[email protected]> Date: Tue Sep 17 22:11:07 2024 +0200 WorldSocket header optimization. commit a251e5f Author: 0blu <[email protected]> Date: Tue Sep 17 21:49:42 2024 +0200 Fixup ProxyV2Reader commit 12a5bd5 Author: 0blu <[email protected]> Date: Tue Sep 17 21:49:24 2024 +0200 Fixup SplitStringByDelimiter commit b08a220 Author: 0blu <[email protected]> Date: Tue Sep 17 10:08:55 2024 +0200 Fixup InitializeAndFixateMemoryLocation commit 13d344f Author: 0blu <[email protected]> Date: Tue Sep 17 10:08:38 2024 +0200 IP Address `toString` -> `ToString` commit 32b70e3 Author: 0blu <[email protected]> Date: Tue Sep 17 10:07:04 2024 +0200 Fixup, Error ToString commit 31e636f Author: 0blu <[email protected]> Date: Tue Sep 17 10:06:24 2024 +0200 IP comment commit 2c3bccc Author: 0blu <[email protected]> Date: Tue Sep 17 01:40:34 2024 +0200 Rename `InitializeAndFixateMemoryLocation` commit 1f193fd Author: 0blu <[email protected]> Date: Tue Sep 17 01:39:13 2024 +0200 Add `TrustedProxyServers` to config commit b127da2 Author: 0blu <[email protected]> Date: Tue Sep 17 01:38:36 2024 +0200 Fixup default WaitAtStartupError 2 commit 788af92 Author: 0blu <[email protected]> Date: Tue Sep 17 01:37:56 2024 +0200 Fixup default `WaitAtStartupError ` commit f75dad8 Author: 0blu <[email protected]> Date: Tue Sep 17 01:37:27 2024 +0200 Changed default `WaitAtStartupError` commit 30f268a Author: 0blu <[email protected]> Date: Tue Sep 17 01:35:58 2024 +0200 Proxy comment commit 783cbb8 Author: 0blu <[email protected]> Date: Tue Sep 17 01:35:28 2024 +0200 Add `SplitStringByDelimiter` util commit 0b4ef09 Author: 0blu <[email protected]> Date: Mon Sep 16 23:48:02 2024 +0200 Fix protocol parser commit 954a7b9 Author: 0blu <[email protected]> Date: Mon Sep 16 23:47:48 2024 +0200 Add `UndefinedErrorType` to `GetErrorBaseString` commit cd4e0bc Author: 0blu <[email protected]> Date: Mon Sep 16 23:43:57 2024 +0200 Fix indent commit 05d617f Author: 0blu <[email protected]> Date: Fri Sep 13 23:57:08 2024 +0200 Testing native ip commit 5465f01 Author: 0blu <[email protected]> Date: Wed Sep 18 00:24:16 2024 +0200 Hide `cpptrace` cmake variables commit b38dd07 Author: 0blu <[email protected]> Date: Wed Sep 18 00:23:35 2024 +0200 Update `cpptrace` dependency to version `0.7.1` commit c75ba67 Merge: f114e9d 5973bad Author: ratkosrb <[email protected]> Date: Tue Sep 17 06:41:28 2024 +0200 Merge pull request vmangos#2770 from 0blu/ip-subnet-check-fix Native Branch: IsInSameSubnet fix commit 5973bad Author: 0blu <[email protected]> Date: Mon Sep 16 22:25:59 2024 +0200 Dont crash on missing migrations commit e6c4c39 Author: 0blu <[email protected]> Date: Mon Sep 16 22:25:23 2024 +0200 IoContext, yield once on error commit cb060ad Author: 0blu <[email protected]> Date: Mon Sep 16 22:23:53 2024 +0200 IPAddress: rename `getType` to `GetType` commit 0330866 Author: 0blu <[email protected]> Date: Mon Sep 16 22:22:56 2024 +0200 Nolint non initialized internal union commit 81f134e Author: 0blu <[email protected]> Date: Mon Sep 16 22:07:30 2024 +0200 Add comment commit 96cdcc4 Author: 0blu <[email protected]> Date: Mon Sep 16 22:07:19 2024 +0200 Fix incorrect `Networking::IsInSameSubnet` check commit f114e9d Merge: 0f40bf9 ff592ab Author: ratkosrb <[email protected]> Date: Mon Sep 16 19:08:30 2024 +0200 Merge pull request vmangos#2768 from 0blu/cpptrace-fix Native Branch: `cpptrace` fix commit ff592ab Author: 0blu <[email protected]> Date: Sun Sep 15 23:51:52 2024 +0200 cpp trace version change commit 0f40bf9 Author: schell244 <[email protected]> Date: Sun Sep 15 07:19:14 2024 +0200 RaspberryPi Fixes (vmangos#2765) commit 607116e Author: schell244 <[email protected]> Date: Sat Sep 14 22:48:52 2024 +0200 Remove unnecessary include. (vmangos#2764) commit 907c08d Author: Nolin <[email protected]> Date: Sat Sep 14 18:42:07 2024 +0200 Fix RaspberryPI build OS: Ubuntu 24.10 Server commit ab4cc77 Merge: 8a9a39a ff028e8 Author: ratkosrb <[email protected]> Date: Sat Sep 14 18:11:05 2024 +0200 Merge pull request vmangos#2763 from vmangos/development Update native branch commit 8a9a39a Author: ratkosrb <[email protected]> Date: Sat Sep 14 17:39:38 2024 +0300 Fix cmake error. commit 6c9e0a6 Merge: 1d18a61 0bf3237 Author: ratkosrb <[email protected]> Date: Sat Sep 14 03:02:26 2024 +0200 Merge pull request vmangos#2761 from 0blu/native-some-changes-1 Native Branch: Minor changes commit 0bf3237 Author: 0blu <[email protected]> Date: Fri Sep 13 19:46:57 2024 +0200 Reason for `IO::ReadableBuffer` commit 3b18cdf Author: 0blu <[email protected]> Date: Fri Sep 13 19:24:29 2024 +0200 "Lowered" log level of mostly uninteresting logs commit 9b277c9 Author: 0blu <[email protected]> Date: Fri Sep 13 19:15:14 2024 +0200 AsyncSocketAcceptor only log on real error commit 5025e3d Author: 0blu <[email protected]> Date: Fri Sep 13 18:47:26 2024 +0200 Update `cpptrace` to fix 32bit bug commit 242a9e9 Author: 0blu <[email protected]> Date: Mon Sep 9 21:39:59 2024 +0200 Remove ACE stuff from github buildaction commit 9fa88c6 Author: 0blu <[email protected]> Date: Mon Sep 9 21:38:23 2024 +0200 log stacktrace to `sLog` instead of `std::cout` commit 29aacce Author: 0blu <[email protected]> Date: Mon Sep 9 21:35:55 2024 +0200 Add comment to `Errors.h` commit 2e30f60 Author: 0blu <[email protected]> Date: Sun Sep 8 01:11:48 2024 +0200 Remove `FileOpenFlags` Backport commit from reverted fs change vmangos#2746 commit 60ddc5c Author: 0blu <[email protected]> Date: Sun Sep 8 00:52:51 2024 +0200 Add comment how to use `EnumFlag` commit eb2d287 Author: 0blu <[email protected]> Date: Sat Sep 7 23:20:48 2024 +0200 Add dependencies to `3rd Party` cmake folder group commit 4a7960a Author: 0blu <[email protected]> Date: Sat Sep 7 23:20:05 2024 +0200 Change `cmake_minimum_required` of `cpptrace` commit fee4a3b Author: 0blu <[email protected]> Date: Sat Sep 7 03:19:21 2024 +0200 Use `inet_pton` instead of `inet_addr` commit fe12603 Author: 0blu <[email protected]> Date: Sat Sep 7 03:09:05 2024 +0200 Fix more potential errors on windows commit e68c966 Author: 0blu <[email protected]> Date: Sat Sep 7 03:02:01 2024 +0200 Fix WinXP bug. lol commit 1d18a61 Author: ratkosrb <[email protected]> Date: Sun Sep 8 00:27:04 2024 +0200 Revert "Native Branch: Replace parts of `IO::Filesystem` with C++17 `std::filesystem`" (vmangos#2757) commit d9f17f6 Merge: 1eaa04f 5904339 Author: ratkosrb <[email protected]> Date: Sat Sep 7 19:45:01 2024 +0200 Merge pull request vmangos#2746 from 0blu/native-some-std-filesystem Native Branch: Replace parts of `IO::Filesystem` with C++17 `std::filesystem` commit 1eaa04f Merge: af63ec8 6ea706a Author: ratkosrb <[email protected]> Date: Sat Sep 7 07:48:20 2024 +0200 Merge pull request vmangos#2754 from 0blu/native-documentation Native Branch: Documentation commit 6ea706a Author: 0blu <[email protected]> Date: Sat Sep 7 02:01:31 2024 +0200 Native IO Documentation commit af63ec8 Author: ratkosrb <[email protected]> Date: Fri Sep 6 07:20:42 2024 +0300 Fix realmd build. commit a7897d1 Merge: 2ef457f 6bc3c49 Author: ratkosrb <[email protected]> Date: Fri Sep 6 01:17:31 2024 +0200 Merge pull request vmangos#2752 from 0blu/native-socket-connector Native Branch: Socket Connector commit 2ef457f Merge: 7e50e26 6161309 Author: ratkosrb <[email protected]> Date: Fri Sep 6 01:15:57 2024 +0200 Merge pull request vmangos#2753 from 0blu/native-fix-cpptrace-vs14 Update cpptrace to fix Visual Studio 2015 compile bug commit 6161309 Author: 0blu <[email protected]> Date: Thu Sep 5 23:34:28 2024 +0200 Update cpptrace to fix Visual Studio 2015 bug commit 6bc3c49 Author: _BLU <[email protected]> Date: Thu Sep 5 23:19:03 2024 +0200 Fix mac build commit b374c06 Author: 0blu <[email protected]> Date: Thu Sep 5 22:05:54 2024 +0200 Add connect feature for sockets commit 7e50e26 Merge: f2ef52a 53777b5 Author: ratkosrb <[email protected]> Date: Thu Sep 5 10:28:48 2024 +0200 Merge pull request vmangos#2749 from 0blu/native-refactor-net-server Native Branch: Refactor AsyncSocketServer commit 53777b5 Author: 0blu <[email protected]> Date: Wed Sep 4 23:51:20 2024 +0200 Add comment to `IO::ReadableBuffer` commit 4beb432 Author: 0blu <[email protected]> Date: Wed Sep 4 23:42:18 2024 +0200 Fix typo `GetLeastUsedIoContext` commit bb0c162 Author: 0blu <[email protected]> Date: Wed Sep 4 23:27:07 2024 +0200 Rename file to `ReadableBuffer.h` commit 0a0af98 Author: 0blu <[email protected]> Date: Wed Sep 4 23:21:36 2024 +0200 Fix windows build commit 691ef1b Author: 0blu <[email protected]> Date: Wed Sep 4 23:06:51 2024 +0200 Fix Linux build after AsyncSocketAcceptor refactor commit fee4aa5 Author: 0blu <[email protected]> Date: Wed Sep 4 23:00:55 2024 +0200 Enforce `;` at end of `MANGOS_DEBUG_ASSERT` commit 5f53005 Author: 0blu <[email protected]> Date: Wed Sep 4 23:00:38 2024 +0200 Fix missing `;` commit d37da10 Author: 0blu <[email protected]> Date: Wed Sep 4 22:57:39 2024 +0200 `ReadableBuffer` rename `ByteBuffer` member commit bc19080 Author: 0blu <[email protected]> Date: Tue Sep 3 01:23:44 2024 +0200 `IO::ReadableBuffer` to replace all buffers types commit e32e50a Author: 0blu <[email protected]> Date: Mon Sep 2 02:51:56 2024 +0200 Refactor `IO::Networking::AsyncServer` commit 5809c11 Author: 0blu <[email protected]> Date: Sun Sep 1 01:18:38 2024 +0200 Rename `nostd::expected` to `nonstd::expected` commit d8adf2f Author: 0blu <[email protected]> Date: Sun Sep 1 01:05:42 2024 +0200 Native IO: Changed internal `ipv4` representation commit 03f7c47 Author: 0blu <[email protected]> Date: Sun Sep 1 01:03:15 2024 +0200 Fix RaspberryPi build commit f2ef52a Merge: 5f0106a b60a24a Author: ratkosrb <[email protected]> Date: Sat Aug 31 22:46:17 2024 +0200 Merge pull request vmangos#2748 from 0blu/native-fix-tss Native Branch: Fix crash on related to `ThreadSpecificPtr<T>` commit b60a24a Author: 0blu <[email protected]> Date: Sat Aug 31 21:04:07 2024 +0200 Fix shutdown crash when with `ThreadSpecificPtr` commit 4f2a255 Author: 0blu <[email protected]> Date: Sat Aug 31 21:02:07 2024 +0200 Add `MaNGOS::Policies::NoCopyNoMove` commit 5904339 Author: 0blu <[email protected]> Date: Sat Aug 31 00:31:00 2024 +0200 Replace some IO::Filesystem with std::filesystem commit 03a1e98 Author: 0blu <[email protected]> Date: Sat Aug 31 00:25:16 2024 +0200 Add `gulrak/filesystem` commit 5f0106a Merge: 21ca640 5ce83ff Author: ratkosrb <[email protected]> Date: Fri Aug 30 23:52:10 2024 +0200 Merge pull request vmangos#2745 from 0blu/native-xfer-resume Native Branch: Readd `CMD_XFER_RESUME` commit 5ce83ff Author: 0blu <[email protected]> Date: Fri Aug 30 23:32:00 2024 +0200 Use real `XFER_INIT` packet commit fe2e36e Author: 0blu <[email protected]> Date: Fri Aug 30 23:31:22 2024 +0200 Remove `typedef` of `struct`s in AuthPackets commit 3fb32fa Author: 0blu <[email protected]> Date: Fri Aug 30 22:05:37 2024 +0200 Readd `CMD_XFER_RESUME` commit 92af06b Author: 0blu <[email protected]> Date: Fri Aug 30 22:05:20 2024 +0200 Add `IO::Filesystem::FileHandle::Seek` commit f3395ce Author: 0blu <[email protected]> Date: Fri Aug 30 19:18:52 2024 +0200 Use `XFER_DATA_CHUNK*` instead of `uint8*` commit c992a61 Author: 0blu <[email protected]> Date: Fri Aug 30 18:56:13 2024 +0200 Move realmd packets to file `AuthPackets.h` commit ac4c98b Author: 0blu <[email protected]> Date: Fri Aug 30 18:52:56 2024 +0200 Create `MaNGOS::Memory::no_deleter` Discover new and exciting ways how to leak memory by using this struct. commit 2909b75 Author: 0blu <[email protected]> Date: Fri Aug 30 18:51:56 2024 +0200 Move `array_deleter` to `MaNGOS::Memory` namespace commit 6f787e6 Author: 0blu <[email protected]> Date: Fri Aug 30 17:19:47 2024 +0200 Fix missing argument in a `sLog.Out()` call commit 21ca640 Merge: a0b378f f8f08c1 Author: ratkosrb <[email protected]> Date: Fri Aug 30 03:01:15 2024 +0200 Merge pull request vmangos#2743 from 0blu/native-remove-ace-finally Native Branch: Remove last references of ACE in code and CMake commit f8f08c1 Author: 0blu <[email protected]> Date: Fri Aug 30 01:41:06 2024 +0200 Fix Linux build of mmap/MapBuilder.cpp commit 9310ef4 Author: _BLU <[email protected]> Date: Fri Aug 30 01:17:47 2024 +0200 Fix macOS build commit 692be45 Author: 0blu <[email protected]> Date: Fri Aug 30 00:55:03 2024 +0200 Native: Fix Linux build after ACE removal commit cc3307a Author: 0blu <[email protected]> Date: Fri Aug 30 00:39:49 2024 +0200 Remove last references of ACE in code and CMake commit d4e6a69 Author: 0blu <[email protected]> Date: Fri Aug 30 00:23:59 2024 +0200 Remove ACE headers for global Windows.h import 😭 I really tried a lot to avoid a global Windows header include. I was able remove all of the references but not for G3D, they have it deeply embedded in their headers. For example a simple `Vector.h` depends on `Windows.h` (like WTF). commit 24a37c7 Author: 0blu <[email protected]> Date: Thu Aug 29 23:53:08 2024 +0200 Add `IO::Utils::GetCurrentProcessId()` commit a0b378f Merge: f371547 405408f Author: ratkosrb <[email protected]> Date: Fri Aug 30 00:19:49 2024 +0200 Merge pull request vmangos#2742 from 0blu/native-move-stacktrace-to-cpp-file Native move stacktrace to cpp file commit 405408f Author: 0blu <[email protected]> Date: Thu Aug 29 19:00:52 2024 +0200 Remove Replaced `backward.hpp` with `cpptrace` And also moved the stack trace handling to a cpp file, since its not performance critical commit 78b9b04 Author: 0blu <[email protected]> Date: Thu Aug 29 18:23:27 2024 +0200 Add `jeremy-rifkin/cpptrace` to repo tree commit 3d522b2 Author: 0blu <[email protected]> Date: Thu Aug 29 18:27:22 2024 +0200 Fix usage of `MANGOS_ASSERT` (add `;` at end) commit 2b3bda5 Author: 0blu <[email protected]> Date: Wed Aug 28 20:13:31 2024 +0200 Native: Remove even more ACE includes commit f371547 Merge: 0680ce0 2f500b9 Author: ratkosrb <[email protected]> Date: Wed Aug 28 18:04:53 2024 +0200 Merge pull request vmangos#2736 from vmangos/development Update native branch commit 0680ce0 Merge: f48d8ab 26226ab Author: ratkosrb <[email protected]> Date: Wed Aug 28 11:42:37 2024 +0200 Merge pull request vmangos#2734 from 0blu/native-non-generic-asyncsocket2 Native Branch: Move `IO::Networking::AsyncSocket` to .cpp file commit f48d8ab Merge: b7687bb afa1065 Author: ratkosrb <[email protected]> Date: Wed Aug 28 11:39:40 2024 +0200 Merge pull request vmangos#2733 from 0blu/native-remove-ace-header Native Branch: Remove most ACE headers commit b7687bb Merge: ee78492 1bb32a5 Author: ratkosrb <[email protected]> Date: Wed Aug 28 11:38:37 2024 +0200 Merge pull request vmangos#2732 from 0blu/native-warden-fix Native Branch: Warden without ACE commit ee78492 Merge: 8c3f71f 63dfc7a Author: ratkosrb <[email protected]> Date: Wed Aug 28 11:38:18 2024 +0200 Merge pull request vmangos#2731 from 0blu/native-mangos-gsoap-without-ace Native Branch: MaNGOS gSOAP without ace commit 26226ab Author: 0blu <[email protected]> Date: Tue Aug 27 20:04:35 2024 +0200 NativeIO: Set atomic state before `::WSASend/Recv` commit 50c48e1 Author: 0blu <[email protected]> Date: Tue Aug 27 17:02:13 2024 +0200 AsyncSocket non generic and offload to cpp file commit afa1065 Author: 0blu <[email protected]> Date: Tue Aug 27 17:11:30 2024 +0200 Fix linux build commit ab442db Author: 0blu <[email protected]> Date: Tue Aug 27 12:08:46 2024 +0200 Add `#undef main` to realmd and mangosd commit 78e3370 Author: 0blu <[email protected]> Date: Tue Aug 27 12:06:47 2024 +0200 Fix missing includes commit 286f285 Author: 0blu <[email protected]> Date: Tue Aug 27 11:58:31 2024 +0200 Fix `world-daemon` logging name Bug introduced in a566778 commit edf34c8 Author: 0blu <[email protected]> Date: Tue Aug 27 11:29:12 2024 +0200 Remove ACE from `Common.h` commit 8316870 Author: 0blu <[email protected]> Date: Tue Aug 27 11:28:14 2024 +0200 Remove networking includes stuff from `Common.h` commit 6b1d8a1 Author: 0blu <[email protected]> Date: Tue Aug 27 11:26:54 2024 +0200 Remove `countof` macro commit 5ec3c4d Author: 0blu <[email protected]> Date: Tue Aug 27 11:26:35 2024 +0200 Remove ACE from `sprintf` formatting macros commit 9b71eaa Author: 0blu <[email protected]> Date: Tue Aug 27 11:06:22 2024 +0200 Remove code for Solaris in `Common.h` commit 7f89982 Author: 0blu <[email protected]> Date: Tue Aug 27 11:03:56 2024 +0200 Always show warnings. Disable locally if needed. commit 72e0a2b Author: 0blu <[email protected]> Date: Tue Aug 27 10:31:57 2024 +0200 Remove `LockedQueue` from `Common.h` commit e894710 Author: 0blu <[email protected]> Date: Tue Aug 27 00:56:22 2024 +0200 Remove ACE include from `realmd/AuthSocket.cpp` commit ac58929 Author: 0blu <[email protected]> Date: Tue Aug 27 00:55:34 2024 +0200 Remove ACE include from `mangosd/Master.cpp` commit 87aca53 Author: 0blu <[email protected]> Date: Tue Aug 27 00:54:50 2024 +0200 Don't print ACE version on startup commit b17363a Author: 0blu <[email protected]> Date: Mon Aug 26 22:23:59 2024 +0200 Remove unused `DelayExecutor` commit 9bf7b77 Author: 0blu <[email protected]> Date: Mon Aug 26 22:20:06 2024 +0200 Replace ACE specific numeric types with std:: ones commit 13a3e4a Author: 0blu <[email protected]> Date: Mon Aug 26 21:41:08 2024 +0200 `Log::WaitBeforeContinueIfNeed` sleep without ACE commit 6b17295 Author: 0blu <[email protected]> Date: Mon Aug 26 21:40:44 2024 +0200 `IsIPAddress` without ACE commit 1bb32a5 Author: 0blu <[email protected]> Date: Mon Aug 26 17:27:46 2024 +0200 `Warden::GetModuleNames` without ACE commit 63dfc7a Author: 0blu <[email protected]> Date: Mon Aug 26 17:13:52 2024 +0200 Add SOAP without ACE commit 7c571cd Author: 0blu <[email protected]> Date: Mon Aug 26 17:11:14 2024 +0200 Add `IO::Networking::IpAddress::FromIpv4Uint32` commit 8c3f71f Merge: 2d1f188 f5dce5d Author: ratkosrb <[email protected]> Date: Tue Aug 27 23:45:59 2024 +0200 Merge pull request vmangos#2730 from 0blu/native-mangos-update-gsoap Update gsoap commit f5dce5d Author: 0blu <[email protected]> Date: Mon Aug 26 15:46:13 2024 +0200 Fix double free in SOAP code commit 9993ddc Author: 0blu <[email protected]> Date: Mon Aug 26 15:11:19 2024 +0200 Update gSOAP `2.7.10` (2008) to `2.8.135` (2024) commit 95f3270 Author: 0blu <[email protected]> Date: Mon Aug 26 15:05:54 2024 +0200 Move gSOAP into a diffrent folder commit 2d1f188 Merge: 026dd9e 4642008 Author: ratkosrb <[email protected]> Date: Tue Aug 27 22:45:15 2024 +0200 Merge pull request vmangos#2727 from 0blu/native-mangos-ra Native Branch: Remote Access Terminal without ACE commit 4642008 Author: 0blu <[email protected]> Date: Sun Aug 25 16:59:17 2024 +0200 RASocket add support for telnet negotiation Allow applications like Putty to connect to the server commit 3e955e2 Author: 0blu <[email protected]> Date: Sun Aug 25 16:38:53 2024 +0200 Remove ACE from `RASocket` commit 6dc90a7 Author: 0blu <[email protected]> Date: Sun Aug 25 15:02:46 2024 +0200 Move `array_deleter` into separate header commit 5c76ab9 Author: 0blu <[email protected]> Date: Sun Aug 25 17:34:58 2024 +0200 Add `AsyncSocket::ReadSome` commit 1d7e802 Author: 0blu <[email protected]> Date: Sat Aug 24 13:59:31 2024 +0200 Add `AsyncSocket::ReadSome` commit eb9630d Author: 0blu <[email protected]> Date: Sat Aug 24 13:24:53 2024 +0200 Add `sConfig.IsSet` commit b2d7378 Author: 0blu <[email protected]> Date: Sat Aug 24 13:22:19 2024 +0200 Logical const-correctness for sConfig commit e77012c Author: 0blu <[email protected]> Date: Fri Aug 23 12:14:06 2024 +0200 Move mangos remote stuff in separate folder commit 026dd9e Merge: 095a260 c2882c3 Author: ratkosrb <[email protected]> Date: Tue Aug 27 21:13:53 2024 +0200 Merge pull request vmangos#2724 from 0blu/native-time Native Branch: Use std::chrono instead of ACE Time commit c2882c3 Author: 0blu <[email protected]> Date: Fri Aug 23 03:41:04 2024 +0200 Use std::chrono instead of ACE Time commit 095a260 Merge: 4dd18c9 a566778 Author: ratkosrb <[email protected]> Date: Tue Aug 27 11:56:19 2024 +0200 Merge pull request vmangos#2723 from 0blu/native-argparse Native Branch: Replace ACE/get_opt with custom ArgparseForServer commit a566778 Author: 0blu <[email protected]> Date: Fri Aug 23 02:39:40 2024 +0200 Replace `ACE/get_opt` with custom `ArgparseForServer` commit 38b2fb7 Author: 0blu <[email protected]> Date: Fri Aug 23 02:39:14 2024 +0200 ServiceWin32 use `nullptr` instead of `0` commit 529259e Author: 0blu <[email protected]> Date: Fri Aug 23 02:33:03 2024 +0200 Add `std::expected` backport commit 04eea38 Author: 0blu <[email protected]> Date: Tue Aug 20 11:04:40 2024 +0200 Rename `sConfig.SetSource()` commit ff12710 Author: 0blu <[email protected]> Date: Tue Aug 20 11:03:06 2024 +0200 Increase max line length of `sConfig::Reload()` If for example a full windows path would be provided in one of the variables, it would fail commit 4dd18c9 Author: _BLU <[email protected]> Date: Mon Aug 26 02:14:26 2024 +0200 Add IO::Networking::DNS::ResolveDomain (vmangos#2722) commit fdce76d Author: _BLU <[email protected]> Date: Sat Aug 24 01:16:18 2024 +0200 Replace ACE_TSS in Database with non ACE implementation (vmangos#2718) commit 2949fba Author: ratkosrb <[email protected]> Date: Mon Aug 12 04:29:08 2024 +0300 More missing includes. commit ebfc7b8 Author: ratkosrb <[email protected]> Date: Mon Aug 12 04:10:38 2024 +0300 Add missing includes. commit d335327 Author: ratkosrb <[email protected]> Date: Mon Aug 12 04:01:32 2024 +0300 Fix extractors build. commit 1632f5c Author: ratkosrb <[email protected]> Date: Sun Aug 11 06:00:51 2024 +0300 Use backward library for stacktrace. commit b518e9f Author: _BLU <[email protected]> Date: Sun Aug 11 02:45:36 2024 +0200 Fix build with Visual Studio 2015 (vmangos#2717) * Remove `::inet_ntop` dependency on windows We cant use ::inet_ntoa(...) because it's not thread safe. We cant use ::inet_ntop(...) because it's not WinXP compatible. So we have to do it ourselves. * Fix Windows `AsyncSystemTimer` on 32bit * Fix `EnumFlags.h` on VS14 * Add comment to `GetRemoteIpString` * Add max size to `m_sendQueue` commit 2e4421e Author: _BLU <[email protected]> Date: Fri Aug 9 17:56:43 2024 +0200 Minor changes to native branch (vmangos#2715) * NativeIO: Remove unused parts of the code * WorldSession do `FinalizeSession()` on socket * Rename variable * Native IO: Don't get the filePath from a handle * Reformat AsyncIoOperation.h * Use inet_ntop instead inet_ntoa for thread-safety * Fix visibility in AsyncSocket * Clear CONTEXT_PRESENT when StopPendingTransactions commit 3e5aa9c Author: _BLU <[email protected]> Date: Wed Aug 7 18:57:04 2024 +0200 Native networking for mangosd (vmangos#2707) * Native mangosd: Able to "join" the game * Add ring buffer for packets. Encryption is done in IO thread * Rename all threads * Add Reactor style native IO like Boost or ACE * Add a WorldSocketMgt just like `TrinityCore` * Readd realmd support with new IoContext stuff * New IO ctx now compiles under linux (still some runtime bugs) * Native: Linux use eventfd for context switch notify * Fix windows build * Fix usage of `std::shared_ptr<WorldSocket>` * Make m_sendQueueIsRunning atomic * Fix duplicated line * Fix duplicated maiev scan in debug (vmangos#2706) * Remove lock free packet send queue for now * Fix linux build * Initialize some variables at `WorldSession` to make clang-tidy happy * NativeIO: Use std::atomic to be lock free * Native: Also make windows IO lock free * Fix sql field index comment * Remove unnecessary includes * Update mangosd.conf.dist.in * Minor changes to native IO code and comments * Fix initial macos bugs * Fix some comments * Inline MANGOS_ASSERT condition * Add JetBrain IDE code style defaults (vmangos#2709) * Native IO: Fix macOS build * Reformat `mangos/Master.cpp` and `realmd/Main.cpp` * Fix incorrect client ip realmd -> mangosd check * Re-add `HandlePing` support for older clients * Reformat `WorldSocket.cpp` * Native: World/ioCtx shutdown fix * AsyncSystemTimer: Fix potential notify loss commit d9254f4 Merge: cbd8523 60a555f Author: ratkosrb <[email protected]> Date: Mon Jul 1 09:26:27 2024 +0300 Merge pull request vmangos#2697 from vmangos/development update native branch commit cbd8523 Author: _BLU <[email protected]> Date: Sun Jun 30 21:29:03 2024 +0200 NativeIO: Add Linux support (vmangos#2696) * Create NativeAliases.h * IO::Networking moved some files around * `IocpOperationTask` as member of `AsyncSocket` to avoid `new` memory allocation * Native IO: Able to compile empty impl on linux * Fix windows build * Native IO: Linux add fs support * Native IO: Linux, able to connect * Fix uninitialized `m_sessionDurationTimeout` * Fix SO_REUSEADDR on linux * Sortof impl of unix epoll AsyncSocket * Add own implementation of `AsyncSystemTimer` * Code Style * Native IO: Add all other Write handlers * NativeIO: Linux add EPOLLRDHUP for disconnect requests * Fix windows build * NativeIO: Windows Code Style * Fix EnumFlags * Update comment commit c4dd43f Author: ratkosrb <[email protected]> Date: Tue Jun 25 05:08:45 2024 +0300 Code style fixes. commit 22146a7 Author: ratkosrb <[email protected]> Date: Tue Jun 25 04:54:54 2024 +0300 Fix AuthSocket build. commit b175ca5 Author: ratkosrb <[email protected]> Date: Tue Jun 25 04:43:36 2024 +0300 Fix build error in EnumFlag. commit 1bbe6a8 Author: ratkosrb <[email protected]> Date: Tue Jun 25 04:02:03 2024 +0300 Remove semicolon after include. commit 76be16f Author: _BLU <[email protected]> Date: Tue Jun 25 02:54:20 2024 +0200 Add CMD_XFER_ACCEPT support (vmangos#2691) * Make m_ServiceStatus volatile * Add type size to eAuthCmd and AuthResult * NativeIO: Realmd: First impl of `LogonChallenge` just like cMangos Currently only windows support. Using legacy `::select` function. Must use IOCTL in the future. * Add "Network" to log type string * Make m_ServiceStatus volatile (again) * SRP6 add const to parameter * Database add DbExecMode to force sync statements (prevent race condition) * Reimplement most AuthSocket handers async (like cMangos) * Use high performance winsock2 async sockets The implementation is inspired by Boost::ASIO and Nginx * Async networking: Split declaration and definition inside header * Async networking: Move implementation into own folder * Fix ATTR_PRINTF on PExecute with DbExecMode * Add function IO::Multithreading::CreateThread with nameable threads * Add IO::Timer::AsyncSystemTimer * Change RunEventLoop error handling * Remove Timer was already removed error log * Add comment explaining why we cant use `SetThreadDescription` * Remove `MaNGOS::` prefix from `IO::` namespace * Add TrinityCore's EnumFlag implementation Reference: https://github.com/TrinityCore/TrinityCore/blob/a0e5f9db7e3fdf70ec70533e64e5653f04eeac16/src/common/Utilities/EnumFlag.h * Fix windows #include * Please split `socket->Write(...)` calls * Async socket add Write for `uint8[]` * Update AsyncServerListener.h * Update AuthCodes.h * Add namespace `IO::Filesystem` * ByteBuffer add `append(std::vector<uint8> const& src)` * Realmd: Remove old PatchHandler * Add new `ClientPatchCache` * Realmd: Add support for `CMD_XFER_ACCEPT` * Remove ACE_TYPES from `XFER_DATA_CHUNK` * Add `IO::Networking::` `IpAddress` and `IpEndpoint` structures * Add `IO::Networking::IsInSameSubnet` * Add function `AsyncSocket<T>::GetRemoteEndpoint()` and `GetRemoteIpString()` * Make ReamList use new `IO::Networking::IpAddress` * Fix `IO::Filesystem::GetAllFilesInFolder` comment commit a403bec Author: ratkosrb <[email protected]> Date: Sun Jun 23 20:15:08 2024 +0300 Include stirng header in CreateThread.h commit 03257ea Author: _BLU <[email protected]> Date: Sun Jun 23 18:36:42 2024 +0200 Add MaxSessionDuration to realmd (vmangos#2687) * Make m_ServiceStatus volatile * Add type size to eAuthCmd and AuthResult * NativeIO: Realmd: First impl of `LogonChallenge` just like cMangos Currently only windows support. Using legacy `::select` function. Must use IOCTL in the future. * Add "Network" to log type string * Make m_ServiceStatus volatile (again) * SRP6 add const to parameter * Database add DbExecMode to force sync statements (prevent race condition) * Reimplement most AuthSocket handers async (like cMangos) * Use high performance winsock2 async sockets The implementation is inspired by Boost::ASIO and Nginx * Async networking: Split declaration and definition inside header * Async networking: Move implementation into own folder * Fix ATTR_PRINTF on PExecute with DbExecMode * Add function IO::Multithreading::CreateThread with nameable threads * Add IO::Timer::AsyncSystemTimer * Change RunEventLoop error handling * Remove Timer was already removed error log * Add comment explaining why we cant use `SetThreadDescription` * Remove `MaNGOS::` prefix from `IO::` namespace commit ea60861 Author: ratkosrb <[email protected]> Date: Sun Jun 23 03:14:45 2024 +0300 No need to endian convert build twice. commit cd634e9 Author: ratkosrb <[email protected]> Date: Sun Jun 23 03:11:13 2024 +0300 Fix reconnecting to realmd. commit 54fa00e Author: ratkosrb <[email protected]> Date: Sun Jun 23 02:46:11 2024 +0300 Fix crash on login. commit 29dc202 Author: ratkosrb <[email protected]> Date: Sun Jun 23 02:40:21 2024 +0300 Remove commented out stuff. commit 2846aeb Author: ratkosrb <[email protected]> Date: Sun Jun 23 02:38:41 2024 +0300 Fix realmd build. commit 5fb737a Author: _BLU <[email protected]> Date: Sun Jun 23 01:32:34 2024 +0200 Use modern networking sockets for low CPU usage and high performant code (vmangos#2680) * Make m_ServiceStatus volatile * Add type size to eAuthCmd and AuthResult * NativeIO: Realmd: First impl of `LogonChallenge` just like cMangos Currently only windows support. Using legacy `::select` function. Must use IOCTL in the future. * Add "Network" to log type string * Make m_ServiceStatus volatile (again) * SRP6 add const to parameter * Database add DbExecMode to force sync statements (prevent race condition) * Reimplement most AuthSocket handers async (like cMangos) * Use high performance winsock2 async sockets The implementation is inspired by Boost::ASIO and Nginx * Async networking: Split declaration and definition inside header * Async networking: Move implementation into own folder commit 9ab623f Merge: 55ffaec a1cd3ab Author: ratkosrb <[email protected]> Date: Sat Jun 22 23:39:02 2024 +0300 Merge pull request vmangos#2683 from vmangos/development Update native branch commit 55ffaec Author: ratkosrb <[email protected]> Date: Sat Jun 22 22:03:58 2024 +0300 Make IsLineEndChar static. commit c426fd7 Author: ratkosrb <[email protected]> Date: Sat Jun 22 21:50:01 2024 +0300 Reimplement config loading without using ACE. commit 764c98b Author: ratkosrb <[email protected]> Date: Sun Jun 16 19:15:02 2024 +0300 Realmd: Native windows implementation of BufferedSocket.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🍰 Pullrequest
Add Linux support to the Native IO branch