Parent

Methods

Included Modules

Files

GSSAPI::GssApiError

Public Class Methods

new(maj_stat = nil, min_stat = nil) click to toggle source
# File lib/gssapi/exceptions.rb, line 13
def initialize(maj_stat = nil, min_stat = nil)
  if(maj_stat.nil? && min_stat.nil?)
    @s = '(no error info)'
  else
    min = FFI::MemoryPointer.new :OM_uint32
    message_context = FFI::MemoryPointer.new :OM_uint32
    @s = ''
    oid = GssOID.gss_c_no_oid
    min_stat = min_stat.read_uint32
    [[maj_stat, GSS_C_GSS_CODE], [min_stat, GSS_C_MECH_CODE]].each do |m, t|
      message_context.write_int 0
      begin
        out_buff = ManagedGssBufferDesc.new
        maj = gss_display_status(min, m, t, oid, message_context, out_buff.pointer)
        if (maj != 0)
          @s += "failed to retrieve GSSAPI display for status #{m}"
          @s += " of major status #{maj_stat}, minor_status #{min_stat}\n"
          @s += "(with major status #{maj}, minor status #{min.read_uint32}\n"
          break
        end
        @s += out_buff.value.to_s + "\n"
      end while message_context.read_int != 0
    end
  end

  # We need to call this so we can pass the message to the Error when we have no arguments
  super()
end

Public Instance Methods

message() click to toggle source
# File lib/gssapi/exceptions.rb, line 11
def message; to_s + ": " + @s; end

[Validate]

Generated with the Darkfish Rdoc Generator 2.