Module: Net::SSH::Kerberos::Drivers::GSS::API

Includes:
DLDriver
Defined in:
lib/net/ssh/kerberos/drivers/gss.rb

Defined Under Namespace

Classes: GssOID, GssResult

Constant Summary collapse

GssBuffer =
struct2 [ "size_t length", "gss_bytes_t value" ] do
  def to_s; value.to_s(length) if length > 0 end
end
GssOIDSet =
struct2 [ "size_t count", "void *elements" ] do
  def oids
					return @oids unless @oids.nil?
					@oids, m = [], GssOID.size
					count.nonzero? and 0.upto(count-1) { |n| @oids[n] = GssOID.new(elements + n * m); @oids[n].ptr.size = m }
					@oids
  end
 def inspect; 'OIDSet: [' + oids.map {|o| o.inspect }.join(', ') + ']' end
end

Constants included from DLDriver

DLDriver::PTR_ENC, DLDriver::PTR_REF_ENC

Class Method Summary collapse

Methods included from DLDriver

included

Class Method Details

.gss_func(sym, sig) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/net/ssh/kerberos/drivers/gss.rb', line 41

def self.gss_func(sym, sig)
  extern "OM_uint32 #{sym} (OM_uint32_ref, #{sig})"
  module_eval <<-"EOCODE"
  alias :_#{sym} :#{sym}
  module_function :_#{sym}
	def #{sym}(*args)
	  _#{sym}(*(args.unshift(0)))
	  @retval = GssResult.new(@retval, @args.shift)
	end 
  module_function :#{sym}
EOCODE
end