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