metasploit-framework/lib/rex/io/stream_abstraction.rb

44 lines
674 B
Ruby

#!/usr/bin/ruby
require 'socket'
module Rex
module IO
###
#
# StreamAbstraction
# -----------------
#
# This class provides an abstraction to a stream based
# connection through the use of a streaming socketpair.
#
###
module StreamAbstraction
#
# Creates a streaming socket pair
#
def initialize_abstraction
self.lsock, self.rsock = ::Socket.pair(::Socket::AF_UNIX,
::Socket::SOCK_STREAM, 0)
end
#
# Cleans up the abstraction layer
#
def cleanup_abstraction
self.lsock.close if (self.lsock)
self.rsock.close if (self.rsock)
self.lsock = nil
self.rsock = nil
end
attr_reader :lsock, :rsock
protected
attr_writer :lsock, :rsock
end
end; end