metasploit-framework/lib/msf/core/opt_regexp.rb

49 lines
742 B
Ruby

# -*- coding: binary -*-
module Msf
###
#
# Regexp option
#
###
class OptRegexp < OptBase
def type
return 'regexp'
end
def valid?(value, check_empty: true)
if check_empty && empty_required_value?(value)
return false
elsif value.nil?
return true
end
begin
Regexp.compile(value)
return super
rescue RegexpError, TypeError
return false
end
end
def normalize(value)
if value.nil? || value.kind_of?(Regexp)
value
else
Regexp.compile(value.to_s)
end
end
def display_value(value)
if value.kind_of?(Regexp)
return value.source
elsif value.kind_of?(String)
return display_value(normalize(value))
end
super
end
end
end