Commit Graph

156 Commits

Author SHA1 Message Date
7100c807c8 [*] Unify FS write utilities 2023-08-11 06:21:42 +01:00
424cccd00a [+] IAsyncTransaction::HasCompleted 2023-08-09 00:14:36 +01:00
df6f29bf38 [+] IAsyncTransaction::SetBaseOffset 2023-08-09 00:02:35 +01:00
3ff5d8a74e [*] NT FSStream: Added more push debug errors 2023-07-29 10:13:25 +01:00
c05a859638 [*] nt: fix new blocking over async paths (eos handling) 2023-07-29 10:07:27 +01:00
a79caa707f [*] autism 2023-07-29 10:00:16 +01:00
a8daf3ff4f [*] Minor failover fix (Nt delete on close) 2023-07-29 09:48:18 +01:00
9ce4e08d36 [+] IFileStream::GetHandle() 2023-07-29 09:13:43 +01:00
7e2aa2de3d [+] AuIO::IIOHandle 2023-07-29 08:02:47 +01:00
0cf38d5fcd [*] Fix: IPC test fails on Windows 7 2023-07-28 17:54:30 +01:00
7fa0a52e2c [*] Fix FS Watcher under Windows XP -> Windows 7 2023-07-28 14:20:45 +01:00
d45dc977d8 [*] NT: Further reduce Win32 link-time requirements cont (1948dd0c) 2023-07-24 12:48:42 +01:00
1948dd0c1a [*] Further reduce Win32 link-time requirements 2023-07-24 07:17:08 +01:00
4d1201a4c1 [+] EStreamForward::eNewConsoleWindow
[*] NT: Improve the selection of flags used when spawning processes
[*] NT: Caught regression in NTs FS/generic transaction IsSignaled
2023-07-06 13:44:32 +01:00
ca2c0462ab [*] Continue to refactor allocations of synchronization primitive away
[*] NT: Fix missing CoTaskMemFree leak on startup
[*] Fix ConsoleStd restart bug
2023-06-28 10:33:12 +01:00
1fa433540b [*] Experimental lower-latency IO pipes
[*] revert win32 net tx hardening - do not use the Reset function to null pSocket
[*] fix a bytebuffer circular buffer path
[*] update how TLS protocol stacks can snap the stack
2023-05-11 16:05:00 +01:00
2fdf730263 [*] Stats now return nanoseconds timestamps 2023-05-03 08:57:21 +01:00
30b0c2e0ba [*] Preemptive GetOverlappedResult fast-paths under WaitMultiple2 that rely on the alertable yield under next read/write cannot be trusted if the read count is zero.
Direct IO-specific quirk?
Windows 7 specific quirk?
Direct IO under Win7 specific quirk?
idk, but this fixes it
2023-04-26 07:25:45 +01:00
00129255f8 [*] changed this to be a soft-failure 2023-04-19 04:03:49 +01:00
53a29a6c13 [*] flag consistency 2023-04-16 23:41:06 +01:00
4cac821fbb [+] Added critical log level
[*] Fix win32 DELETE bug
2023-04-16 23:38:31 +01:00
a550a6f58f [*] Harden normalize path 2023-03-05 09:16:09 +00:00
f43251c8fc [+] AuNet::ISocketChannelEventListener
[+] AuFS::UpdateTimes
[+] AuFS::UpdateFileTimes
[+] AuFS::CompressEx
[*] AuFS::Compress now rejects files that look to be already compressed
[+] AuFS::DecompressEx
[+] AuFS::Create
[+] AuFS::WriteNewFile
[+] AuFS::WriteNewString
[+] AuFs::FileAttrsList
[+] AuFs::FileAttrsGet
[+] AuFs::FileAttrsSet
[+] DirectoryLogger::uMaxLogsOrZeroBeforeCompress
[+] ISocketChannel.AddEventListener
[+] ISocketChannel.AddEventListener
[+] DirectoryLogger.uMaxLogsOrZeroBeforeCompress
[*] Fix UNIX regression
[*] Fix up stream socket channel realloc IPC
[*] Fix shutdown regression in pretty much everything thanks to 8ff81df1's dumbass fix
    (fixes fence regression on shutdown)
