ranch:recv_proxy_header(3)

Name

ranch:recv_proxy_header - Receive the PROXY protocol header

Description

recv_proxy_header(ranch:ref(), timeout())
    -> {ok, ranch_proxy_header:proxy_info()}
     | {error, Reason :: atom()}
     | {error, protocol_error, HumanReadable :: atom()}

Receive the PROXY protocol header.

This function must be called before ranch:handshake/1,2 on newly accepted connections to read and parse the PROXY protocol header, if any.

Arguments

Ref

The listener name.

Timeout

Receive timeout in milliseconds.

Return value

An ok tuple is returned containing PROXY header information on success.

An error 2-tuple is returned when a socket error occurs.

An error 3-tuple is returned when a protocol error occurs and Ranch was not able to parse the PROXY header information. The third element contains a human-readable description of the error.

Changelog

  • 1.7: Function introduced.

Examples

Receive the PROXY protocol header
start_link(Ref, Transport, Opts) ->
    Pid = proc_lib:spawn_link(?MODULE, init,
        [Ref, Transport, Opts]),
    {ok, Pid}.

init(Ref, Transport, Opts) ->
    {ok, ProxyInfo} = ranch:recv_proxy_header(Ref, 1000),
    {ok, Socket} = ranch:handshake(Ref),
    loop(#state{ref=Ref, socket=Socket, transport=Transport,
        proxy_info=ProxyInfo, opts=Opts}).

See also

ranch:start_listener(3), ranch:handshake(3), ranch:remove_connection(3), ranch(3)

Ranch 2.3 Function Reference

Navigation

Version select

Sponsor me!

Support my work on Cowboy, Ranch, Gun and Erlang.mk via GitHub Sponsors. The funds cover domain names and development tools.