public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Peter Lemenkov <lemenkov@gmail.com>
To: git-commits@fedoraproject.org
Subject: [rpms/ejabberd] f45: Fixed LDAP and more
Date: Wed, 23 Sep 2026 19:07:01 GMT [thread overview]
Message-ID: <179019042181.1.15801607407712398464.rpms-ejabberd-debe20658df7@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/ejabberd
Branch : f45
Commit : debe20658df7108b6cb55885ecd8f0d9cebc36c4
Author : Peter Lemenkov <lemenkov@gmail.com>
Date : 2010-08-26T23:35:56+04:00
Stats : +287/-32 in 7 file(s)
URL : https://src.fedoraproject.org/rpms/ejabberd/c/debe20658df7108b6cb55885ecd8f0d9cebc36c4?branch=f45
Log:
Fixed LDAP and more
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
---
diff --git a/ejabberd-0010-Fix-http-poll.patch b/ejabberd-0010-Fix-http-poll.patch
deleted file mode 100644
index 3a98d94..0000000
--- a/ejabberd-0010-Fix-http-poll.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From cfca338f9548e05e254e39a605e63cbb5ec7421b Mon Sep 17 00:00:00 2001
-From: Peter Lemenkov <lemenkov@gmail.com>
-Date: Wed, 18 Aug 2010 14:09:57 +0400
-Subject: [PATCH 10/10] Fix http-poll
-
-Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
----
- src/web/ejabberd_http_poll.erl | 4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/src/web/ejabberd_http_poll.erl b/src/web/ejabberd_http_poll.erl
-index 0bdbc62..3de2ea4 100644
---- a/src/web/ejabberd_http_poll.erl
-+++ b/src/web/ejabberd_http_poll.erl
-@@ -271,6 +271,10 @@ handle_event(_Event, StateName, StateData) ->
- %% {stop, Reason, NewStateData} |
- %% {stop, Reason, Reply, NewStateData}
- %%----------------------------------------------------------------------
-+handle_sync_event({send, Packet}, _From, StateName, StateData) when is_binary(Packet) ->
-+ Output = StateData#state.output ++ lists:flatten(binary_to_list(Packet)),
-+ Reply = ok,
-+ {reply, Reply, StateName, StateData#state{output = Output}};
- handle_sync_event({send, Packet}, _From, StateName, StateData) ->
- Output = StateData#state.output ++ [lists:flatten(Packet)],
- Reply = ok,
---
-1.7.2.1
-
diff --git a/ejabberd-0010-Loading-ASN.1-driver-explicitly-to-avoid-races-in-LD.patch b/ejabberd-0010-Loading-ASN.1-driver-explicitly-to-avoid-races-in-LD.patch
new file mode 100644
index 0000000..e989690
--- /dev/null
+++ b/ejabberd-0010-Loading-ASN.1-driver-explicitly-to-avoid-races-in-LD.patch
@@ -0,0 +1,25 @@
+From c9ff37027805d1d72446b5bcbc1a60da0f2aaae4 Mon Sep 17 00:00:00 2001
+From: Evgeniy Khramtsov <ekhramtsov@process-one.net>
+Date: Wed, 4 Aug 2010 19:23:52 +1000
+Subject: [PATCH 01/11] Loading ASN.1 driver explicitly to avoid races in LDAP (EJAB-1284)
+
+---
+ src/ejabberd_app.erl | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/src/ejabberd_app.erl b/src/ejabberd_app.erl
+index 97ae7fe..2227904 100644
+--- a/src/ejabberd_app.erl
++++ b/src/ejabberd_app.erl
+@@ -57,6 +57,8 @@ start(normal, _Args) ->
+ ejabberd_config:start(),
+ ejabberd_check:config(),
+ connect_nodes(),
++ %% Loading ASN.1 driver explicitly to avoid races in LDAP
++ catch asn1rt:load_driver(),
+ Sup = ejabberd_sup:start_link(),
+ ejabberd_rdbms:start(),
+ ejabberd_auth:start(),
+--
+1.7.2.1
+
diff --git a/ejabberd-0011-Make-xml.c-correctly-compiles-on-R14A-EJAB-1288.patch b/ejabberd-0011-Make-xml.c-correctly-compiles-on-R14A-EJAB-1288.patch
new file mode 100644
index 0000000..c181016
--- /dev/null
+++ b/ejabberd-0011-Make-xml.c-correctly-compiles-on-R14A-EJAB-1288.patch
@@ -0,0 +1,157 @@
+From 1ea09b09a227d1e630d9dde3db68d46b0cb44f55 Mon Sep 17 00:00:00 2001
+From: Evgeniy Khramtsov <ekhramtsov@process-one.net>
+Date: Sat, 7 Aug 2010 21:06:50 +1000
+Subject: [PATCH 04/11] Make xml.c correctly compiles on R14A (EJAB-1288)
+
+---
+ src/Makefile.in | 1 +
+ src/xml.c | 60 ++++++++++++++++++++++++++++++++++++++++--------------
+ 2 files changed, 45 insertions(+), 16 deletions(-)
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+index cf600c3..7d225f3 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -31,6 +31,7 @@ else
+ endif
+
+ EFLAGS += @ERLANG_SSLVER@ -pa .
++ERLANG_CFLAGS += @ERLANG_SSLVER@
+
+ # make debug=true to compile Erlang module with debug informations.
+ ifdef debug
+diff --git a/src/xml.c b/src/xml.c
+index d1b2b7f..e363fed 100644
+--- a/src/xml.c
++++ b/src/xml.c
+@@ -2,6 +2,23 @@
+ #include <string.h>
+ #include <stdio.h>
+
++#ifdef SSL40
++#define ENIF_ALLOC(SIZE) enif_alloc(SIZE)
++#define ENIF_FREE(PTR) enif_free(PTR)
++#define ENIF_REALLOC(PTR, SIZE) enif_realloc(PTR, SIZE)
++#define ENIF_ALLOC_BINARY(SIZE, BIN) enif_alloc_binary(SIZE, BIN)
++#define ENIF_COMPARE(TERM1, TERM2) enif_compare(TERM1, TERM2)
++#else
++#define ENIF_ALLOC(SIZE) enif_alloc(env, SIZE)
++#define ENIF_FREE(PTR) enif_free(env, PTR)
++#define ENIF_REALLOC(PTR, SIZE) enif_realloc(env, PTR, SIZE)
++#define ENIF_ALLOC_BINARY(SIZE, BIN) enif_alloc_binary(env, SIZE, BIN)
++#define ENIF_COMPARE(TERM1, TERM2) enif_compare(env, TERM1, TERM2)
++#endif
++
++static ERL_NIF_TERM atom_xmlelement;
++static ERL_NIF_TERM atom_xmlcdata;
++
+ struct buf {
+ int limit;
+ int len;
+@@ -10,12 +27,19 @@ struct buf {
+
+ static int make_element(ErlNifEnv* env, struct buf *rbuf, ERL_NIF_TERM el);
+
++static int load(ErlNifEnv* env, void** priv, ERL_NIF_TERM load_info)
++{
++ atom_xmlelement = enif_make_atom(env, "xmlelement");
++ atom_xmlcdata = enif_make_atom(env, "xmlcdata");
++ return 0;
++}
++
+ static struct buf *init_buf(ErlNifEnv* env)
+ {
+- struct buf *rbuf = enif_alloc(env, sizeof(struct buf));
++ struct buf *rbuf = ENIF_ALLOC(sizeof(struct buf));
+ rbuf->limit = 1024;
+ rbuf->len = 0;
+- rbuf->b = enif_alloc(env, rbuf->limit);
++ rbuf->b = ENIF_ALLOC(rbuf->limit);
+ return rbuf;
+ }
+
+@@ -23,9 +47,9 @@ static void destroy_buf(ErlNifEnv* env, struct buf *rbuf)
+ {
+ if (rbuf) {
+ if (rbuf->b) {
+- enif_free(env, rbuf->b);
++ ENIF_FREE(rbuf->b);
+ };
+- enif_free(env, rbuf);
++ ENIF_FREE(rbuf);
+ };
+ }
+
+@@ -35,7 +59,7 @@ inline void resize_buf(ErlNifEnv* env, struct buf *rbuf, int len_to_add)
+
+ if (new_len >= rbuf->limit) {
+ rbuf->limit = ((new_len / 1024) + 1) * 1024;
+- rbuf->b = enif_realloc(env, rbuf->b, rbuf->limit);
++ rbuf->b = ENIF_REALLOC(rbuf->b, rbuf->limit);
+ };
+ }
+
+@@ -141,7 +165,7 @@ static int make_element(ErlNifEnv* env, struct buf *rbuf, ERL_NIF_TERM el)
+
+ if (enif_get_tuple(env, el, &arity, &tuple)) {
+ if (arity == 2) {
+- if (!enif_compare(env, tuple[0], enif_make_atom(env, "xmlcdata"))) {
++ if (!ENIF_COMPARE(tuple[0], atom_xmlcdata)) {
+ if (enif_inspect_iolist_as_binary(env, tuple[1], &cdata)) {
+ crypt(env, rbuf, cdata.data, cdata.size);
+ ret = 1;
+@@ -149,7 +173,7 @@ static int make_element(ErlNifEnv* env, struct buf *rbuf, ERL_NIF_TERM el)
+ };
+ };
+ if (arity == 4) {
+- if (!enif_compare(env, tuple[0], enif_make_atom(env, "xmlelement"))) {
++ if (!ENIF_COMPARE(tuple[0], atom_xmlelement)) {
+ if (enif_inspect_iolist_as_binary(env, tuple[1], &name)) {
+ buf_add_char(env, rbuf, '<');
+ buf_add_str(env, rbuf, (char *)name.data, name.size);
+@@ -192,7 +216,7 @@ static ERL_NIF_TERM element_to(ErlNifEnv* env, int argc,
+ destroy_buf(env, rbuf);
+ return result;
+ } else {
+- if (enif_alloc_binary(env, rbuf->len, &output)) {
++ if (ENIF_ALLOC_BINARY(rbuf->len, &output)) {
+ memcpy(output.data, rbuf->b, rbuf->len);
+ result = enif_make_binary(env, &output);
+ destroy_buf(env, rbuf);
+@@ -206,11 +230,13 @@ static ERL_NIF_TERM element_to(ErlNifEnv* env, int argc,
+ return enif_make_badarg(env);
+ }
+
+-/* static ERL_NIF_TERM element_to_string(ErlNifEnv* env, int argc, */
+-/* const ERL_NIF_TERM argv[]) */
+-/* { */
+-/* return element_to(env, argc, argv, 1); */
+-/* } */
++#ifdef SSL40
++static ERL_NIF_TERM element_to_string(ErlNifEnv* env, int argc,
++ const ERL_NIF_TERM argv[])
++{
++ return element_to(env, argc, argv, 1);
++}
++#endif
+
+ static ERL_NIF_TERM element_to_binary(ErlNifEnv* env, int argc,
+ const ERL_NIF_TERM argv[])
+@@ -222,9 +248,11 @@ static ErlNifFunc nif_funcs[] =
+ {
+ /* Stupid Erlang bug with enif_make_string() is fixed
+ in R14A only (OTP-8685), so we can't use
+- element_to_string yet.*/
+- /* {"element_to_string", 1, element_to_string}, */
++ element_to_string in Erlang < R14A.*/
++#ifdef SSL40
++ {"element_to_string", 1, element_to_string},
++#endif
+ {"element_to_binary", 1, element_to_binary}
+ };
+
+-ERL_NIF_INIT(xml, nif_funcs, NULL, NULL, NULL, NULL)
++ERL_NIF_INIT(xml, nif_funcs, load, NULL, NULL, NULL)
+--
+1.7.2.1
+
diff --git a/ejabberd-0012-fixes-typo-for-table-copy.patch b/ejabberd-0012-fixes-typo-for-table-copy.patch
new file mode 100644
index 0000000..ac62cc5
--- /dev/null
+++ b/ejabberd-0012-fixes-typo-for-table-copy.patch
@@ -0,0 +1,25 @@
+From f8dd973373a139b9857720dcb4405509e5e4fc76 Mon Sep 17 00:00:00 2001
+From: Evgeniy Khramtsov <ekhramtsov@process-one.net>
+Date: Tue, 10 Aug 2010 19:42:22 +1000
+Subject: [PATCH 08/11] fixes typo for table copy
+
+---
+ src/odbc/ejabberd_odbc_sup.erl | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/odbc/ejabberd_odbc_sup.erl b/src/odbc/ejabberd_odbc_sup.erl
+index 45ede18..8fb6e25 100644
+--- a/src/odbc/ejabberd_odbc_sup.erl
++++ b/src/odbc/ejabberd_odbc_sup.erl
+@@ -54,7 +54,7 @@ start_link(Host) ->
+ {type, bag},
+ {local_content, true},
+ {attributes, record_info(fields, sql_pool)}]),
+- mnesia:add_table_copy(local_config, node(), ram_copies),
++ mnesia:add_table_copy(sql_pool, node(), ram_copies),
+ F = fun() ->
+ mnesia:delete({sql_pool, Host})
+ end,
+--
+1.7.2.1
+
diff --git a/ejabberd-0013-fixes-ampersand-escaping-EJAB-1258.patch b/ejabberd-0013-fixes-ampersand-escaping-EJAB-1258.patch
new file mode 100644
index 0000000..2db4aba
--- /dev/null
+++ b/ejabberd-0013-fixes-ampersand-escaping-EJAB-1258.patch
@@ -0,0 +1,26 @@
+From 3024bb0cbf359f3e14b5386ed14ecfb168e8a267 Mon Sep 17 00:00:00 2001
+From: Evgeniy Khramtsov <ekhramtsov@process-one.net>
+Date: Thu, 19 Aug 2010 16:28:31 +1000
+Subject: [PATCH 09/11] fixes ampersand escaping (EJAB-1258)
+
+---
+ src/eldap/eldap_filter.erl | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/eldap/eldap_filter.erl b/src/eldap/eldap_filter.erl
+index 51dac5e..341fba1 100644
+--- a/src/eldap/eldap_filter.erl
++++ b/src/eldap/eldap_filter.erl
+@@ -171,7 +171,7 @@ do_sub(S, {RegExp, New, Times}, Iter) ->
+ end.
+
+ replace_amps(String) ->
+- lists:map(
++ lists:flatmap(
+ fun($&) -> "\\&";
+- (Chr) -> Chr
++ (Chr) -> [Chr]
+ end, String).
+--
+1.7.2.1
+
diff --git a/ejabberd-0014-Bugfix-http-poll-for-correctly-parsing-binary-thanks.patch b/ejabberd-0014-Bugfix-http-poll-for-correctly-parsing-binary-thanks.patch
new file mode 100644
index 0000000..6fa5aa8
--- /dev/null
+++ b/ejabberd-0014-Bugfix-http-poll-for-correctly-parsing-binary-thanks.patch
@@ -0,0 +1,31 @@
+From d87fff1a4c500d9abe3945cbfea792b4eddfa3f2 Mon Sep 17 00:00:00 2001
+From: Badlop <badlop@process-one.net>
+Date: Thu, 19 Aug 2010 17:37:21 +0200
+Subject: [PATCH 10/11] Bugfix http-poll for correctly parsing binary (thanks to Peter Lemenkov)
+
+---
+ src/web/ejabberd_http_poll.erl | 8 +++++++-
+ 1 files changed, 7 insertions(+), 1 deletions(-)
+
+diff --git a/src/web/ejabberd_http_poll.erl b/src/web/ejabberd_http_poll.erl
+index 0bdbc62..faa0f3c 100644
+--- a/src/web/ejabberd_http_poll.erl
++++ b/src/web/ejabberd_http_poll.erl
+@@ -272,7 +272,13 @@ handle_event(_Event, StateName, StateData) ->
+ %% {stop, Reason, Reply, NewStateData}
+ %%----------------------------------------------------------------------
+ handle_sync_event({send, Packet}, _From, StateName, StateData) ->
+- Output = StateData#state.output ++ [lists:flatten(Packet)],
++ Packet2 = if
++ is_binary(Packet) ->
++ binary_to_list(Packet);
++ true ->
++ Packet
++ end,
++ Output = StateData#state.output ++ [lists:flatten(Packet2)],
+ Reply = ok,
+ {reply, Reply, StateName, StateData#state{output = Output}};
+
+--
+1.7.2.1
+
diff --git a/ejabberd.spec b/ejabberd.spec
index 6c58f7c..9efb71a 100644
--- a/ejabberd.spec
+++ b/ejabberd.spec
@@ -11,7 +11,7 @@
Name: ejabberd
Version: 2.1.5
-Release: 4%{?dist}
+Release: 6%{?dist}
Summary: A distributed, fault-tolerant Jabber/XMPP server
Group: Applications/Internet
@@ -56,8 +56,16 @@ Patch7: ejabberd-0007-Install-.so-objects-with-0755-permissions.patch
Patch8: ejabberd-0008-Use-versioned-directory-for-storing-docs.patch
# Backported from upstream
Patch9: ejabberd-0009-Support-SASL-GSSAPI-authentication-thanks-to-Mikael-.patch
-# Will be proposed for inclusion into upstream
-Patch10: ejabberd-0010-Fix-http-poll.patch
+# Backported from upstream
+Patch10: ejabberd-0010-Loading-ASN.1-driver-explicitly-to-avoid-races-in-LD.patch
+# Backported from upstream
+Patch11: ejabberd-0011-Make-xml.c-correctly-compiles-on-R14A-EJAB-1288.patch
+# Backported from upstream
+Patch12: ejabberd-0012-fixes-typo-for-table-copy.patch
+# Backported from upstream
+Patch13: ejabberd-0013-fixes-ampersand-escaping-EJAB-1258.patch
+# Backported from upstream
+Patch14: ejabberd-0014-Bugfix-http-poll-for-correctly-parsing-binary-thanks.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -123,7 +131,11 @@ Documentation for ejabberd.
%patch7 -p1 -b .fix_perms
%patch8 -p1 -b .versioned_docdir
%patch9 -p1 -b .gssapi
-%patch10 -p1 -b .http-poll
+%patch10 -p1 -b .load_asn1
+%patch11 -p1 -b .R14A
+%patch12 -p1 -b .typo
+%patch13 -p1 -b .ldap_ampersand_escaping
+%patch14 -p1 -b .http-poll
cp %{S:4} src
cp %{S:5} src
@@ -354,6 +366,13 @@ rm -rf %{buildroot}
%doc %{_docdir}/%{name}-%{version}/*.txt
%changelog
+* Thu Aug 26 2010 Peter Lemenkov <lemenkov@gmail.com> 2.1.5-6
+- More patches from trunk
+- Rebased patches
+
+* Thu Aug 26 2010 Peter Lemenkov <lemenkov@gmail.com> 2.1.5-5
+- Backported %%patch11 from upstream (fixes LDAP)
+
* Wed Aug 18 2010 Peter Lemenkov <lemenkov@gmail.com> 2.1.5-4
- Add accidentally forgotten changes to ejabberd.logrotate
reply other threads:[~2026-09-23 19:07 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=179019042181.1.15801607407712398464.rpms-ejabberd-debe20658df7@fedoraproject.org \
--to=lemenkov@gmail.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox