mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-24 16:23:40 +01:00
Support more captcha_host value formats (EJAB-1418)
This commit is contained in:
parent
449e56ed52
commit
7d7621c67c
@ -1634,13 +1634,13 @@ The configurable options are:
|
||||
Full path to a script that generates the image.
|
||||
The default value is an empty string: \term{""}
|
||||
\titem{\{captcha\_host, ProtocolHostPort\}}
|
||||
Host part of the URL sent to the user,
|
||||
and the port number where ejabberd listens for CAPTCHA requests.
|
||||
The URL sent to the user is formed by: \term{http://Host:Port/captcha/}
|
||||
The default value is: the first hostname configured, and port 5280.
|
||||
If the port number you specify does not match exactly an ejabberd listener
|
||||
ProtocolHostPort is a string with the host, and optionally the Protocol and Port number.
|
||||
It must identify where ejabberd listens for CAPTCHA requests.
|
||||
The URL sent to the user is formed by: \term{Protocol://Host:Port/captcha/}
|
||||
The default value is: protocol \term{http}, the first hostname configured, and port \term{80}.
|
||||
If you specify a port number that does not match exactly an ejabberd listener
|
||||
(because you are using a reverse proxy or other port-forwarding tool),
|
||||
then specify also the transfer protocol, as seen in the example below.
|
||||
then you must specify the transfer protocol, as seen in the example below.
|
||||
\end{description}
|
||||
|
||||
Additionally, an \term{ejabberd\_http} listener must be enabled with the \term{captcha} option.
|
||||
@ -1653,6 +1653,7 @@ Example configuration:
|
||||
{captcha_cmd, "/lib/ejabberd/priv/bin/captcha.sh"}.
|
||||
{captcha_host, "example.org:5280"}.
|
||||
%% {captcha_host, "https://example.org:443"}.
|
||||
%% {captcha_host, "http://example.com"}.
|
||||
|
||||
{listen,
|
||||
[
|
||||
|
@ -407,13 +407,17 @@ get_prog_name() ->
|
||||
get_url(Str) ->
|
||||
CaptchaHost = ejabberd_config:get_local_option(captcha_host),
|
||||
case string:tokens(CaptchaHost, ":") of
|
||||
[TransferProt, Host, PortString] ->
|
||||
TransferProt ++ ":" ++ Host ++ ":" ++ PortString ++ "/captcha/" ++ Str;
|
||||
[Host] ->
|
||||
"http://" ++ Host ++ "/captcha/" ++ Str;
|
||||
["http"++_ = TransferProt, Host] ->
|
||||
TransferProt ++ ":" ++ Host ++ "/captcha/" ++ Str;
|
||||
[Host, PortString] ->
|
||||
TransferProt = atom_to_list(get_transfer_protocol(PortString)),
|
||||
TransferProt ++ "://" ++ Host ++ ":" ++ PortString ++ "/captcha/" ++ Str;
|
||||
[TransferProt, Host, PortString] ->
|
||||
TransferProt ++ ":" ++ Host ++ ":" ++ PortString ++ "/captcha/" ++ Str;
|
||||
_ ->
|
||||
"http://" ++ ?MYNAME ++ ":5280/captcha/" ++ Str
|
||||
"http://" ++ ?MYNAME ++ "/captcha/" ++ Str
|
||||
end.
|
||||
|
||||
get_transfer_protocol(PortString) ->
|
||||
|
Loading…
Reference in New Issue
Block a user