Sha256: ee2a5c9b4d36b69b251a405af707a7f392b6f6703786341547ef18e32e983042

Contents?: true

Size: 815 Bytes

Versions: 21

Compression:

Stored size: 815 Bytes

Contents

# frozen_string_literal: true

module Facter
  module Resolvers
    module Solaris
      module FFI
        module Ioctl
          extend ::FFI::Library
          ffi_lib ::FFI::Library::LIBC, '/usr/lib/libsocket.so'

          attach_function :ioctl_base, :ioctl, %i[int int pointer], :int
          attach_function :open_socket, :socket, %i[int int int], :int
          attach_function :close_socket, :shutdown, %i[int int], :int
          attach_function :inet_ntop, %i[int pointer pointer uint], :string

          def self.ioctl(call_const, pointer, address_family = AF_INET)
            fd = Ioctl.open_socket(address_family, SOCK_DGRAM, 0)
            result = ioctl_base(fd, call_const, pointer)
            Ioctl.close_socket(fd, 2)
            result
          end
        end
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
facter-4.0.51 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.50 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.49 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.48 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.47 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.46 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.44 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.43 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.42 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.41 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.40 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.39 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.38 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.37 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.36 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.35 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.34 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.33 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.32 lib/facter/resolvers/solaris/ffi/functions.rb
facter-4.0.31 lib/facter/resolvers/solaris/ffi/functions.rb