module ProxyProtocol::Header

Public Instance Methods

ip_version(source_ip, dest_ip) click to toggle source
# File lib/proxyprotocol/header.rb, line 16
def ip_version(source_ip, dest_ip)
  if source_ip.ipv4? and dest_ip.ipv4?
    "TCP4"
  elsif source_ip.ipv6? and dest_ip.ipv6?
    "TCP6"
  end
end
proxy_protocol_header(source_ip, source_port, dest_ip, dest_port) click to toggle source
# File lib/proxyprotocol/header.rb, line 5
def proxy_protocol_header(source_ip, source_port, dest_ip, dest_port)
  if [source_ip, source_port, dest_ip, dest_port].include?(nil)
    "PROXY UNKNOWN\r\n"
  else
    source_ip = IPAddr.new(source_ip) unless source_ip.kind_of?(IPAddr)
    dest_ip = IPAddr.new(dest_ip) unless dest_ip.kind_of?(IPAddr)
    version = ip_version(source_ip, dest_ip)
    "PROXY #{version} #{source_ip.to_s} #{dest_ip.to_s} #{source_port} #{dest_port}\r\n"
  end
end