[*] Fix DirDeleterEx formatting of reported failed paths
[*] Fix up file not truncated if already exists bugs. Extended and alternative apis added.
[*] Fix ICompressionStream::ReadEx returning the wrong read value
[+] Legacy compression API can now self-correct once newer stream processor objects are added
2023-02-04 19:43:01 +00:00
2474566d80 [*] two hotfixes 2023-01-29 23:03:54 +00:00
04aca5fcf2 [+] Aurora::IO::Net::NetSocketConnectByHost
[+] Aurora::IO::FS::DirDeleterEx
[+] Aurora::IO::Compress
[+] Aurora::IO::Decompress
[*] Aurora::Memory::ByteBuffer zero-alloc fixes
[*] Aurora::Memory::ByteBuffer linear read of begin/end should return (`const AuUInt8 *`)'s
[*] Changed NT file CREATE flags
[*] Fix linux regression
[*] Update logger sink DirLogArchive
... [+] DirectoryLogger::uMaxLogsOrZeroBeforeDelete
... [+] DirectoryLogger::uMaxCumulativeFileSizeInMiBOrZeroBeforeDelete
... [+] DirectoryLogger::uMaxCumulativeFileSizeInMiBOrZeroBeforeCompress
... [+] DirectoryLogger::uMaxFileTimeInDeltaMSOrZeroBeforeCompress
... [+] DirectoryLogger::uMaxFileTimeInDeltaMSOrZeroBeforeDelete
[*] FIX: BufferedLineReader was taking the wrong end head
(prep) LZMACompressor
[*] Updated build-script for LZMA (when i can be bothered to impl it)
(prep) FSOverlappedUtilities
(prep) FSDefaultOverlappedWorkerThread | default worker pool / apc dispatcher / auasync dispatcher concept for higher level overlapped ops
(stub) [+] Aurora::IO::FS::OverlappedForceDelegatedIO
(stub) [+] Aurora::IO::FS::OverlappedCompress
(stub) [+] Aurora::IO::FS::OverlappedDecompress
(stub) [+] Aurora::IO::FS::OverlappedWrite
(stub) [+] Aurora::IO::FS::OverlappedRead
(stub) [+] Aurora::IO::FS::OverlappedStat
(stub) [+] Aurora::IO::FS::OverlappedCopy
(stub) [+] Aurora::IO::FS::OverlappedRelink
(stub) [+] Aurora::IO::FS::OverlappedTrustFile
(stub) [+] Aurora::IO::FS::OverlappedBlockFile
(stub) [+] Aurora::IO::FS::OverlappedUnblockFile
(stub) [+] Aurora::IO::FS::OverlappedDelete
2023-01-26 21:43:19 +00:00
bf8c1eb8c7 [+] AuFS::TrustFile
[+] AuFS::UnblockFile
[+] AuFS::TrustFile
[*] Fixup UNIX open logic a bit

