Sha256: c966870ce7d9b095fbf9e9a7b390bc9cdbf81639dfb0d1db018738b6c11dccff
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
module Shadowsocks module Server class RequestConnector < ::Shadowsocks::Tunnel def post_init p "connecting #{server.remote_addr}:#{server.remote_port} via #{server.config.server}" server.cached_pieces.each { |piece| send_data piece } server.cached_pieces = nil server.stage = 5 end def receive_data data server.send_data encrypt(data) outbound_scheduler end end class ServerListener < ::Shadowsocks::Listener private def data_handler data begin data = decrypt data rescue Exception => e warn e connection_cleanup end case stage when 0 fireup_tunnel data when 4 cached_pieces.push data when 5 connector.send_data(data) and return end end def fireup_tunnel data begin parse_data Shadowsocks::Parser::Server.new(data) @stage = 4 if data.size > header_length cached_pieces.push data[header_length, data.size] end @connector = EventMachine.connect @remote_addr, @remote_port, RequestConnector, self, crypto rescue Exception => e warn e connection_cleanup end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
shadowsocks-0.12 | lib/shadowsocks/server.rb |