diff options
-rw-r--r-- | Bugzilla/Auth.pm | 9 | ||||
-rw-r--r-- | template/en/default/email/lockout.txt.tmpl | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/Bugzilla/Auth.pm b/Bugzilla/Auth.pm index 93ee45b54..477dbffaa 100644 --- a/Bugzilla/Auth.pm +++ b/Bugzilla/Auth.pm @@ -22,6 +22,7 @@ use Bugzilla::User::Setting (); use Bugzilla::Auth::Login::Stack; use Bugzilla::Auth::Verify::Stack; use Bugzilla::Auth::Persist::Cookie; +use Socket; sub new { my ($class, $params) = @_; @@ -199,10 +200,18 @@ sub _handle_login_result { my $default_settings = Bugzilla::User::Setting::get_defaults(); my $template = Bugzilla->template_inner( $default_settings->{lang}->{default_value}); + my $address = $attempts->[0]->{ip_addr}; + # Note: inet_aton will only resolve IPv4 addresses. + # For IPv6 we'll need to use inet_pton which requires Perl 5.12. + my $n = inet_aton($address); + if ($n) { + $address = gethostbyaddr($n, AF_INET) . " ($address)" + } my $vars = { locked_user => $user, attempts => $attempts, unlock_at => $unlock_at, + address => $address, }; my $message; $template->process('email/lockout.txt.tmpl', $vars, \$message) diff --git a/template/en/default/email/lockout.txt.tmpl b/template/en/default/email/lockout.txt.tmpl index e30a4e945..51153ea45 100644 --- a/template/en/default/email/lockout.txt.tmpl +++ b/template/en/default/email/lockout.txt.tmpl @@ -8,10 +8,10 @@ From: [% Param('mailfrom') %] To: [% Param('maintainer') %] -Subject: [[% terms.Bugzilla %]] Account Lock-Out: [% locked_user.login %] ([% attempts.0.ip_addr %]) +Subject: [[% terms.Bugzilla %]] Account Lock-Out: [% locked_user.login %] ([% address %]) X-Bugzilla-Type: admin -The IP address [% attempts.0.ip_addr %] failed too many login attempts ( +The address [% address %] failed too many login attempts ( [%- constants.MAX_LOGIN_ATTEMPTS +%]) for the account [% locked_user.login %]. |