Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ Report lands at `_build\windows-x86-64-coverage\coverage-report\index.html`.
## Architecture

- **`src/`** — the main application (`CMakeLists.txt` defines target `IISNativeModuleApp`, project `IISNativeModuleApp`). Sources are glob-collected (`*.cpp`/`*.h` in the directory), so **new files under `src/` are picked up automatically at the next CMake configure** — no need to edit `src/CMakeLists.txt` when adding a file there.
- `src/controller/`, `src/model/`, `src/view/` are currently empty placeholder directories (each holds only a `.gitignore`), suggesting an intended MVC split that hasn't been built out yet.
- `src/utils/` is a separate static library target, `IISNativeModuleUtils` (project `IISNativeModuleUtils`), also glob-built and linked into both the app and the test binary. New utility files go here and are picked up the same way.
- `src/module/` is the IIS native module itself: target `IISNativeModule`, a `SHARED` library (DLL) that exports `RegisterModule` via `iis_native_module.def`. `iis::IISRequestLevelModule` (`iis_request_level_module.h/.cpp`) implements only `OnBeginRequest` (plus the mandatory `Dispose()`): requests whose cooked URL path ends with `/forbidden` get a 403 with reason `Forbidden by IISRequestLevelModule`, everything else gets an `X-IISRequestLevelModule: 1` response header. `iis::IISRequestLevelModuleFactory` creates instances; `register_module.cpp` subscribes to `RQ_BEGIN_REQUEST` only — add further `RQ_*` flags there as methods gain implementations.
- **`test/`** — GTest-based tests, target/project `IISNativeModuleTest`. Globs both `test/*.cpp` and `test/utils/*.cpp`, and links `IISNativeModuleUtils`. `test/main.cpp` is a standard GTest `main()` running `RUN_ALL_TESTS()`. Mirror `src/utils/` layout under `test/utils/` for new utility tests (see `test/utils/smoke_test.cpp` as the existing example — one GTest `TEST` per behavior, wrapped in the same namespace as the code under test).
Expand Down
Empty file removed src/controller/.gitignore
Empty file.
Empty file removed src/model/.gitignore
Empty file.
Empty file removed src/view/.gitignore
Empty file.
Loading