Commit Graph

527 Commits

Author SHA1 Message Date
22486b90e6 [*] NT: WaitMultipleLoopSourcesEx wasn't bypassing the wait cap 2023-12-18 07:35:24 +00:00
207b8f6f46 [+] Copyable IOHandles 2023-12-18 05:41:27 +00:00
9b99e6e7c7 [*] Harden IPC pipes 2023-12-16 21:08:46 +00:00
1652231fd4 [*] Refactor AuProcess (paths) 2023-12-13 18:11:35 +00:00
98d79a5aa3 [+] RuntimeWaitForSecondaryTick() 2023-12-13 04:43:29 +00:00
e7d8e5b010 [+] NT: Let Grug handle io handle closures 2023-12-13 02:46:06 +00:00
a3046658fe [*] Minor update to WaitMultipleLoopSourcesEx 2023-12-11 23:34:31 +00:00
073d77a17b [*] Harden IO processor item usage after parent processor release 2023-12-11 20:18:36 +00:00
5541c25050 [+] AuIO::Loop::WaitMultipleLoopSourcesEx 2023-12-10 22:25:03 +00:00
fc6902d231 [*] Refactor INetAdapter 2023-12-10 15:42:11 +00:00
76d3759295 [+] IProtocolPiece::GetPreviousPiece()
[+] IProtocolPiece::ReallocateSourceBuffer()
[*] IProtocolPiece::GetInputWriter()
[*] IProtocolPiece::GetNextWriter()
2023-12-10 14:06:10 +00:00
fe529b31da [*] ITimer comment and win32 patch 2023-12-09 12:25:46 +00:00
783bed0d85 [*] LSLocalEvent: finish optimized impl (?) 2023-12-09 11:10:02 +00:00
ae70feb29b [*] Removed static IAT lookups to WS2_32.dll 2023-12-07 11:13:32 +00:00
8944d8bd16 [+] IAsyncTimer
[+] IAsyncTimerCallback
[+] ETickType.hpp
[+] EWorkPriority.hpp
[+] static IThreadPool::GetSelfIOProcessor()
[+] static IThreadPool::GetSelfIONetInterface()
[+] static IThreadPool::GetSelfIONetWorker()
[-] [Source/Async/]AsyncRunnable.hpp
[*] Begin encapsulating WorkerPId_t
[*] WorkerPId_t no longer take strong pointers to prevent leaks given that these identifiers are copied and kept alive everywhere
2023-12-07 09:20:23 +00:00
b35b290afd [+] File System devices API
[+] AuFS::EFSDeviceType
[+] AuFS::EFSBusType
[+] AuFS::LogicalUsedResponse
[+] AuFS::LogicalOffsetResponse
[+] AuFS::FSLogicalPartition
[+] AuFS::FSDevice
[+] AuFS::GetRootFromPath
[+] AuFS::GetDeviceFromPath
[+] AuFS::GetDeviceFromRoot
[+] AuFS::GetLogicalMountFromPath
[+] AuFS::TrySimplifyDevicePath
[+] AuFS::GetPerformanceBufferSizeFromPath
[+] AuFS::GetPhysicalSectorSizeFromPath
[+] AuFS::GetLogicalSectorSizeFromPath
[+] AuFS::GetLogicalUsedFromPath
[+] AuFS::GetLogicalUsedFromLogicalDevice
[+] AuFS::GetDeviceSizeInBytes
[+] AuFS::GetDeviceModel
[+] AuFS::GetFSDeviceByFilePath
[+] AuFS::GetFSDeviceByDevice
[+] AuFS::GetFSDevices
[+] AuFS::GetFSDevicesCachedUnsafe
[+] AuFS::ResetDeviceCache
[+] FSPlatformDevices.cpp
[+] FSPlatformDevices.NT.cpp
(holding back Linux)
2023-12-05 18:44:38 +00:00
e9651eead3 [*] Linux build regressons 2023-12-04 21:13:25 +00:00
e60e308087 [*] Minor WaitMultipleLoopSources optimization 2023-12-03 07:40:20 +00:00
baf31e32d0 [+] IFileStream::ToStreamReader()
[+] IFileStreamToStreamWriter()
[+] IProcess::ToStreamReader(EStandardHandle stream)
[+] IProcess::ToStreamWriter()
2023-12-02 18:05:49 +00:00
9fea60a9ed [*] 64ce35dd cont 2023-12-02 11:06:49 +00:00
64ce35dd87 [*] Cont work on WaitMultipleLoopSources's yield time 2023-12-02 03:39:41 +00:00
aadca8058e [*] Net: Globalize adapter cache 2023-12-01 15:02:27 +00:00
e0f74d6160 [+] ISocketServer::GetServerRecvStats()
[+] ISocketServer::GetServerSendStats()
2023-12-01 14:49:30 +00:00
81871ed0b8 [+] INetAdapter::GetTransmitBytesPerSec()
[+] INetAdapter::GetReceiveBytesPerSec()
2023-12-01 13:26:44 +00:00
eceb037e70 [*] WaitMultipleLoopSources optimizations cont 2023-12-01 12:31:09 +00:00
3f7f2639c4 [*] AuLoop: Fixed missing logic in a fast path 2023-12-01 12:16:47 +00:00
cbcd55ce8e [+] AuNet::ENetworkAdapterType
[+] AuNet::ENetworkAdapterStatus
[+] INetAdapter::ToNetworkType()
[+] INetAdapter::ToStatus()
2023-12-01 12:13:47 +00:00
507f418b81 [*] Attempt to optimize AuLoop::WaitMultipleLoopSources 2023-12-01 11:20:40 +00:00
b0a7417d6f [*] Local loopsources werent calling the parents OnTrigger 2023-12-01 11:02:15 +00:00
f05cafbff7 [*] Win32 loopqueue optimization 2023-12-01 10:36:47 +00:00
049de14090 [*] Ooops: acd8f6cf 2023-12-01 07:04:04 +00:00
c32022a8e4 [*] eb1ec8b7 (W32oW64 awareness) cont: WinXP regression 2023-12-01 06:20:39 +00:00
acd8f6cf0b [*] Win32: fast move directory 2023-12-01 06:14:03 +00:00
eb1ec8b763 [*] W32oW64 awareness 2023-12-01 02:21:58 +00:00
5ec28735ed [*] Improved AuProtocolStack API 2023-11-30 09:40:02 +00:00
52b49986f3 [+] ISocketServer::GetSessionCount 2023-11-30 02:40:30 +00:00
74b1e560bb [*] I needed 'eeep (amend previous two commits) 2023-11-29 23:38:03 +00:00
42beaeabf5 [*] AuFS::MoveDirectory -> Try remove dirs afterwards (should only succeed if empty. failure is ignored and reported to CopyDirResult) 2023-11-29 14:04:57 +00:00
dcf94a8b23 [+] (dummy!) ISocketServerLimits.hpp
[+] (dummy!) ISocketChannelLimits.hpp
[+] ISocketChannel::GetChannelLimits
[+] ISocketBase::GetLockedWorkerThread
[+] ISocket::GetSocketServer
2023-11-29 13:55:01 +00:00
9b74a623af [*] UNIX: Use O_EXCL if available
[*] UNIX: Try to open readable dirs
2023-11-11 13:32:31 +00:00
dcb27645a1 [*] bug: drop limitation in io processor
[*] attempting to mitigate freeze on remote start watch
2023-11-05 21:20:16 +00:00
01824d6589 [*] Caught Windows XP network iface regression 2023-10-30 15:42:15 +00:00
087bac4085 [+] AuByteBuffer::flagNoRealloc
[*] Fix IO regression / Critical Bug / Leak and stupid double free
2023-10-29 20:36:11 +00:00
59b30e47c0 [*] yea 2023-10-29 11:24:00 +00:00
54e8cf01c5 [*] clean up: I forgot these were a thing 2023-10-29 11:20:32 +00:00
17ca7a6bef [*] Added SMT yield down these paths 2023-10-26 17:25:40 +01:00
ec8f3b3f23 [+] INetAdapter::ToMacAddress
[+] INetAdapter::HasDHCP
[+] INetAdapter::GetMTU
2023-10-24 19:12:47 +01:00
4ce49941ff [+] SysCheckNotNullMemory
[+] SysCheckNotNull
[+] SysCheckRetExpNotNull
[+] SysCheckRetExpNotNullMemory
2023-10-24 17:43:00 +01:00
69188d8c1e [+] ICompressionStream::ToStreamReader 2023-10-24 17:14:54 +01:00
cca3ff73cb [+] Protocol stack: IOConfig::uProtocolStackDefaultBufferSize 2023-10-24 12:02:05 +01:00
efd4da861a [*] Protocol stack: harden these/check for out of memory 2023-10-24 11:59:55 +01:00
4b38f205d1 [*] oops i didnt just break the build 2023-10-23 12:38:29 +01:00
dfe6b468ec [*] protocol stack: hardening of buffer flags 2023-10-23 11:30:25 +01:00
08c37454fe [+] ENetworkError::eBrokenByteBuffer 2023-10-23 11:21:10 +01:00
72fd8d018e [*] a7af61e9 cont: Potential Win32 loop queue bug fixes/improvements 2023-10-23 10:21:31 +01:00
1f685b635b [+] ISocketStats::GetUptimeNS
[*] Some socket stat cleanup+fixes
2023-10-23 09:17:46 +01:00
a7af61e9bf [*] Potential Win32 loop queue bug fixes/improvements 2023-10-22 22:12:55 +01:00
fb1920ccba [*] Ensure the other fast paths work properly 2023-10-22 06:17:32 +01:00
591c0fe48b [+] ILSSemaphore::AddMany 2023-10-22 06:11:39 +01:00
3d01d6cc8f [*] Improve LSLocalSemaphore 2023-10-21 18:57:48 +01:00
a1a2d482d7 [*] everything before semaphore cast 2023-10-21 16:09:45 +01:00
f9916e0f21 [*] More NT Loop Queue fixes 2023-10-21 14:22:12 +01:00
5233dc7ac8 [*] NT fix pre/finish sleep out of balance
[*] Fix some more wait alls
2023-10-21 13:22:11 +01:00
4d454287b8 [+] IPCPipeWriter
[+] IPCPipeReader
2023-10-21 10:43:28 +01:00
c79993af74 [*] Fixup the WaitMultipleLoopSources Any path 2023-10-21 09:33:04 +01:00
f185f13dc7 [+] LSLocalEvent 2023-10-21 09:04:48 +01:00
d910c71ad8 [*] This snucked in and i forgot to enable an nt specific fast path 2023-10-21 06:57:07 +01:00
18c023acae [*] Suppress spurious IO wakeups in WaitSingleBase 2023-10-21 06:19:51 +01:00
60bb1020ce [+] bool WaitMultipleLoopSources(const AuList<AuSPtr<Loop::ILoopSource>> &lsList,
AuList<AuSPtr<Loop::ILoopSource>> &signaled,
                                 bool bAny = true,
                                 AuOptionalEx<AuUInt32> uTimeoutMS = 0);
