Skip to content

fix(apache): isolate raw adapters from host modules - #560

Merged
regyssilveira merged 1 commit into
HashLoad:masterfrom
regyssilveira:codex/fix-558-apache-init-order
Sep 4, 2026
Merged

fix(apache): isolate raw adapters from host modules#560
regyssilveira merged 1 commit into
HashLoad:masterfrom
regyssilveira:codex/fix-558-apache-init-order

Conversation

@regyssilveira

Copy link
Copy Markdown
Contributor

Summary

  • keep Horse.Provider.RawAdapters out of Apache, ISAPI, CGI, and FastCGI dependency graphs
  • retain raw request/response handling for epoll, IOCP, and HttpSys providers
  • fail compilation if a host-managed application accidentally links RawAdapters again

This restores the initialization order expected by Web.HTTPD24Impl, preventing the exported Apache module record from being observed zero-filled.

Fixes #558.

Validation

  • Apache Win64 full build: Delphi 10 Seattle, Delphi 11, and Delphi 13
  • confirmed no Horse.Provider.Raw*.dcu is emitted in the Apache build graph
  • confirmed the Apache DLL exports apache_horse_module
  • ISAPI Win32 and CGI Win32 full builds on Delphi 13, also with zero raw-adapter DCUs
  • IOCP Win64 and HttpSys Win64 full builds on Delphi 13, both retaining raw-adapter DCUs
  • epoll Linux64 full build on Delphi 13
  • epoll Linux64 full build with FPC 3.2.2 in Docker
  • direct HORSE_APACHE compilation of Horse.Provider.RawAdapters fails with the intended guard

An Apache runtime was not available locally, so runtime loading with httpd.exe -t was not performed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Apache module record zero-filled (garbled) since b21ef629 — RawAdapters dragged into Apache unit graph breaks init order

1 participant