lib/arachni/rpc/exceptions.rb in arachni-rpc-0.1.3 vs lib/arachni/rpc/exceptions.rb in arachni-rpc-0.2.0
- old
+ new
@@ -4,25 +4,23 @@
redistribution and commercial restrictions. Please see the Arachni-RPC
web site for more information on licensing and terms of use.
=end
-#
# RPC Exceptions have methods that help identify them based on type.
#
# So in order to allow evaluations like:
#
# my_object.rpc_connection_error?
#
# to be possible on all objects these helper methods need to be available for
# all objects.
#
-# By default they'll return false, individual RPC Exceptions will overwrite them to
-# return true when applicable.
+# By default they'll return false, individual RPC Exceptions will overwrite them
+# to return true when applicable.
#
-# @author: Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
-#
+# @author Tasos "Zapotek" Laskos <tasos.laskos@arachni-scanner.com>
class Object
# @return [Bool] false
def rpc_connection_error?
false
@@ -46,10 +44,15 @@
# @return [Bool] false
def rpc_invalid_token_error?
false
end
+ # @return [Bool] true
+ def rpc_ssl_error?
+ false
+ end
+
# @return [Bool] false
def rpc_exception?
false
end
@@ -57,117 +60,90 @@
module Arachni
module RPC
module Exceptions
- #
# Returns an exception based on the response object.
#
# @param [Arachni::RPC::Response] response
#
# @return [Exception]
- #
def self.from_response( response )
- obj = response.obj
- klass = Arachni::RPC::Exceptions.const_get( obj['type'].to_sym )
- e = klass.new( obj['exception'] )
- e.set_backtrace( obj['backtrace'] )
+ exception = response.exception
+ klass = Arachni::RPC::Exceptions.const_get( exception['type'].to_sym )
+ e = klass.new( exception['message'] )
+ e.set_backtrace( exception['backtrace'] )
e
end
class Base < ::RuntimeError
- #
+
# @return [Bool] true
- #
def rpc_exception?
true
end
end
- #
# Signifies an abruptly terminated connection.
#
# Look for network or SSL errors or a dead server or a mistyped server address/port.
- #
class ConnectionError < Base
- #
# @return [Bool] true
- #
def rpc_connection_error?
true
end
end
- #
# Signifies an exception that occurred on the server-side.
#
# Look errors on the remote method and review the server output for more details.
- #
class RemoteException < Base
- #
# @return [Bool] true
- #
def rpc_remote_exception?
true
end
end
- #
# An invalid object has been called.
#
# Make sure that there is a server-side handler for the object you called.
- #
class InvalidObject < Base
- #
# @return [Bool] true
- #
def rpc_invalid_object_error?
true
end
end
- #
# An invalid method has been called.
#
# Occurs when a remote method doesn't exist or isn't public.
- #
class InvalidMethod < Base
- #
# @return [Bool] true
- #
def rpc_invalid_method_error?
true
end
end
- #
# Signifies an authentication token mismatch between the client and the server.
- #
class InvalidToken < Base
- #
# @return [Bool] true
- #
def rpc_invalid_token_error?
true
end
end
- #
# Signifies an authentication token mismatch between the client and the server.
- #
- class SSLPeerVerificationFailed < ConnectionError
+ class SSLPeerVerificationFailed < ConnectionError
- #
# @return [Bool] true
- #
def rpc_ssl_error?
true
end
end