(amended. i did not mess up octals >:( )
2023-01-25 16:50:53 +00:00
d4dfe22c6c [+] Always expand directory tree when attempting to copy or move files, just like every other FIO create operation.
[*] ~~Fix improper yield BlockUntilComplete on NewFence~~, kind of, not really. Wasn't really a bug. Might've introduced more overhead. Might revert.
2023-01-23 21:18:58 +00:00
a1e77a471b [*] Dumb path bug 2022-12-21 14:27:26 +00:00
9ce314a838 [*] Linux DirMks shall copy the stat of the parent dir before assuming 775.
[*] Added missing null allocation checks under linux net adapter list
2022-12-17 15:37:46 +00:00
f0fcec0cb7 [+] _CLOEXEC on F-tier operating systems predating SMP and processes 2022-12-16 03:48:04 +00:00
766be57a46 [+] Linux build [again]
[+] ProcessSectionViewReserved.Unix.cpp
[*] Fix missing ::Flush() member on ViewWriter
2022-12-16 00:41:01 +00:00
c79a20c7fe [*] i hate object cache 2022-12-14 07:12:43 +00:00
bb9c383aee [+] ICompressionInterceptor::LimitPassthroughOnOverflow
[+] IOPipeRequest::uMinBytesToRead
[+] (secret api intended for unix users) AuIO::NewLSOSHandleEx
[*] Fix quirks when running Gtk under an io processor
...CtxYield shouldn't spin while work (improper breakout on remote update)
[*] EFileOpenMode::eWrite should assume O_CREAT semantics making eReadWrite somewhat redundant. OpenWrite + eWrite should reasonably work with file-appends. it should not mean force create + cucked GetLength().
2022-11-20 10:31:13 +00:00
033f7e2453 [+] Aurora::Crypto::X509::CertRequest
[+] Aurora::Crypto::X509::GenerateCertificate
[*] Fix lazily copied gen1 RSA code
[+] Aurora::Crypto::ECC::EECCCurve::eCurveSECP256R1
[+] Aurora::Crypto::ECC::EECCCurve::eCurveSECP256K1
[+] Aurora::Crypto::ECC::EECCCurve::eCurveSECP384R1
[+] Aurora::Crypto::ECC::EECCCurve::eCurveSECP521R1
[*] Unfuck ECC interop
[*] Tls pinning: use mbedtls_ssl_conf_verify for tls1.3 (when mbedtls is in a better state)
2022-11-18 21:03:11 +00:00
745b9f974a [+] ByteBuffer::WriteFromEx
[+] ByteBuffer::WriteFrom
[*] Fix known path resolution quirks and missing compression staged change
[+] ICompressionInterceptor::LimitHasHit
[+] ICompressionInterceptor::LimitReset
[+] ICompressionInterceptor::LimitSet
[+] ICompressionInterceptor::LimitGetIndex
2022-11-07 22:46:35 +00:00
07fd9f19f8 [+] NewProtocolStackFromPipe([...], bool bAutoTick)
[+] IOPipeRequestAIO::uStartOffset
[*] Fix Zstd frames being finicky
[*] Fix compression interceptor invalid weak reference to pipe that
[*] Fix WinFileStream::GetOffset using wrong enumeration
[*] Null ByteBuffer flags on init bc not all operators and constructors account for them
[will prevent bugs in the future]
2022-11-07 13:34:28 +00:00
d63571e4b5 [+] AuCompression::CompressionInterceptor
[+] AuCrypto::CBC::CBCContext
[+] AuFS::ReadDirRecursive
[+] AuFS::DirDeleter
[+] AuCrypto::PBKDF2
[+] AuCrypto::AES::CBCEncrypt
[+] AuCrypto::AES::CBCDecrypt
[+] AuCrypto::TDES::CBCEncrypt
[+] AuCrypto::TDES::CBCDecrypt
[+] Optimize read write locks
[*] Added `ContextFlags = CONTEXT_ALL` to Win32 PlatformWalkCallStack
2022-11-06 13:23:22 +00:00
1de0bdb4e7 [*] NT ReadFile: replace GENERIC_READ, FILE_SHARE_READ with GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE
[*] ByteBuffer::IsValid() will now return true if there is no underlying buffer so long as the object is marked with the dynamic scaling flag (no contents isnt an invalid state; alloc failure on construct and ad-hoc failure is. latterly, specify the write flag on failure in the ByteBuffer::Write method.) the alloc error can be safely unwound by state raii helpers bc realloc and frens will not free or dirty the state. write-fail-aware may roll back the write head, like how readers can roll back the read head if the stream is incomplete.
2022-09-23 00:59:08 +01:00
050e938f0c [*] transition some of the old vector based AuByteBuffer APIs to be stream aware
[*] fix: runnersRunning was uninitialized
[*] fix: unimplemented path in GetOrAllocateLinearWriteable
2022-09-19 06:42:39 +01:00
8844e8fe64 [+] AuCrypto::BCrypt
> GetForcedMinRounds
> GenSalt
> HashPW
> HashPWEx
> CheckPassword
> CheckPasswordEx
[*] Refactor AuCompression APIs
[*] Clean up AuTryConstructs
[+] Internal compression API for compression based interceptors
[+] Root-level input stream arg check for all compression apis (harden)
[*] Clean up AuCompression code
[+] Solar Designer / OpenWall blowfish crypt
[*] BlowCrypt: accept length input parameter
[*] Split locale into 2 source files
[-] Ugly comment from Open.Win32.cpp. TODO: Readd later. Might warn on empty string bc it makes sense given, "." and "/" normalizes to nothing, and memory pre-idc-if-drops are dropped siliently.
2022-09-15 20:48:50 +01:00
747988e85c [*] Protocol stacks werent allocating ring buffers
[*] Unmerged Linux async changes
2022-08-29 00:39:12 +01:00
67905a4192 [+] Network + Protocol + TLS - Initial Commit
=============================================================================
Network ]====================================================================
=============================================================================

