summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorByron Jones <bjones@mozilla.com>2012-05-08 08:19:12 +0200
committerByron Jones <bjones@mozilla.com>2012-05-08 08:19:12 +0200
commit08095abadba2df76318e2fadcae442e21e1f2a1c (patch)
treecb95c18360f05ff520411fb6083d129f3d44e2ab
parent16e6b9c6ae479e28cd77204a3d7d9966b293c19a (diff)
downloadbugzilla-08095abadba2df76318e2fadcae442e21e1f2a1c.tar.gz
bugzilla-08095abadba2df76318e2fadcae442e21e1f2a1c.tar.xz
Bug 729001: Reverse resolves the IP address in account lockout notifications
r=LpSolit, a=LpSolit
-rw-r--r--Bugzilla/Auth.pm9
-rw-r--r--template/en/default/email/lockout.txt.tmpl4
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 %].