diff options
-rw-r--r-- | lib/dmarc/parser.ex | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/dmarc/parser.ex b/lib/dmarc/parser.ex index e4fd29b..cf2c521 100644 --- a/lib/dmarc/parser.ex +++ b/lib/dmarc/parser.ex @@ -7,11 +7,16 @@ defmodule Lithium.DMARC.Parser do module to validate and process these values. """ + require Logger + def parse_policy(record) do case :dmarc_lexer.string(String.to_charlist(record)) do {:ok, tokens, _} -> case :dmarc_parser.parse(tokens) do - {:ok, parsed} -> + {:ok, %{invalid: invalid_tokens, valid: parsed}} -> + if Kernel.map_size(invalid_tokens) > 0 do + Logger.warning("DMARC record contains invalid tokens: #{inspect(invalid_tokens)}") + end {:ok, keyword_to_string_map(parsed)} {:error, reason} -> |