module ShadowsocksRuby::Protocols::BufferHelper
This module include helper methods for deal with @buffer.
Public Instance Methods
tcp_receive_from_localbackend_in_buffer(n)
click to toggle source
# File lib/shadowsocks_ruby/protocols/protocol.rb, line 141 def tcp_receive_from_localbackend_in_buffer n if n == -1 class << self alias tcp_receive_from_localbackend tcp_receive_from_localbackend_other_packet end return @buffer.slice!(0, @buffer.length) elsif n < @buffer.length return @buffer.slice!(0, n) else class << self alias tcp_receive_from_localbackend tcp_receive_from_localbackend_other_packet end if n == @buffer.length return @buffer.slice!(0, n) else data = async_recv(n - @buffer.length) return @buffer.slice!(0, n) << data end end end
tcp_receive_from_localbackend_other_packet_helper(n)
click to toggle source
# File lib/shadowsocks_ruby/protocols/protocol.rb, line 122 def tcp_receive_from_localbackend_other_packet_helper n if n == -1 return @buffer.slice!(0, @buffer.length) elsif n < @buffer.length class << self alias tcp_receive_from_localbackend tcp_receive_from_localbackend_in_buffer end return @buffer.slice!(0, n) else if n == @buffer.length return @buffer.slice!(0, n) else data = async_recv(n - @buffer.length) return @buffer.slice!(0, n) << data end end end
tcp_receive_from_remoteserver_in_buffer(n)
click to toggle source
# File lib/shadowsocks_ruby/protocols/protocol.rb, line 101 def tcp_receive_from_remoteserver_in_buffer n if n == -1 class << self alias tcp_receive_from_remoteserver tcp_receive_from_remoteserver_other_packet end return @buffer.slice!(0, @buffer.length) elsif n < @buffer.length return @buffer.slice!(0, n) else class << self alias tcp_receive_from_remoteserver tcp_receive_from_remoteserver_other_packet end if n == @buffer.length return @buffer.slice!(0, n) else data = async_recv(n - @buffer.length) return @buffer.slice!(0, n) << data end end end
tcp_receive_from_remoteserver_other_packet_helper(n)
click to toggle source
# File lib/shadowsocks_ruby/protocols/protocol.rb, line 83 def tcp_receive_from_remoteserver_other_packet_helper n if n == -1 return @buffer.slice!(0, @buffer.length) elsif n < @buffer.length class << self alias tcp_receive_from_remoteserver tcp_receive_from_remoteserver_in_buffer end return @buffer.slice!(0, n) else if n == @buffer.length return @buffer.slice!(0, n) else data = async_recv(n - @buffer.length) return @buffer.slice!(0, n) << data end end end