[+] Added (very) early Aurora::IO::Net implementation
[+] AuNet::EHostnameType
[+] AuNet::EIPProtocol
[+] AuNet::ENetworkError
[+] AuNet::ETransportProtocol
[+] AuNet::INetInterface
[+] AuNet::INetSrvDatagram
[+] AuNet::INetSrvResolve
[+] AuNet::INetSrvSockets
[+] AuNet::INetSrvWorkers
[+] AuNet::INetWorker
[+] AuNet::IPAddress
[+] AuNet::IResolver
[+] AuNet::ISocket
[+] AuNet::IResolver
[+] AuNet::ISocketBase
[+] AuNet::ISocketChannel
[+] AuNet::ISocketDriver
[+] AuNet::ISocketDriverFactory
[+] AuNet::ISocketServer
[+] AuNet::ISocketServerDriver
[+] AuNet::NetEndpoint
[+] AuNet::NetError
[+] AuNet::NetHostname
(+implementation)

=============================================================================
Protocol ]===================================================================
=============================================================================

[+] IProtocolInterceptor
[+] IProtocolInterceptorEx
[+] IProtocolStack
(+implementation)

=============================================================================
TLS ]========================================================================
=============================================================================

[+] ITLSContext
[+] TLSProtocolRecv
[+] TLSProtocolSend
(+implementation)

=============================================================================
IO Bug Fixes ]===============================================================
=============================================================================

[*] IOProcessor::SubmitIOWorkItem should signal the CvEvent, forcing at least once future tick (wont optimize with if in tick & not yet dispatched work items)
[*] Split IOPipeWork in into IOPipeProcessor header
[+] IOPipeWork::GetBuffer (internal reallocation)
[*] Harden against IAsyncTransactions without a loop source
[*] Missing null `if (processor->listener)` in IOProcessor
[*] Solved some soft-lock conditions under Linux's LoopQueue (added deferred commits)
[*] Quick hack: IOProcessor::HasItems() should OR the early can-tick check function.

=============================================================================
Other ]======================================================================
=============================================================================

[+] Linux: LSSignalCatcher
[+] `static void AuResetMember(Aurora::Memory::ByteBuffer &ref)` for AuROXTL
[*] Attempt to enforce a normalization and don't overwrite-readptr-under-istreamwriters policy in ByteBuffer_ReadWrite (circular buffers)
[*] Bad ECC ctors

=============================================================================
Known issues ]===============================================================
=============================================================================

> Linux net is nowhere near done
> UDP socket emulation layer isn't implemented
> Ciphersuite API is a stub
> Private key API is a stub
> ...therefore no TLS servers
> Missing thread safety precautions under net
> Net implementation is still beri early
2022-08-28 20:02:06 +01:00
b6b4ef5dd1 [*] Linux: bDirectIO wasn't enabling O_DIRECT (dumb)
[*] Fixed build errors post refactor
[*] Don't create an epoll for a read-poll, reuse fd
[+] AuByteBuffer:Allocate(AuUInt length, AuUInt alignment)
[*] NT+Linux: Ensure IO buffers are aligned to AuHwInfo::GetPageSize()
2022-08-21 04:38:49 +01:00
1341f805b0 [*] Lite clean up/Refactor 2022-08-20 07:53:48 +01:00
42b364840e [*] Cleanup Async.NT.cpp
[*] Fix bug in IOProcessor where work items were not enough to cont execution in a loop checking ::HasItems
[+] PromiseCallbackFunctional constructor with one functor arg
2022-08-18 17:19:32 +01:00
eda8d4255d [+] IProcessSectionMapView
[+] IProcessSectionView (downgraded bc NT)
2022-08-10 10:50:49 +01:00
64cb7404ba [+] Near 1:1 Linux IPC Pipe compared to the NT equivalent (~= CreateNamedPipeA(nMaxInstances=1, dwOpenMode=PIPE_ACCESS_DUPLEX, dwPipeMode=PIPE_TYPE_BYTE))
[+] Ability to bypass blocking limitation of certain io_submit reads, if the blocking subsystem is a pollable stream (ie: a pipe).
[*] Fixed major Linux bug where LoopQueue items weren't being submitted, if no dequeues were in the same tick
[*] Fix various Linux pipe related bugs
[*] Fix futex bug where the callback was nulled on server-release
2022-08-09 07:48:29 +01:00
13480a0473 [*] NT bug fix: pipe breakages were occurring as a non-block instant readfileex operation, and didn't simulate an async read 0 success.
[*] IOProcessor's stop method now returns true on success instea of true on delegated stop
2022-08-08 16:32:45 +01:00
21902a5d5b [+] AuParse::[Stringify/Parse][U/S]Int[16] class of parse APIs
[*] Optimize UNIX IPC ABI: Handle String encodes an array of U16s to optimize space. Could still be better.
2022-08-04 14:08:12 +01:00
e4e0af2f1d [*] Reset stream out variable sooner under filestream 2022-08-02 13:29:01 +01:00