Sha256: 7f3d8def56ed6420d30ff62388e98a853106c22e728a6af660c6c837a3919c03
Contents?: true
Size: 1.31 KB
Versions: 3
Compression:
Stored size: 1.31 KB
Contents
# Copyright (c) 2020 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details. # frozen_string_literal: true cs__scoped_require 'contrast/components/interface' # This module is used to find funchook library and determine availability module Funchook include Contrast::Components::Interface access_component :logging attr_accessor :path # Possible platform library files ACCEPTABLE_FILES = %w[libfunchook.dylib libfunchook.so].cs__freeze # Top level agent directories that should have the funchook libraries SEARCH_DIRS = [ File.join('ext'), File.join('shared_libraries'), File.join('funchook', 'src') ].cs__freeze AGENT_ROOT = File.join(__dir__, '..', '..', '..') def self.resolve_path! actual_path_segments = SEARCH_DIRS.product(ACCEPTABLE_FILES).find do |potential_funchook_path| load_path = absolute_path(potential_funchook_path) File.exist?(load_path) end if actual_path_segments.nil? logger.warn('Unable to find funchook') else @path = absolute_path(actual_path_segments) logger.info('Funchook found', path: @path) end @path end def self.absolute_path path_array File.absolute_path(File.join(AGENT_ROOT, *path_array)) end def self.available? @_available ||= !!resolve_path! end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
contrast-agent-3.13.2 | lib/contrast/funchook/funchook.rb |
contrast-agent-3.13.1 | lib/contrast/funchook/funchook.rb |
contrast-agent-3.13.0 | lib/contrast/funchook/funchook.rb |