Skip to content

Do not merge yet - My proof of concept for AOT compatible DiscUtils#54

Draft
devedse wants to merge 11 commits intoLTRData:LTRData.DiscUtils-initialfrom
devedse:LTRData.DiscUtils-initial
Draft

Do not merge yet - My proof of concept for AOT compatible DiscUtils#54
devedse wants to merge 11 commits intoLTRData:LTRData.DiscUtils-initialfrom
devedse:LTRData.DiscUtils-initial

Conversation

@devedse
Copy link
Copy Markdown

@devedse devedse commented Dec 18, 2025

Draft PR with some proof of concepts regarding AOT compatible disc utils

@devedse devedse marked this pull request as draft December 18, 2025 01:23
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be wrong in several ways. It needs to implement reading from other locations of the hive file outside of current bin object, so _buffer cannot be used to get all data. There are also a few errors in offset calculations, and I am also not sure whether the total length calculation is really reliable. I will try to find out how this can be resolved in some way.

devedse added 9 commits April 15, 2026 11:42
- Updated version to 0.17 in version.json
- Added new SourceGenerator project with FactoryGenerator
- Improved .gitignore to exclude additional build outputs
- Modified Directory.Build.props for versioning and compiler settings
- Registered new LogicalVolumeFactory and VirtualDiskTransport instances
- Enhanced logging in various classes for better traceability
- Created generate-packages.ps1 script for automated package generation
Modernize and refactor plugin/registration system for disk image and file system types:
- Bump version to 1.0.85
- Add AoT-friendly registration path for DiskImageBuilder
- Simplify and streamline FileSystemManager and VirtualDiskManager initialization
- Remove console logging and exception handling from factory discovery
- Make LogicalVolumeFactory internal
- Make VolumeManager registration internal and direct
- Add SetupCompleteAot for AoT environments
- General cleanup for improved startup and reliability
@devedse devedse force-pushed the LTRData.DiscUtils-initial branch from 277a7b4 to 5e3e244 Compare April 15, 2026 09:58
devedse added 2 commits April 15, 2026 11:59
…p to 1.0.104

During idle periods an iSCSI target can close the session due to the
DefaultTime2Retain/DefaultTime2Wait timeout expiring while no traffic
is flowing. This causes the next I/O to fail with a broken connection
rather than a clean retry.

Changes in Connection.cs:
- SemaphoreSlim (_streamSemaphore) serialises all PDU traffic so the
  keepalive timer and the main Send/SendAsync/Logout paths never
  interleave on the NetworkStream.
- Timer (_keepAliveTimer) fires every 10 s after login; skips ticks
  when a real command is in-flight.
- SendNopOut: ITT=0xFFFFFFFF / TTT=0xFFFFFFFF so no NOP-In response
  is expected (RFC 3720 §10.18).
- HandleNopIn: responds to target-initiated NOP-In (TTT!=0xFFFFFFFF)
  without advancing ExpectedStatusSequenceNumber (RFC 3720 §10.19).
- ReadPdu/ReadPduAsync: loop over consecutive NOP-In PDUs (max 16)
  before returning the next real response PDU.

Version bump: 1.0.103 -> 1.0.104
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants