Skip to content

Commit 32ad20d

Browse files
committed
Merge branch 'jlee-r7-bug/activerecord-dep'
2 parents 1ea73b7 + 5ce26c4 commit 32ad20d

File tree

2 files changed

+23
-20
lines changed

2 files changed

+23
-20
lines changed

lib/msf/core/db_manager.rb

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,11 @@
11
# -*- coding: binary -*-
2-
require "active_record"
32

43
require 'msf/core'
54
require 'msf/core/db'
65
require 'msf/core/task_manager'
76
require 'fileutils'
87
require 'shellwords'
98

10-
# Provide access to ActiveRecord models shared w/ commercial versions
11-
require "metasploit_data_models"
12-
13-
# Patches issues with ActiveRecord
14-
require "msf/core/patches/active_record"
15-
16-
17-
189
module Msf
1910

2011
###
@@ -28,24 +19,14 @@ class DBManager
2819

2920
# Mainly, it's Ruby 1.9.1 that cause a lot of problems now, along with Ruby 1.8.6.
3021
# Ruby 1.8.7 actually seems okay, but why tempt fate? Let's say 1.9.3 and beyond.
31-
def self.warn_about_rubies
22+
def warn_about_rubies
3223
if ::RUBY_VERSION =~ /^1\.9\.[012]($|[^\d])/
3324
$stderr.puts "**************************************************************************************"
3425
$stderr.puts "Metasploit requires at least Ruby 1.9.3. For an easy upgrade path, see https://rvm.io/"
3526
$stderr.puts "**************************************************************************************"
3627
end
3728
end
3829

39-
# Only include Mdm if we're not using Metasploit commercial versions
40-
# If Mdm::Host is defined, the dynamically created classes
41-
# are already in the object space
42-
begin
43-
include MetasploitDataModels unless defined? Mdm::Host
44-
rescue NameError => e
45-
warn_about_rubies
46-
raise e
47-
end
48-
4930
# Provides :framework and other accessors
5031
include Framework::Offspring
5132

@@ -117,6 +98,14 @@ def initialize_database_support
11798
# Database drivers can reset our KCODE, do not let them
11899
$KCODE = 'NONE' if RUBY_VERSION =~ /^1\.8\./
119100

101+
require "active_record"
102+
103+
# Provide access to ActiveRecord models shared w/ commercial versions
104+
require "metasploit_data_models"
105+
106+
# Patches issues with ActiveRecord
107+
require "msf/core/patches/active_record"
108+
120109
@usable = true
121110

122111
rescue ::Exception => e
@@ -125,6 +114,18 @@ def initialize_database_support
125114
return false
126115
end
127116

117+
# Only include Mdm if we're not using Metasploit commercial versions
118+
# If Mdm::Host is defined, the dynamically created classes
119+
# are already in the object space
120+
begin
121+
unless defined? Mdm::Host
122+
self.class.send :include, MetasploitDataModels
123+
end
124+
rescue NameError => e
125+
warn_about_rubies
126+
raise e
127+
end
128+
128129
#
129130
# Determine what drivers are available
130131
#

lib/msf/core/module_manager/module_paths.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
# Gems
33
#
44
require 'active_support/concern'
5+
require 'active_support/core_ext/hash'
6+
require 'active_support/core_ext/module'
57

68
# Deals with module paths in the {Msf::ModuleManager}
79
module Msf::ModuleManager::ModulePaths

0 commit comments

Comments
 (0)