[ejabberd] Cherry-picked three new patches from upstream trunk
Peter Lemenkov
peter at fedoraproject.org
Mon Sep 10 19:18:54 UTC 2012
commit bf0dc18ab8692273cb452342b2edde6001c7d1fa
Author: Fedora Build <lemenkov at gmail.com>
Date: Mon Sep 10 23:18:41 2012 +0400
Cherry-picked three new patches from upstream trunk
Signed-off-by: Fedora Build <lemenkov at gmail.com>
...-service-example-name-to-match-actual-one.patch | 6 +-
...berd-0002-Fixed-delays-in-s2s-connections.patch | 8 +-
ejabberd-0003-Introducing-mod_admin_extra.patch | 4 +-
...04-Fedora-specific-changes-to-ejabberdctl.patch | 6 +-
...Install-.so-objects-with-0755-permissions.patch | 6 +-
...-Use-versioned-directory-for-storing-docs.patch | 6 +-
...L-GSSAPI-authentication-thanks-to-Mikael-.patch | 22 ++++----
...08-Disable-INET_DIST_INTERFACE-by-default.patch | 6 +-
...-first-stop-listeners-then-modules-thanks.patch | 25 ++++++++
...e-so-ejabberdctl-number-of-arguments-erro.patch | 42 ++++++++++++++
...ess-when-auth-attempt-fails-thanks-to-Zac.patch | 59 ++++++++++++++++++++
ejabberd.spec | 14 ++++-
12 files changed, 171 insertions(+), 33 deletions(-)
---
diff --git a/ejabberd-0001-Fix-PAM-service-example-name-to-match-actual-one.patch b/ejabberd-0001-Fix-PAM-service-example-name-to-match-actual-one.patch
index a7db2a3..f5b2add 100644
--- a/ejabberd-0001-Fix-PAM-service-example-name-to-match-actual-one.patch
+++ b/ejabberd-0001-Fix-PAM-service-example-name-to-match-actual-one.patch
@@ -1,11 +1,11 @@
From 72718b8fcbb19b34e348efcb874fa480e83d7a02 Mon Sep 17 00:00:00 2001
From: Peter Lemenkov <lemenkov at gmail.com>
Date: Tue, 16 Feb 2010 16:03:38 +0300
-Subject: [PATCH 1/8] Fix PAM service example name to match actual one
+Subject: [PATCH 01/11] Fix PAM service example name to match actual one
Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
---
- src/ejabberd.cfg.example | 2 +-
+ src/ejabberd.cfg.example | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ejabberd.cfg.example b/src/ejabberd.cfg.example
@@ -22,5 +22,5 @@ index a4068ad..9b24a4a 100644
%%
%% Authentication using LDAP
--
-1.7.10.4
+1.7.11.5
diff --git a/ejabberd-0002-Fixed-delays-in-s2s-connections.patch b/ejabberd-0002-Fixed-delays-in-s2s-connections.patch
index d161c21..d22bd56 100644
--- a/ejabberd-0002-Fixed-delays-in-s2s-connections.patch
+++ b/ejabberd-0002-Fixed-delays-in-s2s-connections.patch
@@ -1,15 +1,15 @@
From 30037ec8a73263f0d0524b2e1409736838cbb33b Mon Sep 17 00:00:00 2001
From: Sergei Golovan <sgolovan at nes.ru>
Date: Tue, 16 Feb 2010 16:07:37 +0300
-Subject: [PATCH 2/8] Fixed delays in s2s connections.
+Subject: [PATCH 02/11] Fixed delays in s2s connections.
Patch by Sergei Golovan increases timeouts in S2S and removes horrible 5-minute
delay between remote server connection attempts after a falure (in case of
server is down it would be reasonable, but what happens much more often is a
network split when the delay is inadmissible).
---
- src/ejabberd_s2s_in.erl | 2 +-
- src/ejabberd_s2s_out.erl | 5 +++--
+ src/ejabberd_s2s_in.erl | 2 +-
+ src/ejabberd_s2s_out.erl | 5 +++--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/ejabberd_s2s_in.erl b/src/ejabberd_s2s_in.erl
@@ -49,5 +49,5 @@ index 65711fa..cab413f 100644
end;
open_socket(closed, StateData) ->
--
-1.7.10.4
+1.7.11.5
diff --git a/ejabberd-0003-Introducing-mod_admin_extra.patch b/ejabberd-0003-Introducing-mod_admin_extra.patch
index c2ed978..8401ef9 100644
--- a/ejabberd-0003-Introducing-mod_admin_extra.patch
+++ b/ejabberd-0003-Introducing-mod_admin_extra.patch
@@ -1,7 +1,7 @@
From 35ddb138ec297a1b5c456fdca73b2ed0cc10c1cf Mon Sep 17 00:00:00 2001
From: Badlop <badlop at process-one.net>
Date: Tue, 16 Feb 2010 16:12:17 +0300
-Subject: [PATCH 3/8] Introducing mod_admin_extra
+Subject: [PATCH 03/11] Introducing mod_admin_extra
Adds the mod_admin_extra module to ejabberd.
This module extends the functionality provided by ejabberdctl
@@ -1603,5 +1603,5 @@ index 0000000..1cef25a
+is_glob_match(String, Glob) ->
+ is_regexp_match(String, ejabberd_regexp:sh_to_awk(Glob)).
--
-1.7.10.4
+1.7.11.5
diff --git a/ejabberd-0004-Fedora-specific-changes-to-ejabberdctl.patch b/ejabberd-0004-Fedora-specific-changes-to-ejabberdctl.patch
index 71b6f0c..f75606f 100644
--- a/ejabberd-0004-Fedora-specific-changes-to-ejabberdctl.patch
+++ b/ejabberd-0004-Fedora-specific-changes-to-ejabberdctl.patch
@@ -1,11 +1,11 @@
From 2c01b391dcfdc3cb34f5984a10a1bba3ca341c02 Mon Sep 17 00:00:00 2001
From: Peter Lemenkov <lemenkov at gmail.com>
Date: Tue, 16 Feb 2010 16:30:05 +0300
-Subject: [PATCH 4/8] Fedora-specific changes to ejabberdctl
+Subject: [PATCH 04/11] Fedora-specific changes to ejabberdctl
Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
---
- src/ejabberdctl.template | 8 ++++----
+ src/ejabberdctl.template | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/ejabberdctl.template b/src/ejabberdctl.template
@@ -44,5 +44,5 @@ index 0960f9a..c22478a 100644
done
if [ "$ID" -eq "$EJID" ] ; then
--
-1.7.10.4
+1.7.11.5
diff --git a/ejabberd-0005-Install-.so-objects-with-0755-permissions.patch b/ejabberd-0005-Install-.so-objects-with-0755-permissions.patch
index a2d0ec9..f0f535b 100644
--- a/ejabberd-0005-Install-.so-objects-with-0755-permissions.patch
+++ b/ejabberd-0005-Install-.so-objects-with-0755-permissions.patch
@@ -1,11 +1,11 @@
From 924dab202126d7644a8e50e81d1b2de21875bb7f Mon Sep 17 00:00:00 2001
From: Peter Lemenkov <lemenkov at gmail.com>
Date: Sat, 12 Jun 2010 14:14:52 +0400
-Subject: [PATCH 5/8] Install *.so objects with 0755 permissions
+Subject: [PATCH 05/11] Install *.so objects with 0755 permissions
Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
---
- src/Makefile.in | 2 +-
+ src/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile.in b/src/Makefile.in
@@ -22,5 +22,5 @@ index 42af5b2..64ed856 100644
# Translated strings
install -d $(MSGSDIR)
--
-1.7.10.4
+1.7.11.5
diff --git a/ejabberd-0006-Use-versioned-directory-for-storing-docs.patch b/ejabberd-0006-Use-versioned-directory-for-storing-docs.patch
index 854ad81..edd0ec9 100644
--- a/ejabberd-0006-Use-versioned-directory-for-storing-docs.patch
+++ b/ejabberd-0006-Use-versioned-directory-for-storing-docs.patch
@@ -1,7 +1,7 @@
From 889d68a28b4442cf71e8c4ad335a98718402f4a5 Mon Sep 17 00:00:00 2001
From: Peter Lemenkov <lemenkov at gmail.com>
Date: Sat, 12 Jun 2010 16:12:11 +0400
-Subject: [PATCH 6/8] Use versioned directory for storing docs
+Subject: [PATCH 06/11] Use versioned directory for storing docs
It's also a good idea to store doc-files under the versioned directory.
This may greatly simplify parallel installation of different versions of
@@ -14,7 +14,7 @@ http://www.gnu.org/software/autoconf/manual/html_node/Initializing-configure.htm
Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
---
- src/Makefile.in | 2 +-
+ src/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile.in b/src/Makefile.in
@@ -31,5 +31,5 @@ index 64ed856..43b5e1f 100644
DOCDIR = $(DESTDIR)@docdir@
--
-1.7.10.4
+1.7.11.5
diff --git a/ejabberd-0007-Support-SASL-GSSAPI-authentication-thanks-to-Mikael-.patch b/ejabberd-0007-Support-SASL-GSSAPI-authentication-thanks-to-Mikael-.patch
index 8795e99..37edf83 100644
--- a/ejabberd-0007-Support-SASL-GSSAPI-authentication-thanks-to-Mikael-.patch
+++ b/ejabberd-0007-Support-SASL-GSSAPI-authentication-thanks-to-Mikael-.patch
@@ -1,19 +1,19 @@
From f2a612dba3d6ab5dd5b522f74c493c78cdfed6c9 Mon Sep 17 00:00:00 2001
From: Badlop <badlop at process-one.net>
Date: Thu, 15 Apr 2010 17:20:16 +0200
-Subject: [PATCH 7/8] Support SASL GSSAPI authentication (thanks to Mikael
+Subject: [PATCH 07/11] Support SASL GSSAPI authentication (thanks to Mikael
Magnusson)(EJAB-831)
---
- src/cyrsasl.erl | 71 +++++++++++++++----
- src/cyrsasl.hrl | 15 ++++
- src/cyrsasl_anonymous.erl | 6 +-
- src/cyrsasl_digest.erl | 6 +-
- src/cyrsasl_gssapi.erl | 166 +++++++++++++++++++++++++++++++++++++++++++++
- src/cyrsasl_plain.erl | 6 +-
- src/cyrsasl_scram.erl | 5 +-
- src/ejabberd_c2s.erl | 12 +++-
- src/ejabberd_socket.erl | 19 ++++++
+ src/cyrsasl.erl | 71 +++++++++++++++-----
+ src/cyrsasl.hrl | 15 +++++
+ src/cyrsasl_anonymous.erl | 6 +-
+ src/cyrsasl_digest.erl | 6 +-
+ src/cyrsasl_gssapi.erl | 166 ++++++++++++++++++++++++++++++++++++++++++++++
+ src/cyrsasl_plain.erl | 6 +-
+ src/cyrsasl_scram.erl | 5 +-
+ src/ejabberd_c2s.erl | 12 +++-
+ src/ejabberd_socket.erl | 19 ++++++
9 files changed, 281 insertions(+), 25 deletions(-)
create mode 100644 src/cyrsasl.hrl
create mode 100644 src/cyrsasl_gssapi.erl
@@ -501,5 +501,5 @@ index 254751b..3509018 100644
%% Internal functions
%%====================================================================
--
-1.7.10.4
+1.7.11.5
diff --git a/ejabberd-0008-Disable-INET_DIST_INTERFACE-by-default.patch b/ejabberd-0008-Disable-INET_DIST_INTERFACE-by-default.patch
index a9b0b5b..21bc3e0 100644
--- a/ejabberd-0008-Disable-INET_DIST_INTERFACE-by-default.patch
+++ b/ejabberd-0008-Disable-INET_DIST_INTERFACE-by-default.patch
@@ -1,11 +1,11 @@
From a6a1ee5a9d5a8400415a96456dbb79f4341c3410 Mon Sep 17 00:00:00 2001
From: Peter Lemenkov <lemenkov at gmail.com>
Date: Sat, 18 Jun 2011 23:24:28 +0400
-Subject: [PATCH 8/8] Disable INET_DIST_INTERFACE by default
+Subject: [PATCH 08/11] Disable INET_DIST_INTERFACE by default
Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
---
- src/ejabberdctl.cfg.example | 2 +-
+ src/ejabberdctl.cfg.example | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ejabberdctl.cfg.example b/src/ejabberdctl.cfg.example
@@ -22,5 +22,5 @@ index b72058a..5ee43cf 100644
#.
#' ERL_EPMD_ADDRESS: IP addresses where epmd listens for connections
--
-1.7.10.4
+1.7.11.5
diff --git a/ejabberd-0009-On-shutdown-first-stop-listeners-then-modules-thanks.patch b/ejabberd-0009-On-shutdown-first-stop-listeners-then-modules-thanks.patch
new file mode 100644
index 0000000..d24d3b3
--- /dev/null
+++ b/ejabberd-0009-On-shutdown-first-stop-listeners-then-modules-thanks.patch
@@ -0,0 +1,25 @@
+From 15e0cac1523696eac5e9c09b8447429457ff6901 Mon Sep 17 00:00:00 2001
+From: Badlop <badlop at process-one.net>
+Date: Wed, 25 Jul 2012 13:02:21 +0200
+Subject: [PATCH 09/11] On shutdown, first stop listeners, then modules
+ (thanks to Vishal Xica)(EJAB-1566)
+
+---
+ src/ejabberd_app.erl | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/ejabberd_app.erl b/src/ejabberd_app.erl
+index ea467cb..3550f58 100644
+--- a/src/ejabberd_app.erl
++++ b/src/ejabberd_app.erl
+@@ -78,6 +78,7 @@ start(_, _) ->
+ %% This function is called when an application is about to be stopped,
+ %% before shutting down the processes of the application.
+ prep_stop(State) ->
++ ejabberd_listener:stop_listeners(),
+ stop_modules(),
+ ejabberd_admin:stop(),
+ broadcast_c2s_shutdown(),
+--
+1.7.11.5
+
diff --git a/ejabberd-0010-Added-clause-so-ejabberdctl-number-of-arguments-erro.patch b/ejabberd-0010-Added-clause-so-ejabberdctl-number-of-arguments-erro.patch
new file mode 100644
index 0000000..e416892
--- /dev/null
+++ b/ejabberd-0010-Added-clause-so-ejabberdctl-number-of-arguments-erro.patch
@@ -0,0 +1,42 @@
+From e04d73120c0b236acb26816e0464b1cd79d2c0bd Mon Sep 17 00:00:00 2001
+From: Badlop <badlop at process-one.net>
+Date: Mon, 27 Aug 2012 16:38:52 +0200
+Subject: [PATCH 10/11] Added clause so ejabberdctl number of arguments error
+ report works with R15
+
+---
+ src/ejabberd_ctl.erl | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/src/ejabberd_ctl.erl b/src/ejabberd_ctl.erl
+index ceb4c34..01b07ea 100644
+--- a/src/ejabberd_ctl.erl
++++ b/src/ejabberd_ctl.erl
+@@ -292,6 +292,7 @@ call_command([CmdString | Args], Auth, AccessCommands) ->
+ Result = ejabberd_commands:execute_command(AccessCommands, Auth, Command,
+ ArgsFormatted),
+ format_result(Result, ResultFormat);
++ %% This case clause is for Erlang R14 and older
+ {'EXIT', {function_clause,[{lists,zip,[A1, A2]} | _]}} ->
+ {NumCompa, TextCompa} =
+ case {length(A1), length(A2)} of
+@@ -300,6 +301,16 @@ call_command([CmdString | Args], Auth, AccessCommands) ->
+ end,
+ {io_lib:format("Error: the command ~p requires ~p ~s.",
+ [CmdString, NumCompa, TextCompa]),
++ wrong_command_arguments};
++ %% This case clause is for Erlang R15 and newer
++ {'EXIT', {function_clause,[{lists,zip,[A1, A2],_} | _]}} ->
++ {NumCompa, TextCompa} =
++ case {length(A1), length(A2)} of
++ {L1, L2} when L1 < L2 -> {L2-L1, "less argument"};
++ {L1, L2} when L1 > L2 -> {L1-L2, "more argument"}
++ end,
++ {io_lib:format("Error: the command ~p requires ~p ~s.",
++ [CmdString, NumCompa, TextCompa]),
+ wrong_command_arguments}
+ end
+ end.
+--
+1.7.11.5
+
diff --git a/ejabberd-0011-Log-IP-address-when-auth-attempt-fails-thanks-to-Zac.patch b/ejabberd-0011-Log-IP-address-when-auth-attempt-fails-thanks-to-Zac.patch
new file mode 100644
index 0000000..e624b1f
--- /dev/null
+++ b/ejabberd-0011-Log-IP-address-when-auth-attempt-fails-thanks-to-Zac.patch
@@ -0,0 +1,59 @@
+From 6ce4398360d5bab4322eb1ca93550c0cb553f94e Mon Sep 17 00:00:00 2001
+From: Badlop <badlop at process-one.net>
+Date: Mon, 27 Aug 2012 17:40:01 +0200
+Subject: [PATCH 11/11] Log IP address when auth attempt fails (thanks to Zach
+ Calvert)
+
+---
+ src/ejabberd_c2s.erl | 15 +++++++++------
+ 1 file changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
+index 038d3c5..8e4a7b6 100644
+--- a/src/ejabberd_c2s.erl
++++ b/src/ejabberd_c2s.erl
+@@ -564,10 +564,11 @@ wait_for_auth({xmlstreamelement, El}, StateData) ->
+ fsm_next_state_pack(session_established,
+ NewStateData);
+ _ ->
++ IP = peerip(StateData#state.sockmod, StateData#state.socket),
+ ?INFO_MSG(
+- "(~w) Failed legacy authentication for ~s",
++ "(~w) Failed legacy authentication for ~s from IP ~s (~w)",
+ [StateData#state.socket,
+- jlib:jid_to_string(JID)]),
++ jlib:jid_to_string(JID), jlib:ip_to_list(IP), IP]),
+ Err = jlib:make_error_reply(
+ El, ?ERR_NOT_AUTHORIZED),
+ send_element(StateData, Err),
+@@ -654,10 +655,11 @@ wait_for_feature_request({xmlstreamelement, El}, StateData) ->
+ StateData#state{
+ sasl_state = NewSASLState});
+ {error, Error, Username} ->
++ IP = peerip(StateData#state.sockmod, StateData#state.socket),
+ ?INFO_MSG(
+- "(~w) Failed authentication for ~s@~s",
++ "(~w) Failed authentication for ~s@~s from IP ~s (~w)",
+ [StateData#state.socket,
+- Username, StateData#state.server]),
++ Username, StateData#state.server, jlib:ip_to_list(IP), IP]),
+ send_element(StateData,
+ {xmlelement, "failure",
+ [{"xmlns", ?NS_SASL}],
+@@ -807,10 +809,11 @@ wait_for_sasl_response({xmlstreamelement, El}, StateData) ->
+ fsm_next_state(wait_for_sasl_response,
+ StateData#state{sasl_state = NewSASLState});
+ {error, Error, Username} ->
++ IP = peerip(StateData#state.sockmod, StateData#state.socket),
+ ?INFO_MSG(
+- "(~w) Failed authentication for ~s@~s",
++ "(~w) Failed authentication for ~s@~s from IP ~s (~w)",
+ [StateData#state.socket,
+- Username, StateData#state.server]),
++ Username, StateData#state.server, jlib:ip_to_list(IP), IP]),
+ send_element(StateData,
+ {xmlelement, "failure",
+ [{"xmlns", ?NS_SASL}],
+--
+1.7.11.5
+
diff --git a/ejabberd.spec b/ejabberd.spec
index e88d8f3..9c98a83 100644
--- a/ejabberd.spec
+++ b/ejabberd.spec
@@ -11,7 +11,7 @@
Name: ejabberd
Version: 2.1.11
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: A distributed, fault-tolerant Jabber/XMPP server
Group: Applications/Internet
@@ -47,6 +47,12 @@ Patch6: ejabberd-0006-Use-versioned-directory-for-storing-docs.patch
Patch7: ejabberd-0007-Support-SASL-GSSAPI-authentication-thanks-to-Mikael-.patch
# Disable IP restriction for ejabberdctl (seems that it doesn't work well)
Patch8: ejabberd-0008-Disable-INET_DIST_INTERFACE-by-default.patch
+# cherry-picked from trunk
+Patch9: ejabberd-0009-On-shutdown-first-stop-listeners-then-modules-thanks.patch
+# cherry-picked from trunk
+Patch10: ejabberd-0010-Added-clause-so-ejabberdctl-number-of-arguments-erro.patch
+# cherry-picked from trunk
+Patch11: ejabberd-0011-Log-IP-address-when-auth-attempt-fails-thanks-to-Zac.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -119,6 +125,9 @@ Documentation for ejabberd.
%patch6 -p1 -b .versioned_docdir
%patch7 -p1 -b .gssapi
%patch8 -p1 -b .disable_ip_restriction_for_ejabberdctl
+%patch9 -p1 -b .stop_listeners_first
+%patch10 -p1 -b .r15b
+%patch11 -p1 -b .log_intruders_ip
# FIXME last-minute fix for 2.1.11 only
sed -i -e "s,2.1.x,2.1.11,g" src/configure
@@ -392,6 +401,9 @@ rm -rf %{buildroot}
%doc %{_docdir}/%{name}-%{version}/*.txt
%changelog
+* Mon Sep 10 2012 Peter Lemenkov <lemenkov at gmail.com> - 2.1.11-5
+- Cherry-picked three new patches from upstream trunk
+
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.1.11-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
More information about the scm-commits
mailing list