Class/Module Index [+]

Quicksearch

Rex::IO::BidirectionalPipe

Attributes

input[RW]

Wrappers for shell methods

output[RW]

Wrappers for shell methods

prompt[RW]

Wrappers for shell methods

Public Class Methods

new() click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 10
def initialize
        @subscribers_out = {}
        @subscribers_ref = {}
        @subscribers_idx = 0
        @pipe_input = Rex::Ui::Text::Input::Buffer.new

        # We are the shell, the input, and the output
        self.output = self
        self.input  = self
end

Public Instance Methods

close() click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 25
def close
        @pipe_input.close
end
create_subscriber(id=nil) click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 33
def create_subscriber(id=nil)
        id ||= (@subscribers_idx += 1).to_s
        @subscribers_out[id] = Rex::Ui::Text::Output::Buffer.new
        return id
end
create_subscriber_proc(id=nil, &block) click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 39
def create_subscriber_proc(id=nil, &block)
        id = create_subscriber(id)
        @subscribers_ref[id] = block
end
eof?() click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 120
def eof?
        @pipe_input.eof?
end
fd() click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 124
def fd
        @pipe_input.fd
end
flush() click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 93
def flush
end
gets() click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 116
def gets
        @pipe_input.gets
end
has_subscriber?(id) click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 29
def has_subscriber?(id)
        @subscribers_out.has_key?(id)
end
intrinsic_shell?() click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 134
def intrinsic_shell?
        true
end
pgets() click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 146
def pgets
        gets
end
pipe_input() click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 21
def pipe_input
        @pipe_input
end
put(msg) click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 112
def put(msg)
        @pipe_input.put(msg)
end
read_subscriber(id) click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 53
def read_subscriber(id)
        output = @subscribers_out[id]

        return '' if output.nil?

        buf = output.buf

        output.reset

        buf
end
remove_subscriber(id) click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 44
def remove_subscriber(id)
        @subscribers_out.delete(id)
        @subscribers_ref.delete(id)
end
supports_color?() click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 142
def supports_color?
        false
end
supports_readline() click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 138
def supports_readline
        false
end
sysread(len = 1) click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 108
def sysread(len = 1)
        @pipe_input.sysread(len)
end
write_input(buf) click to toggle source
# File lib/rex/io/bidirectional_pipe.rb, line 49
def write_input(buf)
        @pipe_input.put(buf)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.