summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
Diffstat (limited to 'Bugzilla')
-rw-r--r--Bugzilla/WebService/Constants.pm2
-rw-r--r--Bugzilla/WebService/Server.pm3
2 files changed, 5 insertions, 0 deletions
diff --git a/Bugzilla/WebService/Constants.pm b/Bugzilla/WebService/Constants.pm
index 7fd7e2ae8..a51389faa 100644
--- a/Bugzilla/WebService/Constants.pm
+++ b/Bugzilla/WebService/Constants.pm
@@ -112,6 +112,8 @@ use constant WS_ERROR_CODE => {
invalid_user_group => 504,
user_access_by_id_denied => 505,
user_access_by_match_denied => 505,
+ # Fatal errors (must be negative).
+ unknown_method => -32601,
};
# These are the fallback defaults for errors not in ERROR_CODE.
diff --git a/Bugzilla/WebService/Server.pm b/Bugzilla/WebService/Server.pm
index 115c7df89..9571e8030 100644
--- a/Bugzilla/WebService/Server.pm
+++ b/Bugzilla/WebService/Server.pm
@@ -18,9 +18,12 @@
package Bugzilla::WebService::Server;
use strict;
+use Bugzilla::Error;
+
sub handle_login {
my ($self, $class, $method, $full_method) = @_;
eval "require $class";
+ ThrowCodeError('unknown_method', {method => $full_method}) if $@;
return if ($class->login_exempt($method)
and !defined Bugzilla->input_params->{Bugzilla_login});
Bugzilla->login();