/
githubmirror
/
metasploit-framework
Обзор
Документация
Войти
/
githubmirror
/
metasploit-framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
lib/msf/core/opt_enum.rb
62 строки
1 KB
adfoster-r7
Update DNS resolution for socks proxies
22 май 2025, 16:14
22 май 2025, 16:14
a99a74c
Код
Авторство
О чём код?
# -*- coding: binary -*- module Msf ### # # Enum option. # ### class OptEnum < OptBase def type return 'enum' end # This overrides required default from 'false' to 'true' def initialize(in_name, attrs = [], required: true, **kwargs) super end def valid?(value = self.value, check_empty: true, datastore: nil) return false if check_empty && empty_required_value?(value) return true if value.nil? && !required? return false if value.nil? if case_sensitive? enums.include?(value.to_s) else enums.map(&:downcase).include?(value.to_s.downcase) end end def normalize(value = self.value) if valid?(value) && !value.nil? if case_sensitive? value.to_s else enums.find { |e| e.casecmp? value } end else nil end end def desc=(value) self.desc_string = value desc end def desc str = enums.join(', ') if enums "#{desc_string || ''} (Accepted: #{str})" end protected def case_sensitive? enums.map(&:downcase).uniq.length != enums.uniq.length end attr_accessor :desc_string # :nodoc: end end