Commit Graph
16 Commits
Author SHA1 Message Date
cozis 99b6c9dfcc Move files from lib/ into src/ and refactor the random client 2026-02-21 12:21:32 +01:00
cozis b64517c20e Full rewrite with VSR support 2026-02-20 16:55:29 +01:00
cozis a3b29d6652 Fix formatting of #includes 2026-01-28 12:36:48 +01:00
cozis 31708d22cc Add feature testing build 2026-01-24 17:29:56 +01:00
cozis c10493881b Add Quakey 2026-01-16 14:45:09 +01:00
cozis dabd337bb8 Use mock versions of lseek and SetFilePointer in file_system.c 2025-11-17 22:49:41 +01:00
Claude 52bc1ff450 Complete WAL implementation with file rotation
This commit completes the Write-Ahead Log (WAL) implementation for the
metadata server, including all missing functionality and error fixes:

File System Changes (src/file_system.c):
- Implemented file_set_offset() using lseek (Linux) and SetFilePointer (Windows)
- Implemented file_get_offset() to get current file position

WAL Header Changes (src/wal.h):
- Added file_tree pointer to WAL structure for snapshot serialization
- Added file_path to WAL structure for rotation operations

WAL Implementation (src/wal.c):
- Fixed handle assignment bug in wal_open (was using wal->handle before assignment)
- Fixed missing return statement in append_begin()
- Implemented serialize_callback for writing file tree snapshots to WAL
- Implemented deserialize_callback for reading file tree snapshots from WAL
- Implemented next_entry() to read WAL entries from file during recovery
- Implemented wal_append_write() to write file modifications to WAL
- Implemented swap_file() for complete WAL file rotation:
  * Creates temporary file with new snapshot
  * Writes WAL header and serialized file tree
  * Atomically replaces old WAL file
  * Resets entry counter for new rotation cycle
- Added WAL file initialization for newly created files
- Added helper functions: read_exact, read_u8, read_u16, read_u32, read_u64, write_u32
- Fixed typo in comment (Not -> Now)

The WAL now supports:
- Full crash recovery by replaying logged operations
- Automatic file rotation when entry limit is reached
- Atomic file replacement to ensure durability
- Proper file locking throughout rotation process
2025-11-17 21:02:19 +00:00
cozis fb28e94a83 Continued work on the WAL 2025-11-17 21:52:44 +01:00
cozis bbae5fdb7f Fix compilation errors 2025-11-14 21:06:38 +01:00
Claude 6c2ea4bce9 Fix DirectoryScanner implementation bugs
Fixed several bugs in the DirectoryScanner implementation:

Windows fixes:
- Fixed snprintf call missing buffer size parameter
- Fixed FindFirstFileA to use pattern (with wildcard) instead of path
- Changed sys_GetLastError() to GetLastError()
- Added scanner->first = false after using first result
- Removed TODO comment from cFileName usage (it's the correct field)

Linux fixes:
- Fixed typo: sys_reddir → sys_readdir
- Added missing 'done' field to DirectoryScanner struct
- Initialize scanner->done = false on successful opendir
- Fixed return value when scanner->done (should return 1, not -1)
2025-11-13 00:45:51 +00:00
cozis 83c2ccb2ca Implement DirectoryScanner object 2025-11-13 01:35:15 +01:00
cozis 5f018c18b4 Progress 2025-11-09 16:49:15 +01:00
cozis 8b284f5752 Progress 2025-11-02 04:37:20 +01:00
cozis eb93541c84 Test framework cleanup 2025-11-01 22:44:04 +01:00
cozis 174f37c6c0 Continue work on DST framework 2025-10-29 21:46:17 +01:00
cozis c5a21608d7 Split project over multiple files 2025-10-28 17:24:25 +01:00