class KerberosAuthenticator::Krb5::Data

Generic Kerberos library data structure. @see web.mit.edu/kerberos/krb5-1.14/doc/appdev/refs/types/krb5_data.html krb5_data

Public Class Methods

new(pointer = nil) click to toggle source

Allocates and zeroes a new krb5_data struct or cast some existing memory to one. @param pointer [Pointer] a pointer to existing memory to cast to a krb5_data struct @see github.com/ffi/ffi/wiki/Structs Structs

Calls superclass method
# File lib/kerberos_authenticator/krb5/data.rb, line 13
def initialize(pointer = nil)
  unless pointer
    pointer = FFI::MemoryPointer.new :char, self.class.size

    # HACK: AutoPointer won't accept a MemoryPointer, only a Pointer
    pointer.autorelease = false
    pointer = FFI::Pointer.new(pointer)
  end

  super(pointer)
end
release(pointer) click to toggle source

Frees the contents of a Data struct @api private @see web.mit.edu/kerberos/krb5-1.14/doc/appdev/refs/api/krb5_free_data_contents.html krb5_free_data_contents

# File lib/kerberos_authenticator/krb5/data.rb, line 35
def self.release(pointer)
  Krb5.free_data_contents(Context.context.ptr, pointer)
end

Public Instance Methods

read_string() click to toggle source

Reads the data into a string. @return [String]

# File lib/kerberos_authenticator/krb5/data.rb, line 27
def read_string
  return '' if self[:length].zero?
  self[:data_ptr].read_bytes(self[:length])
end