= ranch:set_protocol_options(3)

== Name

ranch:set_protocol_options - Set the protocol options

== Description

[source,erlang]
----
set_protocol_options(Ref       :: ranch:ref(),
                     ProtoOpts :: any())
    -> ok
----

Set the protocol options.

The change will be applied immediately for all new connections.
Old connections will not receive the new options.

Note that the complete set of protocol options is replaced. To update a subset
of the options, it is recommended to get the current protocol options using
link:man:ranch:get_protocol_options(3)[ranch:get_protocol_options(3)], update
them and then set them back using this function.

== Arguments

Ref::

The listener name.

ProtoOpts::

The new protocol options.

== Return value

The atom `ok` is always returned. It can be safely ignored.

== Examples

.Set the protocol options
[source,erlang]
----
ranch:set_protocol_options(example, ProtoOpts).
----

.Update some of the protocol options
[source,erlang]
----
ProtoOpts0 = ranch:get_protocol_options(example),
ProtoOpts = ProtoOpts0#{request_timeout => 2000},
ranch:set_protocol_options(example, ProtoOpts).
----

== See also

link:man:ranch:get_protocol_options(3)[ranch:get_protocol_options(3)],
link:man:ranch:set_max_connections(3)[ranch:set_max_connections(3)],
link:man:ranch:set_transport_options(3)[ranch:set_transport_options(3)],
link:man:ranch(3)[ranch(3)]
