a16a10aaf6
Fix #6371 When a browser fails to bind (probably due to an invalid port or server IP), the module actually fails to report this exception from exception, the method calls exploit.handle_exception(e). But since handle_exception is not a valid method for that object, it is unable to do so, and as a result the module fails to properly terminate the module, or show any error on the console. For the user, this will make it look like the module has started, the payload listener is up, but there is no exploit job. Rex::BindFailed actually isn't the only error that could be raised by #job_run_proc. As far as I can tell registering the same resource again could, too. With this patch, the user should be able to see this error too. Since the exploit object does not have access to the methods in Msf::Simple::Exploit, plus there is no other code using handle_exception and setup_fail_detail_from_exception, I decided to move these to lib/msf/core/exploit.rb so they are actually callable.