Commit Graph
100 Commits
Author SHA1 Message Date
cozis 8f4d51d28c Add build.zig 2026-03-28 16:06:14 +01:00
cozis 4db0a934c5 Add cool cluster pic 2026-03-27 18:10:41 +01:00
cozis 3f5c71242a Improve README 2026-03-19 11:36:02 +01:00
cozis 9e1e74b401 Move Motivation paragraph to the top in README 2026-03-18 10:39:39 +01:00
cozis 7b90857901 Change README title 2026-03-18 10:32:48 +01:00
cozis ae626774f1 Replace README.md with docs.md 2026-03-18 10:31:18 +01:00
cozis fcd27f3567 Add docs.md 2026-03-18 10:30:42 +01:00
cozis 089191b3e4 Remove TODO.txt 2026-03-16 11:26:04 +01:00
cozis 89dfd1fbc5 Add LICENSE 2026-02-26 11:29:12 +01:00
cozis 3e353d0ae1 Add README.md 2026-02-26 11:22:05 +01:00
cozis d74ed80ca0 Remove stress test scripts 2026-02-26 10:35:21 +01:00
cozis 02da6b0170 Rewrite build scripts 2026-02-26 00:55:06 +01:00
cozis 0fbcbda4f7 Fix invalid write to static buffer in parse_addr_arg 2026-02-26 00:11:34 +01:00
cozis 7591ef6ee1 Cleanup of message.c/.h 2026-02-25 23:45:53 +01:00
cozis e38ad93da8 Cleanup of tcp.c/.h 2026-02-25 19:15:48 +01:00
cozisandClaude Opus 4.6 1b53abf633 Fix Windows networking bugs and connection metadata mismatch
- Use closesocket() instead of close() for sockets on Windows (lib/tcp.c)
- Call WSAStartup in tcp_init so outbound connections work (lib/tcp.c)
- Check WSAGetLastError() instead of errno for recv/send on Windows (lib/tcp.c)
- Use WSAEWOULDBLOCK instead of EINPROGRESS for non-blocking connect (lib/tcp.c)
- Add NULL guard in tcp_write for stale connection handles (lib/tcp.c)
- Fix ConnMetadata/TCP_Conn index mismatch in get_next_message: use
  event.handle.idx directly instead of searching for a free metadata
  slot, which could diverge when stale entries remain from failed
  outbound connections (lib/message.c)
- Initialize num_senders to 0 and skip unused metadata in
  find_conn_by_target (lib/message.c)
- Clear ready flag in http_server_next_request to prevent infinite
  loop (lib/http_server.c)
- Add CRT invalid parameter handler for the HTTP proxy (src/main.c)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 16:10:01 +01:00
cozisandClaude Opus 4.6 6b4f773052 Implement file_truncate for Windows and add missing Quakey mocks
file_truncate had a stub `return -1` on Windows, causing all
chunk_store_write calls to fail (every PUT returned TRANSFER_FAILED).
Implement it using SetFilePointer + SetEndOfFile.

Add mock_SetEndOfFile and mock_GetFileAttributesA to Quakey so the
simulation can exercise the Windows code paths against the mock
filesystem. Without these, SetEndOfFile was unmocked (link error) and
GetFileAttributesA called the real Win32 API on mock paths, making
chunk_store_exists always return false.

