gorilla/mux explicitly rejects capturing groups () in route regexps,
only non-capturing groups (?:) are allowed. The original regex was
missing the ? to make -dirty optional.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix versionMatcher regex: gorilla/mux does not support (?:) syntax,
and -dirty suffix was required instead of optional
- Replace unsafe.Pointer LUN casts with binary.LittleEndian.Uint64
in sbc.go, scsi.go, and target.go
- Implement graceful HTTP server shutdown with 5s timeout using
srv.Shutdown() instead of raw listener close
- Replace golang.org/x/net/context with standard library context
- Respect existing req.Cancel value in canceler to avoid overwriting
- Add early context cancellation check in Do() to fail fast
Based on review of PR #120 by @orzhang, with fixes applied.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The OneCommand test expects CDB usage data in REPORT_SUPPORTED_OPCODES
response which is not fully implemented yet.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
These tests cause gotgt to hang in CI when the command triggers
an unexpected write-path state. Keep ReadDefectData tests which
are read-only and confirmed working.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The UNMAP command was a no-op in all backing stores, causing unmapped
blocks to retain stale data instead of returning zeros per SCSI spec.
- Implement Unmap in FileBackingStore to zero out unmapped blocks
- Implement Unmap in IOUringBackingStore to zero out unmapped blocks
- Enable Unmap in RemBackingStore (was commented out)
- Change UnmapBlockDescriptor.TL from uint32 to uint64 to prevent
integer overflow when converting block count to byte length with
large block shifts
Fixes#119
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix nil pointer dereference in BindISCSISession when existSess is nil
- Fix reversed logic in SPCLuOffline/SPCLuOnline (Online flag was swapped)
- Use negotiated MaxXmitDataSegmentLength for response PDU segmentation (issue #41)
- Fix debug log incorrectly using Warn level in SBCGetLbaStatus
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>