diff options
Diffstat (limited to 'net-im/ejabberd/files/ejabberd-2.1.5-md2-optional.patch')
-rw-r--r-- | net-im/ejabberd/files/ejabberd-2.1.5-md2-optional.patch | 259 |
1 files changed, 0 insertions, 259 deletions
diff --git a/net-im/ejabberd/files/ejabberd-2.1.5-md2-optional.patch b/net-im/ejabberd/files/ejabberd-2.1.5-md2-optional.patch deleted file mode 100644 index e11cad3b7d12..000000000000 --- a/net-im/ejabberd/files/ejabberd-2.1.5-md2-optional.patch +++ /dev/null @@ -1,259 +0,0 @@ -commit d2d8a09b4afdb5f77b903411ff16fbb0b739d3e4 -Author: Evgeniy Khramtsov <ekhramtsov@process-one.net> -Date: Sat Aug 7 22:04:57 2010 +1000 - - Make MD2 autodetected (EJAB-1285) - -diff --git a/src/Makefile.in b/src/Makefile.in -index 7d225f3..4e56181 100644 ---- a/src/Makefile.in -+++ b/src/Makefile.in -@@ -64,6 +64,11 @@ ifeq (@transient_supervisors@, false) - EFLAGS+=-DNO_TRANSIENT_SUPERVISORS - endif - -+ifeq (@md2@, true) -+ EFLAGS+=-DHAVE_MD2 -+ ERLANG_CFLAGS += -DHAVE_MD2 -+endif -+ - INSTALL_EPAM= - ifeq (@pam@, pam) - INSTALL_EPAM=install -m 750 $(O_USER) epam $(PBINDIR) -diff --git a/src/configure.ac b/src/configure.ac -index 1497643..1d25dd8 100644 ---- a/src/configure.ac -+++ b/src/configure.ac -@@ -148,6 +148,9 @@ if test "$ENABLEUSER" != ""; then - AC_SUBST([INSTALLUSER], [$ENABLEUSER]) - fi - -+AC_CHECK_HEADER(openssl/md2.h, md2=true, md2=false) -+AC_SUBST(md2) -+ - AC_CANONICAL_SYSTEM - #AC_DEFINE_UNQUOTED(CPU_VENDOR_OS, "$target") - #AC_SUBST(target_os) -diff --git a/src/mod_caps.erl b/src/mod_caps.erl -index 7fb011e..d9f4f30 100644 ---- a/src/mod_caps.erl -+++ b/src/mod_caps.erl -@@ -276,25 +276,8 @@ feature_response(#iq{type = result, - sub_el = [{xmlelement, _, _, Els}]}, - Host, From, Caps, [SubNode | SubNodes]) -> - BinaryNode = node_to_binary(Caps#caps.node, SubNode), -- IsValid = case Caps#caps.hash of -- "md2" -> -- Caps#caps.version == make_disco_hash(Els, md2); -- "md5" -> -- Caps#caps.version == make_disco_hash(Els, md5); -- "sha-1" -> -- Caps#caps.version == make_disco_hash(Els, sha1); -- "sha-224" -> -- Caps#caps.version == make_disco_hash(Els, sha224); -- "sha-256" -> -- Caps#caps.version == make_disco_hash(Els, sha256); -- "sha-384" -> -- Caps#caps.version == make_disco_hash(Els, sha384); -- "sha-512" -> -- Caps#caps.version == make_disco_hash(Els, sha512); -- _ -> -- true -- end, -- if IsValid -> -+ case check_hash(Caps, Els) of -+ true -> - Features = lists:flatmap( - fun({xmlelement, "feature", FAttrs, _}) -> - [xml:get_attr_s("var", FAttrs)]; -@@ -304,7 +287,7 @@ feature_response(#iq{type = result, - mnesia:dirty_write( - #caps_features{node_pair = BinaryNode, - features = features_to_binary(Features)}); -- true -> -+ false -> - mnesia:dirty_write(#caps_features{node_pair = BinaryNode}) - end, - feature_request(Host, From, Caps, SubNodes); -@@ -349,6 +332,7 @@ make_my_disco_hash(Host) -> - "" - end. - -+-ifdef(HAVE_MD2). - make_disco_hash(DiscoEls, Algo) -> - Concat = [concat_identities(DiscoEls), - concat_features(DiscoEls), -@@ -370,6 +354,64 @@ make_disco_hash(DiscoEls, Algo) -> - sha:sha512(Concat) - end). - -+check_hash(Caps, Els) -> -+ case Caps#caps.hash of -+ "md2" -> -+ Caps#caps.version == make_disco_hash(Els, md2); -+ "md5" -> -+ Caps#caps.version == make_disco_hash(Els, md5); -+ "sha-1" -> -+ Caps#caps.version == make_disco_hash(Els, sha1); -+ "sha-224" -> -+ Caps#caps.version == make_disco_hash(Els, sha224); -+ "sha-256" -> -+ Caps#caps.version == make_disco_hash(Els, sha256); -+ "sha-384" -> -+ Caps#caps.version == make_disco_hash(Els, sha384); -+ "sha-512" -> -+ Caps#caps.version == make_disco_hash(Els, sha512); -+ _ -> -+ true -+ end. -+-else. -+make_disco_hash(DiscoEls, Algo) -> -+ Concat = [concat_identities(DiscoEls), -+ concat_features(DiscoEls), -+ concat_info(DiscoEls)], -+ base64:encode_to_string( -+ if Algo == md5 -> -+ crypto:md5(Concat); -+ Algo == sha1 -> -+ crypto:sha(Concat); -+ Algo == sha224 -> -+ sha:sha224(Concat); -+ Algo == sha256 -> -+ sha:sha256(Concat); -+ Algo == sha384 -> -+ sha:sha384(Concat); -+ Algo == sha512 -> -+ sha:sha512(Concat) -+ end). -+ -+check_hash(Caps, Els) -> -+ case Caps#caps.hash of -+ "md5" -> -+ Caps#caps.version == make_disco_hash(Els, md5); -+ "sha-1" -> -+ Caps#caps.version == make_disco_hash(Els, sha1); -+ "sha-224" -> -+ Caps#caps.version == make_disco_hash(Els, sha224); -+ "sha-256" -> -+ Caps#caps.version == make_disco_hash(Els, sha256); -+ "sha-384" -> -+ Caps#caps.version == make_disco_hash(Els, sha384); -+ "sha-512" -> -+ Caps#caps.version == make_disco_hash(Els, sha512); -+ _ -> -+ true -+ end. -+-endif. -+ - concat_features(Els) -> - lists:usort( - lists:flatmap( -diff --git a/src/sha.erl b/src/sha.erl -index 64c15c1..06dd3c2 100644 ---- a/src/sha.erl -+++ b/src/sha.erl -@@ -28,7 +28,11 @@ - -author('alexey@process-one.net'). - - -export([start/0, sha/1, sha1/1, sha224/1, sha256/1, sha384/1, -- sha512/1, md2/1]). -+ sha512/1]). -+ -+-ifdef(HAVE_MD2). -+-export([md2/1]). -+-endif. - - -include("ejabberd.hrl"). - -@@ -80,8 +84,10 @@ sha384(Text) -> - sha512(Text) -> - erlang:port_control(?DRIVER, 512, Text). - -+-ifdef(HAVE_MD2). - md2(Text) -> - erlang:port_control(?DRIVER, 2, Text). -+-endif. - - driver_path() -> - Suffix = case os:type() of -diff --git a/src/tls/Makefile.in b/src/tls/Makefile.in -index 4458796..ee40f93 100644 ---- a/src/tls/Makefile.in -+++ b/src/tls/Makefile.in -@@ -30,6 +30,11 @@ ifdef debug - EFLAGS+=+debug_info +export_all - endif - -+ifeq (@md2@, true) -+ EFLAGS+=-DHAVE_MD2 -+ ERLANG_CFLAGS += -DHAVE_MD2 -+endif -+ - ERLSHLIBS = ../tls_drv.so ../sha_drv.so - OUTDIR = .. - SOURCES = $(wildcard *.erl) -diff --git a/src/tls/sha_drv.c b/src/tls/sha_drv.c -index 13d6580..8e6de32 100644 ---- a/src/tls/sha_drv.c -+++ b/src/tls/sha_drv.c -@@ -20,7 +20,9 @@ - - #include <erl_driver.h> - #include <openssl/sha.h> -+#ifdef HAVE_MD2 - #include <openssl/md2.h> -+#endif - - static ErlDrvData sha_drv_start(ErlDrvPort port, char *buf) - { -@@ -36,11 +38,13 @@ static int sha_drv_control(ErlDrvData handle, - ErlDrvBinary *b = NULL; - - switch (command) { -+#ifdef HAVE_MD2 - case 2: - rlen = MD2_DIGEST_LENGTH; - b = driver_alloc_binary(rlen); - if (b) MD2((unsigned char*)buf, len, (unsigned char*)b->orig_bytes); - break; -+#endif - case 224: - rlen = SHA224_DIGEST_LENGTH; - b = driver_alloc_binary(rlen); - - -commit b14899d41ae8f0d3e750ba42e297ea5815bf30c1 -Author: Badlop <badlop@process-one.net> -Date: Sat Aug 7 19:42:56 2010 +0200 - - Update the 'configure' script - -diff --git a/src/configure b/src/configure -index 2d44646..d515abc 100755 ---- a/src/configure -+++ b/src/configure -@@ -608,6 +608,7 @@ build_os - build_vendor - build_cpu - build -+md2 - INSTALLUSER - SSL_CFLAGS - SSL_LIBS -@@ -4822,6 +4823,16 @@ if test "$ENABLEUSER" != ""; then - - fi - -+ac_fn_c_check_header_mongrel "$LINENO" "openssl/md2.h" "ac_cv_header_openssl_md2_h" "$ac_includes_default" -+if test "x$ac_cv_header_openssl_md2_h" = x""yes; then : -+ md2=true -+else -+ md2=false -+fi -+ -+ -+ -+ - ac_aux_dir= - for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - for ac_t in install-sh install.sh shtool; do |