Verified: seeds 1-100 pass with 2000s simulation time.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 13:33:18 +01:00
cozis db2ef299bf Fix chunk replication 2026-02-25 13:13:46 +01:00
cozis 3da0eded42 First version of the HTTP proxy 2026-02-25 12:30:20 +01:00
cozis ef1d65ad2b Major refactoring 2026-02-25 10:44:43 +01:00
cozis bac3477991 Add comment 2026-02-24 23:16:46 +01:00
cozis 487f3bf010 Add disclaimer to README.md 2026-02-22 14:18:57 +01:00
cozis 11a0d9630e Add first version of the README.md 2026-02-22 14:17:54 +01:00
cozis 2c7bc5cd4e Simplify message routing in server 2026-02-22 13:46:23 +01:00
cozis 743528b92f Add TODO.txt 2026-02-22 13:46:04 +01:00
cozis b0cffd8198 Make client ID random in example 2026-02-22 00:41:01 +01:00
cozis 9849e8790a Forward-declare pollfd in toastyfs.h 2026-02-22 00:08:37 +01:00
cozis 964a029154 Add parallel transfer limit to client 2026-02-22 00:07:53 +01:00
cozis 32c054a421 Only set SO_REUSEADDR when not in the simulation 2026-02-21 23:36:54 +01:00
cozis fa3dc2483b Use single-line comments in example 2026-02-21 22:13:18 +01:00
cozis 0c044d8dba Add README.md 2026-02-21 16:10:40 +01:00
cozis 2a3bbf8837 Remove unused docker stuff 2026-02-21 16:02:14 +01:00
cozis a6bdd94cbf Merge branch 'claude/library-build-container-Dd9Tg' of https://github.com/cozis/TinyDFS into claude/library-build-container-Dd9Tg 2026-02-21 16:00:28 +01:00
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 2460817fa4 Bring back the old TODO.txt 2026-01-29 00:10:20 +01:00
cozis 6e3a5c2fff Add library pseudocode 2026-01-29 00:07:29 +01:00
cozis fa5cdca459 Add spec of the chunk server and metadata server to spec/spec.txt 2026-01-28 23:43:46 +01:00
cozis 1d6b11bcc3 Add signal queue to Quakey 2026-01-28 20:57:33 +01:00
cozis da3223a725 Add TODO.txt 2026-01-28 12:36:55 +01:00
cozis a3b29d6652 Fix formatting of #includes 2026-01-28 12:36:48 +01:00
cozis 3bb30dcd09 Implement pipe() mock 2026-01-27 22:57:45 +01:00
cozis 10053d3567 Add basic file creation, write, then read test and fix bug in tcp.c 2026-01-25 13:02:12 +01:00
cozis 31708d22cc Add feature testing build 2026-01-24 17:29:56 +01:00
cozis d4c2137eaa Add allocation failure injection 2026-01-24 12:12:48 +01:00
cozis bf989864a3 Add random connect() letencies and disk bit corruption 2026-01-24 12:09:28 +01:00
cozis 07bc952cb9 Add fault injection of disk operations 2026-01-24 11:53:38 +01:00
cozis 7306bd1203 Add fault injection for partial read/writes and random send() delays 2026-01-24 11:40:45 +01:00
cozis 18817203bf Add second client to the simulation 2026-01-24 11:23:19 +01:00
cozis a5296434d8 Merge branch 'claude/add-coverage-report-fpLp1' into add-quakey-simulator 2026-01-24 02:07:30 +01:00
cozis d5700bf45c Initialize static array 2026-01-24 01:26:55 +01:00
cozis 30c60d84df Bug fix 2026-01-23 20:57:14 +01:00
cozis 776f8c1015 Fix scheduling issue where time didn't advance if a host was always ready 2026-01-23 18:37:26 +01:00
cozis bde2d5a1ca Replace LittleFS with MockFS 2026-01-23 17:51:59 +01:00
cozis 028f25b942 Fix signed integer overflow in time calculation 2026-01-17 01:14:51 +01:00
cozis 6ef5e1a94c Fix simulation setup 2026-01-16 19:38:36 +01:00
cozis c10493881b Add Quakey 2026-01-16 14:45:09 +01:00
cozis 18e74a92c0 Rename inc/ to include/ 2025-12-05 09:52:49 +01:00
cozis d2c5c42537 Update the synchronization app to periodically query the remote root directory listing 2025-12-05 09:44:42 +01:00
cozis 49cee347f5 Add the terminator "/" to directory names when returning directory listings from the web interface 2025-12-05 09:19:25 +01:00
cozis 1e2223aeb0 Fix bad usage of the toastyfs client API in the web interface GET handler 2025-12-05 09:10:25 +01:00
cozis acc9c097d3 Forward declare struct pollfd in ToastyFS.h to avoid including winsock2.h and poll.h 2025-12-05 09:10:25 +01:00
cozis e73bb3a7d8 Add crash logger 2025-12-04 12:25:19 +01:00
cozis 5c192a1e52 Fix wrong error code returned by file_tree_read 2025-12-03 21:15:54 +01:00
cozis a082f46b78 Update TODO.txt 2025-12-03 19:12:35 +01:00
cozis 6519b0c1bb Fix incorrect call to http_response_builder_body_cap in toastyfs_web 2025-12-03 18:01:39 +01:00
cozis 012b31df3a Fix compilation warnings 2025-12-03 00:03:44 +01:00
cozis b0b2d576cc Refactoring of toastyfs_web 2025-12-03 00:03:36 +01:00
cozis 09ec872591 Merge branch 'main' into synchronization_app 2025-12-02 12:21:39 +01:00
cozis f665dae9ed Update chttp.c/.h 2025-12-02 12:07:10 +01:00
cozis 0d099a1fa6 Return version tags in directory listing 2025-11-25 12:08:33 +01:00
cozis afad13f44f Allow users of libtoastyfs to operate on files/directories with specific version tags 2025-11-24 14:34:57 +01:00
cozis 49091aff6d Document communication between metadata server and clients in the misc/PROTOCOL.txt file and add generation counters for files 2025-11-24 13:04:29 +01:00
cozis 1c768bb8f1 Add logging to app.py 2025-11-23 11:33:30 +01:00
cozis 8e37bc674f Draft of app.py, a python script which synchronized local folders to ToastyFS through the web interface 2025-11-23 11:21:34 +01:00
cozis 70a3a91783 Change README.md to refer to the cluster demo script 2025-11-23 09:53:36 +01:00
cozis e99c574767 Add options --reuse-addr and --trace-bytes to toastyfs_web 2025-11-23 09:08:45 +01:00
cozis b661f18214 Fix bug 2025-11-23 00:55:07 +01:00
cozis 0dbb5b1fc5 Add command-line arguments to toastyfs_web 2025-11-23 00:46:27 +01:00
cozis d7a2262172 Fix compilation errors of the web interface 2025-11-22 23:59:08 +01:00
cozis b930ba08e3 Add the ability to associate an opaque user pointer to a ToastyHandle which is then returned in its associated ToastyResult 2025-11-22 23:09:31 +01:00
cozis e1fa3729c6 Drop the MAX_CONNS macro and define TCP_CONNECTION_LIMIT, TCP_POLL_CAPACITY, TCP_EVENT_CAPACITY instead 2025-11-22 22:59:32 +01:00
cozis 582893be70 Add notes on the HTTP's interface semantics 2025-11-22 13:13:10 +01:00
cozis b2b1ed540b Update cHTTP and rewrite web/main.c 2025-11-22 12:30:47 +01:00
cozis 747f851155 Draft of the REST server client using cHTTP 2025-11-20 10:50:55 +01:00
cozis b0313ffcf8 Make toasty client thread-safe and implement toasty_wakeup 2025-11-20 03:51:01 +01:00
cozis 9b40edb56c Minor change to README.md code snippet 2025-11-18 18:57:39 +01:00
cozis 8c98835364 Add entries to TODO.txt 2025-11-18 11:44:53 +01:00
cozis 9d0a8e7de5 Bug fix 2025-11-17 23:30:50 +01:00
cozis c83b56ad90 Bug fix 2025-11-17 23:18:10 +01:00
cozis 690a950e71 Bug fixes 2025-11-17 23:07:50 +01:00
cozis dabd337bb8 Use mock versions of lseek and SetFilePointer in file_system.c 2025-11-17 22:49:41 +01:00
cozis dd74106935 Ignore .wal and .tmp files 2025-11-17 22:49:20 +01:00
cozis 94744ede6f Use mocked version of MoveFileExW in wal.c 2025-11-17 22:34:38 +01:00
cozis fb28e94a83 Continued work on the WAL 2025-11-17 21:52:44 +01:00
cozis 6126a2e932 Draft of wal.c/.h 2025-11-17 15:49:09 +01:00
cozis eaa3f3a8a1 Implement FileTree serialization and deserialization routines 2025-11-17 15:02:22 +01:00
cozis fbcfd80f6d Add TODO.txt entry 2025-11-17 13:08:14 +01:00
cozis b7fc855a80 Move miscellaneous files to the misc folder 2025-11-17 13:06:51 +01:00
cozis cd865a5cdf Simplify Features bullet points to make them easier to read 2025-11-17 13:04:56 +01:00