2023-10-21 06:10:33 +01:00
e366d058f6 [*] Fix busted timeout calc in the previous two commits 2023-10-21 05:41:29 +01:00
186444853d [+] LSLocalSemaphore (faster io semaphore) 2023-10-21 04:59:05 +01:00
1589079ead [+] LSLocalMutex (faster io mutex) 2023-10-21 04:51:51 +01:00
bd69ad6739 [+] IPCPipe::ToFileStream
[+] IPCPipe::ToStreamReader
[+] IPCPipe::ToStreamWriter
2023-10-20 16:33:18 +01:00
88094c48ae [*] Harden pipe reads under FS streams 2023-10-20 11:37:52 +01:00
871479172b [+] AuIPC::NewPipeEx(AuUInt32 uPipeLength) 2023-10-20 10:48:10 +01:00
c8f3305669 [*] Address a number of NT/x86_32 build regressions 2023-10-17 03:08:29 +01:00
6bb5dd39f2 [*] 358964ef cont: realloc event callbacks not fired 2023-10-16 04:03:19 +01:00
f53ea2a0a7 [*] 240685f7 cont: datagram channel missing [G/S]etNextFrameTargetLength 2023-10-16 03:20:28 +01:00
4742d2b9e7 [*] Missing iStartTickMS_ assignment 2023-10-16 02:18:12 +01:00
358964efb0 [+] IIOPipeEventListener::OnPipeFailureEvent 2023-10-16 01:56:28 +01:00
240685f7a6 [+] ISocketChannel::GetNextFrameTargetLength
[+] ISocketChannel::SetNextFrameTargetLength
2023-10-16 01:48:09 +01:00
cb60e77c63 [+] IIOPipeWork::SetNextFrameTargetLength
[+] IIOPipeWork::GetNextFrameTargetLength
[+] IIOPipeWork::GetNextFrameTargetLength
[+] IIOPipeWork::ReallocateLater
[+] IIOPipeWork::GetSuccessfulReallocations
[+] IIOPipeWork::GetFailedReallocations
[+] IIOPipeWork::DidLastReallocFail
(will save net and engine from doing its their current hacks)
2023-10-16 01:47:22 +01:00
be60d2c80d [+} NewMemoryViewReadAdapter
[+] NewMemoryViewLinearSeekableAdapter
[+] NewMemoryViewWriteAdapter
2023-10-13 21:08:57 +01:00
4a0eeefe1b [+] AuFS::MoveDirectory 2023-10-13 18:11:49 +01:00
c52c1c89f1 [+] AuFS::CopyDirectory 2023-10-13 18:04:47 +01:00
44afa1e3de [*] Disable this perf hack for now 2023-10-13 17:00:51 +01:00
7db0e2e688 [*] Drop all static references to User32.dll 2023-10-13 00:10:44 +01:00
ff77873ad6 [*] Further reduce win32 link time requirements (advanced api) 2023-10-11 02:13:49 +01:00
48c2175be9 [+] IProtocolStack::AppendInterceptorDynamicBuffer
[+] IProtocolStack::PrependInterceptorDynamicBuffer
[+] IProtocolStack::PrependSingleFrameProcessorDynamicBuffer
[+] IProtocolStack::AppendSingleFrameProcessorDynamicBuffer
[+] IProtocolStack::IsValid
[+] IProtocolPiece::ExchangeMaximumBufferLength
2023-10-07 20:25:43 +01:00
605862094e [*] Fix some old known Win32 loop queue issues under bullshit real world conditions
(recursion, any retries, etc)
2023-10-03 22:02:48 +01:00
ea241d86f3 [*] Resolve ambiguous namespace regression (new conflict between Aurora::IO::Utility and Aurora::Utility) 2023-09-28 15:42:09 +01:00
635f9e39e9 [*] Modernize IOBufferedProcessor (and moved to the io utility namespace)
[+] AuIO::Utility::NewBufferedProcessorEx
[+] AuByteBuffer::calcDifferenceBetweenHeadsUnsigned
[+] AuByteBuffer::calcDifferenceBetweenHeadsSigned
2023-09-28 12:38:01 +01:00
c5ab03cbfc [-] OS specific types derived from AFileHandle 2023-09-28 11:53:42 +01:00
5555e99488 [*] Move NewByteBufferPair, NewByteBufferPairEx, and NewRingByteBuffer to AuIO::Utility 2023-09-28 11:51:46 +01:00
374df4a92b [*] 3c8442d8 regressed DNS based connect
[*] improved an error message
2023-09-23 20:36:28 +01:00
3c8442d8ce [+] Added NetSocketConnectBase
[*] ded60591 cont
2023-09-23 19:33:08 +01:00
ded605910f [*] Refactor AuNet::NetSocketConnect 2023-09-23 17:10:00 +01:00
7e9bfd8215 [*] Move/refactor AuIO adapters to Aurora::IO::Adapters 2023-09-23 16:40:13 +01:00
345cf608b3 [*] Linux connect by hostname regression/first pass? 2023-09-23 09:25:18 +01:00
c05fabc633 [*] Linux fixes 2023-09-23 08:15:50 +01:00
828430889c [+] IIOHandle::SectionLock
[+] IIOHandle::SectionUnlock
[*] FileSteam.NT.cpp clean up
2023-09-23 04:48:48 +01:00
994fcb5010 [*/+] Added/Moved code to AuProtocolStackSpecialWriter[.cpp]
[+] Further mutex guarantees under protocol stacks (hardening)
2023-09-21 21:18:59 +01:00
7da39d2022 [+] Aurora::IO::Protocol::NewProtocolStackFromDescription
[+] Aurora::IO::Protocol::UtilityWrapStreamReaderWithInterceptors
[+] Aurora::IO::Protocol::EProtocolStackCreateType
[+] Aurora::IO::Protocol::ProtocolStackByBufferedAdhoc
[+] Aurora::IO::Protocol::ProtocolStackByBuffered
[+] Aurora::IO::Protocol::ProtocolStackByPipe
[+] Aurora::IO::Protocol::ProtocolStackDescription
2023-09-21 08:02:02 +01:00
7bc533b710 [*] More POSIX bugs 2023-09-20 21:13:43 +01:00
4fa053ce97 [*] Harden POSIX FS Remove 2023-09-20 20:17:42 +01:00
259572724c [+] Fetch non-desktop class NT hostnames 2023-09-20 18:33:27 +01:00
5ef6e0cd23 [*] Fix IO Processor regression, circa WorkerPId_t behaviour change.
[*] Fix minor Linux SOCK_CLOEXEC issue
2023-09-18 19:04:09 +01:00
5d12f1a203 [*] Resolve IO regressions (4. Hello FS) (Mostly UNIX) 2023-09-18 07:11:34 +01:00
11ef18cbf0 [*] moar regressions :( 2023-09-18 06:09:29 +01:00
09b044ab2e [*] amend 9be76adb23 2023-09-17 22:21:24 +01:00
9be76adb23 [*] Further drop required symbols from OLE (COM) and SHELL32 (NT Shell)
[*] Optimize NT file and URI opener
2023-09-17 21:33:14 +01:00
a96788623f [*] Fix linux build warning and not quite complete linux ipc fix a4f6db7ec9 2023-09-17 18:36:20 +01:00
84c0e94282 [*] 523abaf0 cont: not so sure on the UNIX-like variant either 2023-09-17 14:03:03 +01:00
523abaf0bb [*] security: bIsIntranetTrusted not properly respected 2023-09-17 13:57:58 +01:00
0de153dfe3 [*] Aggressively harden win32 loops against out of memory events 2023-09-17 04:08:01 +01:00
ab6f00f094 [*] NT build regression 2023-09-17 00:35:23 +01:00
a4f6db7ec9 [*] Linux IPC reliability: finally got around to closing #48 2023-09-16 23:30:10 +01:00
f2339bb0a9 [+] AuIO::Loop::NewLSIOHandle(const AuSPtr<IIOHandle> &pHandle)
[-] Rip 2021-10-1 LSCondVar
2023-09-16 22:59:26 +01:00
9a294cf955 [*] (Mostly Linux) Harden FS apis 2023-09-16 01:20:28 +01:00
ac86fd481b [*] caught runtime regressions 2023-09-15 18:21:47 +01:00
d0fb19f87e [*] Global build regressions caused by addd4080 2023-09-15 18:09:34 +01:00
a80524d573 [-] AuProcesses::EStandardHandle 2023-09-15 15:55:46 +01:00
d166a00d81 [*] Linux: begin catching up AuProcesses to NT 2023-09-15 00:11:14 +01:00
fe8ef28930 [*] tism 2023-09-13 04:04:45 +01:00
f177b67e1f [*] GetLastError() == ERROR_FILE_EXISTS fast path 2023-09-13 03:48:10 +01:00
b4d5f4c127 [+] AuIO::IO::EStandardStream
[+] AuIO::IOHandle::InitFromStreamEnum(...)
2023-09-13 02:50:59 +01:00
d0538ea4de [*] NT/Win32-like: Use Win32Open as opposed to CreateFileW 2023-09-13 02:27:18 +01:00
a8696c0b7e [*] ...no 2023-09-13 00:02:26 +01:00
6181d97c3c [*] Improve internal path consistency
[*] Removes some unnecessary panics
2023-09-12 20:49:02 +01:00
b46390f83a [*] Remove explicit Windows version check assuming certain file systems and platforms can be stupid 2023-09-12 01:35:54 +01:00
6062a16d9c [*] Prevent overflow into UNC root namespace of hostnames and volumes via path or filename overflow 2023-09-12 00:52:16 +01:00
92593be412 [*] FS path mitigation: begin to handle >= MAX_PATHs by enforcing UNC \\?\ prefixes across every single Win32/NT api we hit (if relevant. im sure some long paths may still break things.) 2023-09-10 23:49:47 +01:00
5107911ba5 [*] Exploit mitigation - file protocols can be valid paths 2023-09-10 16:30:59 +01:00
51dcd190b3 [*] Missing SysPushErrorXXXs 2023-09-07 23:20:26 +01:00
d112179c83 [*] May as well make this in line with the others 2023-09-04 16:45:42 +01:00
bcf3fabd83 [*] FS Resources (GetWritableAppdata): fail over to this path instead of failing 2023-09-04 16:32:28 +01:00
5b9e780fa0 [*] Fix some obvious recent regressions in NT loop queue 2023-09-02 19:36:12 +01:00
73a52552f7 [*] [to revert?] Attempt to mitigate message spam wakeups on older systems
Also forces higher latency on Windows 7
2023-09-02 17:56:15 +01:00
cc6e0358fa [*] NT: further optimizations to solve CPU usage regressions 2023-09-02 16:11:06 +01:00
85102ec7ce [*] Minor NT LoopQueue fixes/improvements 2023-09-02 04:56:41 +01:00
47cec914cb [*] Refactor FIOConfig::ddefaultBrand -> (AuOptional) FIOConfig::optDefaultBrand
[+] FIOConfig::bIsIntranetTrusted
2023-08-29 21:10:53 +01:00
b5a452a43d [+] AuFS::IsFileBlocked
[+] AuFS::IsFileTrusted
2023-08-29 20:30:09 +01:00
9fcc62fb92 [*] Always check adapter info length 2023-08-29 16:31:39 +01:00
3503d0ec68 [+] Added Linux signal configuration and separate LinuxConfig type (LinuxConfig)
[*] Fix Linux regressions in previous NT commit
2023-08-29 03:11:28 +01:00
ac0981ac1b [+] bool IsHandleFile(AuUInt uHandle)
[+] bool IsHandleTTY(AuUInt uHandle)
[+] bool IsHandlePipe(AuUInt uHandle)
...as opposed to forced IOHandle usage
[+] AuIOHandle
[+] AuSharedIOHandle
2023-08-29 01:37:25 +01:00
b2e1df8f72 [*] Annoying Linux checks 2023-08-27 21:35:40 +01:00
4674f45dd3 [*] Support for further Win32 API degradation / historical OSes / emulators 2023-08-27 17:43:29 +01:00
5cf7533eab [*] Linux and UNIX QOL 2023-08-27 12:42:10 +01:00
cf363b9f5b [*] Ensure this never throws 2023-08-22 09:45:32 +01:00
e6bf022bef [*] Atomic SOCK_CLOEXEC-awareness on some UNIX systems 2023-08-19 15:06:59 +01:00