Bug Fix
- Fixed durable handle reconnect logic (src/pike/io.py, src/pike/model.py): Added explicit check for ctx is None to prevent v1 durable handle reconnects from being sent instead of v2 reconnects.
- Fixed durable handle reconnect flags initialization: Ensure flags are always properly set from durable.durable_flags, with optional persistent flag override for negative testing
New Tests
- DH timer expiration test (src/pike/test/durable.py): New test case for durable handles v2 that validates timerexpiration behavior.
- Persistent handle validation tests (src/pike/test/persistent.py): Additional negative test cases for MS SMB spec 3.3.5.9.12, testing incorrect isPersistent flag scenarios.
Test Improvements
- Updated DH timer test: Modified to use the actual durable timeout value returned from the server rather than hardcoding the timeout value, making the test more flexible and accurate.
GitHub Actions CI Fixes
- Skip test on Samba: The test_durable_reconnect_v2_fails test validates a SHOULD requirement from MS-SMB2 spec 3.3.5.9.12 that Samba does not enforce, so it's skipped in CI