Module ranch_proxy_protocol

Ranch protocol handling for the HA Proxy PROXY protocol http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt

Copyright © (C) 2015, Heroku

Description

Ranch protocol handling for the HA Proxy PROXY protocol http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt

Data Types

opts()

opts() = ranch_ssl:opts() | ranch_tcp:opts()

proxy_opts()

proxy_opts() = [{source_address, inet:ip_address()} | {source_port, inet:port_number()} | {dest_address, inet:ip_address()} | {dest_port, inet:port_number()}]

proxy_protocol_info()

proxy_protocol_info() = {{inet:ip_address(), inet:port_number()}, {inet:ip_address(), inet:port_number()}}

proxy_socket()

abstract datatype: proxy_socket()

transport()

transport() = module()

Function Index

accept/3
accept_ack/3
bearer_port/2
close/2
connect/5
connection_info/1
connection_info/2
controlling_process/3
get_csocket/1
getopts/3
getstat/2
getstat/3
listen/2
listen_port/2
match_port/2
opts_from_socket/2
peername/2
proxyname/2
recv/4
recv/4
send/3
sendfile/6
set_csocket/2
setopts/3
shutdown/3
sockname/2

Function Details

accept/3

accept(Transport::transport(), Proxy_socket::proxy_socket(), Timeout::timeout()) -> {ok, proxy_socket()} | {error, closed | timeout | not_proxy_protocol | {timeout, proxy_handshake} | atom()}

accept_ack/3

accept_ack(Transport::transport(), Proxy_socket::proxy_socket(), Timeout::pos_integer()) -> ok

bearer_port/2

bearer_port(X1::transport(), Proxy_socket::proxy_socket()) -> port()

close/2

close(Transport::transport(), Proxy_socket::proxy_socket()) -> ok

connect/5

connect(Transport::transport(), Host::inet:ip_address() | inet:hostname(), Port::inet:port_number(), Opts::any(), ProxyOpts::proxy_opts()) -> {ok, proxy_socket()} | {error, atom()}

connection_info/1

connection_info(Proxy_socket::proxy_socket()) -> {ok, list()}

connection_info/2

connection_info(Proxy_socket::proxy_socket(), Items::[protocol | cipher_suite | sni_hostname]) -> {ok, list()}

controlling_process/3

controlling_process(Transport::transport(), Proxy_socket::proxy_socket(), Pid::pid()) -> ok | {error, closed | not_owner | atom()}

get_csocket/1

get_csocket(Proxy_socket::proxy_socket()) -> port()

getopts/3

getopts(Transport::transport(), Proxy_socket::proxy_socket(), Opts::[atom()]) -> {ok, list()} | {error, atom()}

getstat/2

getstat(Transport::transport(), Proxy_socket::proxy_socket()) -> {ok, list()} | {error, atom()}

getstat/3

getstat(Transport::transport(), Proxy_socket::proxy_socket(), OptionNames::[atom()]) -> {ok, list()} | {error, atom()}

listen/2

listen(Transport::transport(), Opts::opts()) -> {ok, proxy_socket()} | {error, atom()}

listen_port/2

listen_port(X1::transport(), Proxy_socket::proxy_socket()) -> port()

match_port/2

match_port(Transport::transport(), Socket::proxy_socket()) -> port()

opts_from_socket/2

opts_from_socket(Transport::atom(), Socket::proxy_socket()) -> ranch_proxy_protocol:proxy_opts()

peername/2

peername(Transport::transport(), Proxy_socket::proxy_socket()) -> {ok, {inet:ip_address(), inet:port_number()}} | {error, atom()}

proxyname/2

proxyname(X1::transport(), Proxy_socket::proxy_socket()) -> {ok, proxy_protocol_info()}

recv/4

recv(Transport::transport(), Proxy_socket::proxy_socket(), Length::non_neg_integer(), Timeout::timeout()) -> {ok, any()} | {error, closed | atom()}

recv/4

recv(Transport, Proxy_socket, Length, Timeout) -> any()

send/3

send(Transport::transport(), Proxy_socket::proxy_socket(), Packet::iodata()) -> ok | {error, atom()}

sendfile/6

sendfile(Transport::transport(), Proxy_socket::proxy_socket(), Filename::file:name_all() | file:fd(), Offset::non_neg_integer(), Bytes::non_neg_integer(), Opts::[{chunk_size, non_neg_integer()}]) -> {ok, non_neg_integer()} | {error, atom()}

set_csocket/2

set_csocket(ProxySocket::proxy_socket(), NewCSocket::port() | ssl:sslsocket()) -> proxy_socket()

setopts/3

setopts(Transport::transport(), Proxy_socket::proxy_socket(), Opts::list()) -> ok | {error, atom()}

shutdown/3

shutdown(Transport::transport(), Proxy_socket::proxy_socket(), How::read | write | read_write) -> ok | {error, atom()}

sockname/2

sockname(Transport::transport(), Proxy_socket::proxy_socket()) -> {ok, {inet:ip_address(), inet:port_number()}} | {error, atom()}


Generated by EDoc