Module: Datadog::AppSec::WAF::LibDDWAF
- Extended by:
- FFI::Library
- Defined in:
- lib/datadog/appsec/waf.rb
Defined Under Namespace
Classes: Config, Error, Object, ObjectValueUnion, Result, RuleSetInfo, SizeTPtr, UInt32Ptr, UInt64Ptr, Version
Constant Summary collapse
- DDWAF_OBJ_TYPE =
ddwaf::object data structure
enum :ddwaf_obj_invalid, 0, :ddwaf_obj_signed, 1 << 0, :ddwaf_obj_unsigned, 1 << 1, :ddwaf_obj_string, 1 << 2, :ddwaf_obj_array, 1 << 3, :ddwaf_obj_map, 1 << 4
- ObjectFree =
freeers
attach_function :ddwaf_object_free, [:ddwaf_object], :void
- ObjectNoFree =
::FFI::Pointer::NULL
- RuleSetInfoNone =
Datadog::AppSec::WAF::LibDDWAF::RuleSetInfo.new(::FFI::Pointer::NULL)
- DDWAF_RET_CODE =
enum :ddwaf_err_internal, -3, :ddwaf_err_invalid_object, -2, :ddwaf_err_invalid_argument, -1, :ddwaf_good, 0, :ddwaf_monitor, 1, :ddwaf_block, 2
- DDWAF_LOG_LEVEL =
logging
enum :ddwaf_log_trace, :ddwaf_log_debug, :ddwaf_log_info, :ddwaf_log_warn, :ddwaf_log_error, :ddwaf_log_off
Class Method Summary collapse
Instance Method Summary collapse
-
#ddwaf_object_invalid ⇒ Object
setters.
-
#ddwaf_object_type ⇒ Object
getters.
Class Method Details
.local_cpu ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/datadog/appsec/waf.rb', line 35 def self.local_cpu if RUBY_ENGINE == 'jruby' os_arch = java.lang.System.get_property('os.arch') cpu = case os_arch when 'amd64' then 'x86_64' else raise Error, "unsupported JRuby os.arch: #{os_arch.inspect}" end return cpu end Gem::Platform.local.cpu end |
.local_os ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/datadog/appsec/waf.rb', line 19 def self.local_os if RUBY_ENGINE == 'jruby' os_name = java.lang.System.get_property('os.name') os = case os_name when /linux/i then 'linux' when /mac/i then 'darwin' else raise Error, "unsupported JRuby os.name: #{os_name.inspect}" end return os end Gem::Platform.local.os end |
.shared_lib_extname ⇒ Object
50 51 52 |
# File 'lib/datadog/appsec/waf.rb', line 50 def self.shared_lib_extname Gem::Platform.local.os == 'darwin' ? '.dylib' : '.so' end |
.shared_lib_path ⇒ Object
54 55 56 |
# File 'lib/datadog/appsec/waf.rb', line 54 def self.shared_lib_path File.join(__dir__, "../../../vendor/libddwaf/libddwaf-#{Datadog::AppSec::WAF::VERSION::BASE_STRING}-#{local_os}-#{local_cpu}/lib/libddwaf#{shared_lib_extname}") end |
Instance Method Details
#ddwaf_object_invalid ⇒ Object
setters
121 |
# File 'lib/datadog/appsec/waf.rb', line 121 attach_function :ddwaf_object_invalid, [:ddwaf_object], :ddwaf_object |
#ddwaf_object_type ⇒ Object
getters
140 |
# File 'lib/datadog/appsec/waf.rb', line 140 attach_function :ddwaf_object_type, [:ddwaf_object], DDWAF_OBJ_TYPE |