Sha256: f9a356b4ea575e0d99ce0f1d3a63d6505e8405ac21f7f99499cf30eb65e006f0
Contents?: true
Size: 1.04 KB
Versions: 4
Compression:
Stored size: 1.04 KB
Contents
require 'rex/ui' module Rex module Ui module Text require 'rex/io/stream_abstraction' ### # # This class implements input against a socket. # ### class Input::Buffer < Rex::Ui::Text::Input class BufferSock include Rex::IO::StreamAbstraction end def initialize @sock = BufferSock.new @sock.initialize_abstraction end def close @sock.cleanup_abstraction end def sysread(len = 1) @sock.rsock.sysread(len) end def put(msg) @sock.lsock.write(msg) end # # Wait for a line of input to be read from a socket. # def gets # Initialize the line buffer line = '' # Read data one byte at a time until we see a LF while (true) break if line.include?("\n") # Read another character of input char = @sock.rsock.getc # Append this character to the string line << char end return line end # # Returns whether or not EOF has been reached on stdin. # def eof? @sock.lsock.closed? end # # Returns the file descriptor associated with a socket. # def fd return @sock.rsock end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
librex-0.0.5 | lib/rex/ui/text/input/buffer.rb |
librex-0.0.4 | lib/rex/ui/text/input/buffer.rb |
librex-0.0.3 | lib/rex/ui/text/input/buffer.rb |
librex-0.0.1 | lib/rex/ui/text/input/buffer.rb |