diff --git a/Netdisco/Changes b/Netdisco/Changes index 32575c99..cc01e03c 100644 --- a/Netdisco/Changes +++ b/Netdisco/Changes @@ -9,6 +9,7 @@ [BUG FIXES] * Fix for node search on some formats of IPv6 addr being seen as MAC + * [#190] Ignore entries in the discover form that don't look like IP/hostname 2.029014 - 2014-11-19 diff --git a/Netdisco/lib/App/Netdisco/Web/AdminTask.pm b/Netdisco/lib/App/Netdisco/Web/AdminTask.pm index e0986398..e0197a69 100644 --- a/Netdisco/lib/App/Netdisco/Web/AdminTask.pm +++ b/Netdisco/lib/App/Netdisco/Web/AdminTask.pm @@ -12,8 +12,7 @@ sub add_job { if ($device) { $device = NetAddr::IP::Lite->new($device); - return send_error('Bad device', 400) - if ! $device or $device->addr eq '0.0.0.0'; + return if ! $device or $device->addr eq '0.0.0.0'; } jq_insert({ @@ -23,18 +22,22 @@ sub add_job { username => session('logged_in_user'), userip => request->remote_address, }); + + true; } foreach my $action (@{ setting('job_prio')->{high} }, @{ setting('job_prio')->{normal} }) { ajax "/ajax/control/admin/$action" => require_role admin => sub { - add_job($action, param('device'), param('extra')); + add_job($action, param('device'), param('extra')) + or send_error('Bad device', 400); }; post "/admin/$action" => require_role admin => sub { - add_job($action, param('device'), param('extra')); - redirect uri_for('/admin/jobqueue')->path; + add_job($action, param('device'), param('extra')) + ? redirect uri_for('/admin/jobqueue')->path + : redirect uri_for('/')->path; }; }