class RProxy::TargetConnection

Public Class Methods

new(client, disable_cb, buffer_size, usage_manager) click to toggle source
# File lib/r_proxy/target_connection.rb, line 4
def initialize(client, disable_cb, buffer_size, usage_manager)
  @disable_unbind_callback = disable_cb
  @client_connection = client
  @buffer_size = buffer_size
  @usage_manager = usage_manager
end

Public Instance Methods

assign_logger(logger) click to toggle source
# File lib/r_proxy/target_connection.rb, line 11
def assign_logger(logger)
  @logger = logger
end
assign_user_and_password(username, password) click to toggle source
# File lib/r_proxy/target_connection.rb, line 15
def assign_user_and_password(username, password)
  @username = username
  @password = password
end
connection_completed() click to toggle source
# File lib/r_proxy/target_connection.rb, line 20
def connection_completed
  response_proxy_connect_ready
end
proxy_target_unbound() click to toggle source
# File lib/r_proxy/target_connection.rb, line 24
def proxy_target_unbound
  close_connection
end
unbind() click to toggle source
# File lib/r_proxy/target_connection.rb, line 28
def unbind
  return if @disable_unbind_callback
  @usage_manager.report_usage(@username, @password, get_proxied_bytes)
end

Private Instance Methods

response_proxy_connect_ready() click to toggle source
# File lib/r_proxy/target_connection.rb, line 35
def response_proxy_connect_ready
  begin
    @client_connection.send_data(RProxy::Constants::HTTP_SUCCESS)
    @client_connection.proxy_incoming_to(self, @buffer_size)
    proxy_incoming_to(@client_connection, @buffer_size)
  rescue => e
    port, ip = Socket.unpack_sockaddr_in(get_peername)
    @logger.error("target ip: #{ip}, port: #{port}, #{e.message}") if @logger
  end
end