Class: Net::SSH::Kerberos::Drivers::GSS::API::GssResult

Inherits:
Object
  • Object
show all
Defined in:
lib/net/ssh/kerberos/drivers/gss.rb

Instance Method Summary collapse

Constructor Details

#initialize(code, minor = nil) ⇒ GssResult

Returns a new instance of GssResult.



134
# File 'lib/net/ssh/kerberos/drivers/gss.rb', line 134

def initialize(code, minor=nil) @value, @minor = code, minor end

Instance Method Details

#calling_errorObject



146
# File 'lib/net/ssh/kerberos/drivers/gss.rb', line 146

def calling_error; (@value >> 24) & 0x000000ff end

#complete?Boolean

Returns:

  • (Boolean)


136
# File 'lib/net/ssh/kerberos/drivers/gss.rb', line 136

def complete?; status.zero? end

#failure?Boolean

Returns:

  • (Boolean)


138
# File 'lib/net/ssh/kerberos/drivers/gss.rb', line 138

def failure?; major.nonzero? end

#incomplete?Boolean

Returns:

  • (Boolean)


137
# File 'lib/net/ssh/kerberos/drivers/gss.rb', line 137

def incomplete?; false end

#majorObject



144
# File 'lib/net/ssh/kerberos/drivers/gss.rb', line 144

def major; (@value >> 16) & 0x0000ffff end

#ok?Boolean

Returns:

  • (Boolean)


135
# File 'lib/net/ssh/kerberos/drivers/gss.rb', line 135

def ok?; major.zero? end

#routine_errorObject



147
# File 'lib/net/ssh/kerberos/drivers/gss.rb', line 147

def routine_error; (@value >> 16) & 0x000000ff end

#statusObject



145
# File 'lib/net/ssh/kerberos/drivers/gss.rb', line 145

def status; @value & 0x0000ffff end

#temporary_failure?Boolean

Returns:

  • (Boolean)


139
140
141
142
143
# File 'lib/net/ssh/kerberos/drivers/gss.rb', line 139

def temporary_failure?
  routine_error==GSS_S_CREDENTIALS_EXPIRED ||
    routine_error==GSS_S_CONTEXT_EXPIRED ||
    routine_error==GSS_S_UNAVAILABLE
end

#to_iObject



148
# File 'lib/net/ssh/kerberos/drivers/gss.rb', line 148

def to_i; @value end

#to_sObject



149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# File 'lib/net/ssh/kerberos/drivers/gss.rb', line 149

def to_s
  orig_retval, orig_args = API._retval_, API._args_
  begin
    msgctx, msgbuff, msglist = 0, API::GssBuffer.malloc, []
    begin
      result = API.gss_display_status @value, GSS_C_GSS_CODE, GSS_C_NO_OID, msgctx, msgbuff
      result.ok? or return 'unknown'
      msgctx = API._args_[3]
      msglist << msgbuff.to_s
      API.gss_release_buffer msgbuff
    end until msgctx.zero?
    msglist.empty? ? 'ok' : msglist.join(', ')
  ensure
    API.instance_eval { @retval = orig_retval; @args = orig_args }
  end
end