Skip to content

Commit 7b47409

Browse files
committed
Ensure handler module is loaded before checking exports
Move Code.ensure_loaded!/1 into resolve_handler/1 so all downstream function_exported?/3 checks (request_started and response_started) are safe. Fixes silent callback skip when the handler module hasn't been loaded yet in the BEAM.
1 parent 9e7e40c commit 7b47409

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

lib/philter.ex

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -452,9 +452,16 @@ defmodule Philter do
452452

453453
defp resolve_handler(opts) do
454454
case Keyword.get(opts, :handler) do
455-
nil -> nil
456-
{module, args} when is_atom(module) -> {module, args}
457-
module when is_atom(module) -> {module, []}
455+
nil ->
456+
nil
457+
458+
{module, args} when is_atom(module) ->
459+
Code.ensure_loaded!(module)
460+
{module, args}
461+
462+
module when is_atom(module) ->
463+
Code.ensure_loaded!(module)
464+
{module, []}
458465
end
459466
end
460467

0 commit comments

Comments
 (0)