From 6cc950d76f7c2c8ea94014e017fe09740928b1ff Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 3 Mar 2011 00:05:06 +0100 Subject: [PATCH] captcha_host must have the port number to get protocol (EJAB-1418) --- doc/guide.tex | 10 +++++----- src/ejabberd.cfg.example | 3 +-- src/ejabberd_captcha.erl | 4 ++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/doc/guide.tex b/doc/guide.tex index c259867a1..64bd61d01 100644 --- a/doc/guide.tex +++ b/doc/guide.tex @@ -1709,11 +1709,11 @@ The configurable options are: \titem{\{captcha\_cmd, Path\}} Full path to a script that generates the image. The default value is an empty string: \term{""} - \titem{\{captcha\_host, Host\}} - Host part of the URL sent to the user. - You can include the port number. - The URL sent to the user is formed by: \term{http://Host/captcha/} - The default value is the first hostname configured. + \titem{\{captcha\_host, HostPort\}} + 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. \end{description} Additionally, an \term{ejabberd\_http} listener must be enabled with the \term{captcha} option. diff --git a/src/ejabberd.cfg.example b/src/ejabberd.cfg.example index 81a44e4ef..603064f6b 100644 --- a/src/ejabberd.cfg.example +++ b/src/ejabberd.cfg.example @@ -480,8 +480,7 @@ %% %%{captcha_cmd, "/lib/ejabberd/priv/bin/captcha.sh"}. -%% -%% Host part of the URL sent to the user. +%% Host for the URL and port where ejabberd listens for CAPTCHA requests. %% %%{captcha_host, "example.org:5280"}. diff --git a/src/ejabberd_captcha.erl b/src/ejabberd_captcha.erl index cdcfefe53..9ddd4f142 100644 --- a/src/ejabberd_captcha.erl +++ b/src/ejabberd_captcha.erl @@ -626,12 +626,12 @@ get_prog_name() -> %% @doc (Str::string()) -> string() get_url(Str) -> CaptchaHost = ejabberd_config:get_local_option(captcha_host), - TransferProt = atom_to_list(get_transfer_protocol(CaptchaHost)), case CaptchaHost of Host when is_list(Host) -> + TransferProt = atom_to_list(get_transfer_protocol(CaptchaHost)), TransferProt ++ "://" ++ Host ++ "/captcha/" ++ Str; _ -> - TransferProt ++ "://" ++ ?MYNAME ++ "/captcha/" ++ Str + "http://" ++ ?MYNAME ++ ":5280/captcha/" ++ Str end. get_transfer_protocol(CaptchaHost) ->