Sha256: 5de762b278f165f0ceef539e527420aa87a3c271fa05338c371c632631a7a6e3
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
class ProxyMachine class ServerConnection < EventMachine::Connection def self.request(host, port, client_side) EventMachine.connect(host, port, self, client_side) end def initialize(conn) @client_side = conn @connected = false @data_received = false @timeout = nil end def receive_data(data) fail "receive_data called after raw proxy enabled" if @data_received @data_received = true @client_side.send_data(data) proxy_incoming_to @client_side end def connection_completed @connected = Time.now @timeout = comm_inactivity_timeout || 0.0 @client_side.server_connection_success end def unbind now = Time.now if !@connected @client_side.server_connection_failed elsif !@data_received if @timeout > 0.0 && (elapsed = now - @connected) >= @timeout # EM aborted the connection due to an inactivity timeout @client_side.server_inactivity_timeout(@timeout, elapsed) else # server disconnected soon after connecting without sending data # treat this like a failed server connection @client_side.server_connection_failed end else @client_side.close_connection_after_writing end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
proxymachine-1.2.0 | lib/proxymachine/server_connection.rb |