Sha256: ffcdb4b4318dd44f807fd5a75665a18af9ec5e8d75c062fb3afca0509243afe9

Contents?: true

Size: 882 Bytes

Versions: 8

Compression:

Stored size: 882 Bytes

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 functions as our patch into the Kernel class for Protect,
# allowing us to track activity as it crosses spawned processes.
module Kernel
  class << self
    include Contrast::Components::Interface
    access_component :contrast_service

    def cs__protect_build_wrapper
      lambda {
        Kernel.cs__protect_proc_start
        yield
        # AtExitHook handles sending any messages generated in the new forked process
      }
    end

    def cs__protect_proc_start
      context = Contrast::Agent::REQUEST_TRACKER.current
      return unless context

      context.reset_activity
    end
  end
end

cs__scoped_require 'cs__protect_kernel/cs__protect_kernel'

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
contrast-agent-3.11.0 lib/contrast/extensions/ruby_core/protect/kernel.rb
contrast-agent-3.10.2 lib/contrast/extensions/ruby_core/protect/kernel.rb
contrast-agent-3.10.1 lib/contrast/extensions/ruby_core/protect/kernel.rb
contrast-agent-3.10.0 lib/contrast/extensions/ruby_core/protect/kernel.rb
contrast-agent-3.9.1 lib/contrast/extensions/ruby_core/protect/kernel.rb
contrast-agent-3.9.0 lib/contrast/extensions/ruby_core/protect/kernel.rb
contrast-agent-3.8.5 lib/contrast/core_extensions/protect/kernel.rb
contrast-agent-3.8.4 lib/contrast/core_extensions/protect/kernel.rb