Class: Msf::Sessions::Modem::ChannelBase

Inherits:
Object
  • Object
show all
Defined in:
lib/msf/base/sessions/modem.rb

Direct Known Subclasses

TcpClientChannel, UdpChannel

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(session, cid, conn, params) ⇒ ChannelBase

Returns a new instance of ChannelBase.



70
71
72
73
74
75
76
77
# File 'lib/msf/base/sessions/modem.rb', line 70

def initialize(session, cid, conn, params)
  @session = session
  @cid = cid
  @conn = conn
  @params = params
  @mutex = Mutex.new
  @remote_closed = false
end

Instance Attribute Details

#cidObject (readonly)

Returns the value of attribute cid.



112
113
114
# File 'lib/msf/base/sessions/modem.rb', line 112

def cid
  @cid
end

#paramsObject (readonly)

Returns the value of attribute params.



112
113
114
# File 'lib/msf/base/sessions/modem.rb', line 112

def params
  @params
end

Instance Method Details

#closeObject



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/msf/base/sessions/modem.rb', line 94

def close
  cid = nil
  should_close_connection = false
  @mutex.synchronize do
    return if closed?

    cid = @cid
    should_close_connection = !@remote_closed
    @cid = nil
    @remote_closed = true
  end

  close_connection if should_close_connection
  stop_reader_thread
  @session.remove_channel(cid)
  cleanup_abstraction
end

#closed?Boolean

Returns:

  • (Boolean)


79
80
81
# File 'lib/msf/base/sessions/modem.rb', line 79

def closed?
  @cid.nil?
end

#remote_closedObject



87
88
89
90
91
92
# File 'lib/msf/base/sessions/modem.rb', line 87

def remote_closed
  return unless mark_remote_closed

  notify_remote_closed
  close_connection
end

#remote_closed?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/msf/base/sessions/modem.rb', line 83

def remote_closed?
  @mutex.synchronize { @remote_closed }
end