fix: match IPv4 mapped IPv6 addresses when searching for SMTP-IP credentials

This commit is contained in:
Charlie Smurthwaite
2023-05-15 01:10:43 +01:00
parent f0a8aca6e1
commit 8b525d0381
+1 -1
View File
@@ -355,7 +355,7 @@ module Postal
else else
# User is trying to relay but is not authenticated. Try to authenticate by IP address # User is trying to relay but is not authenticated. Try to authenticate by IP address
@credential = Credential.where(type: "SMTP-IP").all.sort_by { |c| c.ipaddr&.prefix || 0 }.reverse.find do |credential| @credential = Credential.where(type: "SMTP-IP").all.sort_by { |c| c.ipaddr&.prefix || 0 }.reverse.find do |credential|
credential.ipaddr.include?(@ip_address) credential.ipaddr.include?(@ip_address) || (credential.ipaddr.ipv4? && credential.ipaddr.ipv4_mapped.include?(@ip_address))
end end
if @credential if @credential