<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/5114b7ad47470035f3859faf8d466131ed17be05">https://github.com/macports/macports-ports/commit/5114b7ad47470035f3859faf8d466131ed17be05</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 5114b7a jabber: update to 1.6.1.1, apply FreeBSD patches
</span>5114b7a is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 5114b7ad47470035f3859faf8d466131ed17be05
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sat Apr 21 22:51:18 2018 +1000
<span style='display:block; white-space:pre;color:#404040;'> jabber: update to 1.6.1.1, apply FreeBSD patches
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Also remove ssl variant and just enable TLS support always (which now
</span><span style='display:block; white-space:pre;color:#404040;'> uses gnutls).
</span>---
net/jabber/Portfile | 84 +++-----
net/jabber/files/configure.patch | 19 ++
net/jabber/files/jabberd-jabberd.h.patch | 14 ++
net/jabber/files/jabberd-lib-socket.cc.patch | 11 +
net/jabber/files/jabberd-mio.cc.patch | 17 ++
net/jabber/files/jabberd-mio_tls.cc.patch | 236 +++++++++++++++++++++
net/jabber/files/jabberd_lib_messages.cc.patch | 11 +
net/jabber/files/jabberd_lib_xmlnode.cc.patch | 37 ++++
net/jabber/files/jabberd_log.cc.patch | 32 +++
net/jabber/files/jsm_modules_mod__privacy.cc.patch | 11 +
net/jabber/files/no_lzo.patch | 11 +
11 files changed, 433 insertions(+), 50 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/jabber/Portfile b/net/jabber/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index da1e4f6..ee45b60 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/jabber/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/jabber/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,64 +1,48 @@
</span> PortSystem 1.0
name jabber
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 1.4.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 1.6.1.1
</span> categories net
<span style='display:block; white-space:pre;background:#ffe0e0;'>-license GPL-2+ MPL-1.1 Apache-1 Restrictive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license GPL-2+
</span> maintainers nomaintainer
<span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage http://jabberd.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage https://jabberd.org/
</span> description Online presence and instant messaging server
long_description The Jabber server (jabberd) is a daemon for Jabber clients to connect and communicate with.
platforms darwin
<span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites http://download.jabberd.org/jabberd14/ \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- http://download.jabberd.org/jabberd14/old/ \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- http://download.jabberd.org/jabberd14/old/discontinued/ \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- netbsd:packages/distfiles/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums md5 10780dbdb93926ea5bb360e1186b939c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib port:libiconv port:expat port:gettext lib:libpth.a:pth
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-build.type gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites https://download.jabberd.org/jabberd14/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ https://download.jabberd.org/jabberd14/old/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ freebsd:jabber
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname jabberd14-${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums md5 597c7ee14518ba22b1cee883b4737d87 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha1 8b7ba77c9e02e9de7125e898900ff0ba5d65986e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 0d3df653b6362f8e580c59ae1b4c9c6467b0bee5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build port:pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib port:expat port:gnutls port:libidn port:popt port:pth
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platform darwin {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.cflags-append "-DBIND_8_COMPAT=1"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles configure.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jabberd_lib_messages.cc.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ no_lzo.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jabberd-jabberd.h.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jabberd-lib-socket.cc.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jabberd-mio.cc.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jabberd-mio_tls.cc.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jabberd_lib_xmlnode.cc.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jabberd_log.cc.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jsm_modules_mod__privacy.cc.patch
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.cflags-append -std=gnu89
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args --enable-ssl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-ipv6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-mysql=no \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-postgresql=no
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file mkdir ${destroot}${prefix}/etc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file mkdir ${destroot}${prefix}/lib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file mkdir ${destroot}${prefix}/sbin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file mkdir ${destroot}${prefix}/share/man
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -o root -m 755 ${worksrcpath}/jabberd/jabberd ${destroot}${prefix}/sbin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -o root -m 755 -d ${destroot}${prefix}/lib/jabber/pthsock
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -o root -m 755 ${worksrcpath}/pthsock/pthsock_client.so ${destroot}${prefix}/lib/jabber/pthsock
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -o root -m 755 -d ${destroot}${prefix}/lib/jabber/dialback
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -o root -m 755 ${worksrcpath}/dialback/dialback.so ${destroot}${prefix}/lib/jabber/dialback
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -o root -m 755 -d ${destroot}${prefix}/lib/jabber/dnsrv
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -o root -m 755 ${worksrcpath}/dnsrv/dnsrv.so ${destroot}${prefix}/lib/jabber/dnsrv
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -o root -m 755 -d ${destroot}${prefix}/lib/jabber/xdb_file
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -o root -m 755 ${worksrcpath}/xdb_file/xdb_file.so ${destroot}${prefix}/lib/jabber/xdb_file
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -o root -m 755 -d ${destroot}${prefix}/lib/jabber/jsm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -o root -m 755 ${worksrcpath}/jsm/jsm.so ${destroot}${prefix}/lib/jabber/jsm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -o root -m 755 -d ${destroot}${prefix}/etc/jabber/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -o root -m 755 ${worksrcpath}/jabber.xml ${destroot}${prefix}/etc/jabber
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- destroot.keepdirs \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}${prefix}/var/lib/jabber \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}${prefix}/var/run/jabber \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}${prefix}/var/log/jabber \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}${prefix}/var/spool/jabber
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.type gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_parallel_build no
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- file copy -force ${destroot}${prefix}/etc/jabber/jabber.xml ${destroot}${prefix}/etc/jabber/jabber.xml.default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete ${destroot}${prefix}/etc/jabber.xml ${destroot}${prefix}/etc/cacerts.pem
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant ssl description {Enable SSL} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append lib:libssl.0.9:openssl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args --enable-ssl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-activate {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![file exists ${prefix}/etc/jabber.xml]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ copy ${prefix}/etc/jabber.xml.dist ${prefix}/etc/jabber.xml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/jabber/files/configure.patch b/net/jabber/files/configure.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..5ba1a3c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/jabber/files/configure.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure.orig 2007-07-19 08:24:45.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure 2018-04-21 22:33:59.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21171,6 +21171,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/socket.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <netdb.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <cstddef>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21878,7 +21879,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "${ECHO_T}yes" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hasgnutlsextra=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if test $hasgnutls = "yes" ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test $hasgnutlsextra = "yes" ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CPPFLAGS="$CPPFLAGS $GNUTLSEXTRA_CFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LDFLAGS="$LDFLAGS $GNUTLSEXTRA_LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/jabber/files/jabberd-jabberd.h.patch b/net/jabber/files/jabberd-jabberd.h.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..349e9f5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/jabber/files/jabberd-jabberd.h.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- jabberd/jabberd.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ jabberd/jabberd.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -103,10 +103,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <jabberdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnutls/gnutls.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnutls/x509.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnutls/openpgp.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef HAVE_GNUTLS_EXTRA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include <gnutls/extra.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# include <gnutls/openpgp.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /** Packet types */
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/jabber/files/jabberd-lib-socket.cc.patch b/net/jabber/files/jabberd-lib-socket.cc.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..7fa8863
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/jabber/files/jabberd-lib-socket.cc.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- jabberd/lib/socket.cc.orig 2007-07-17 01:20:44.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ jabberd/lib/socket.cc 2008-04-29 19:05:42.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -95,6 +95,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sa.sin_addr.s_addr = saddr->s_addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ flag = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&flag, sizeof(flag));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(bind(s,(struct sockaddr*)&sa,sizeof sa) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ close(s);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/jabber/files/jabberd-mio.cc.patch b/net/jabber/files/jabberd-mio.cc.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..2deabd3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/jabber/files/jabberd-mio.cc.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,17 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- jabberd/mio.cc.orig 2008-04-29 18:54:19.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ jabberd/mio.cc 2008-04-29 19:00:45.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -673,11 +673,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sa.sin6_flowinfo = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inet_pton(AF_INET6, addr_str, &sa.sin6_addr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ flag = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ setsockopt(newm->fd, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&flag, sizeof(flag));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct sockaddr_in sa;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sa.sin_family = AF_INET;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sa.sin_port = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inet_aton(xmlnode_get_data(xmlnode_get_list_item(xmlnode_get_tags(greymatter__, "io/bind", namespaces, temp_pool), 0)), &sa.sin_addr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bind(newm->fd, (struct sockaddr*)&sa, sizeof(sa));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/jabber/files/jabberd-mio_tls.cc.patch b/net/jabber/files/jabberd-mio_tls.cc.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..9351bd7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/jabber/files/jabberd-mio_tls.cc.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,236 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- jabberd/mio_tls.cc.orig 2007-07-16 23:20:44 UTC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ jabberd/mio_tls.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <set>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sstream>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <gcrypt.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <vector>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <list>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <iostream>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -612,7 +611,7 @@ static void mio_tls_process_credentials(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // load OpenPGP key/certificate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_certificate_set_openpgp_key_file(current_credentials, pubfile, privfile);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ret = gnutls_certificate_set_openpgp_key_file(current_credentials, pubfile, privfile, GNUTLS_OPENPGP_FMT_BASE64);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ log_error(NULL, "Error loading OpenPGP key pub=%s/priv=%s: %s", pubfile, privfile, gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -631,7 +630,7 @@ static void mio_tls_process_credentials(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // load the OpenPGP keyring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_certificate_set_openpgp_keyring_file(current_credentials, file);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ret = gnutls_certificate_set_openpgp_keyring_file(current_credentials, file, GNUTLS_OPENPGP_FMT_BASE64);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ log_error(NULL, "Error loading OpenPGP keyring %s: %s", file, gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -640,23 +639,6 @@ static void mio_tls_process_credentials(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- // load GnuPG trustdb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (j_strcmp(xmlnode_get_localname(cur), "trustdb") == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- char const *const file = xmlnode_get_data(cur);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (file == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_warn(NULL, "Initializing TLS subsystem: <trustdb/> element inside the TLS configuration, that does not contain a file-name.");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- // load the GnuPG trustdb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_certificate_set_openpgp_trustdb(current_credentials, file);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_error(NULL, "Error loading GnuPG trustdb %s: %s", file, gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // setup protocols to use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (j_strcmp(xmlnode_get_localname(cur), "protocols") == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char const *const protocols_data = xmlnode_get_data(cur);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -916,7 +898,7 @@ bool mio_tls_early_init() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* load asn1 tree to be used by libtasn1 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ret = asn1_array2tree(subjectAltName_asn1_tab, &mio_tls_asn1_tree, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ret != ASN1_SUCCESS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- std::cerr << "Error preparing the libtasn1 library: " << libtasn1_strerror(ret) << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ std::cerr << "Error preparing the libtasn1 library: " << asn1_strerror(ret) << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* XXX we have to delete the structure on shutdown using asn1_delete_structure(&mio_tls_asn1_tree) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1302,80 +1284,32 @@ int mio_ssl_starttls(mio m, int originat
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // overwrite protocol priorities?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (mio_tls_protocols.find(identity) != mio_tls_protocols.end()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_protocol_set_priority(session, mio_tls_protocols[identity]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(identity, "error setting protocol priority: %s", gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else if (mio_tls_protocols.find("*") != mio_tls_protocols.end()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_protocol_set_priority(session, mio_tls_protocols["*"]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(identity, "error setting protocol priority: %s", gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // overwrite kx algorithm priorities?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (mio_tls_kx.find(identity) != mio_tls_kx.end()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_kx_set_priority(session, mio_tls_kx[identity]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(identity, "error setting kx algorithm priority: %s", gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else if (mio_tls_kx.find("*") != mio_tls_kx.end()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_kx_set_priority(session, mio_tls_kx["*"]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(identity, "error setting kx algorithm priority: %s", gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // overwrite cipher priorities?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (mio_tls_ciphers.find(identity) != mio_tls_ciphers.end()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_cipher_set_priority(session, mio_tls_ciphers[identity]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(identity, "error setting cipher algorithm priority: %s", gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else if (mio_tls_ciphers.find("*") != mio_tls_ciphers.end()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_cipher_set_priority(session, mio_tls_ciphers["*"]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(identity, "error setting cipher algorithm priority: %s", gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // overwrite certificate priorities?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (mio_tls_certtypes.find(identity) != mio_tls_certtypes.end()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_certificate_type_set_priority(session, mio_tls_certtypes[identity]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(identity, "error setting certificate priorities: %s", gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else if (mio_tls_certtypes.find("*") != mio_tls_certtypes.end()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_certificate_type_set_priority(session, mio_tls_certtypes["*"]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(identity, "error setting certificate priorities: %s", gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // overwrite mac algorithm priorities?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (mio_tls_mac.find(identity) != mio_tls_mac.end()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_mac_set_priority(session, mio_tls_mac[identity]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(identity, "error setting mac algorithm priorities: %s", gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else if (mio_tls_mac.find("*") != mio_tls_mac.end()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_mac_set_priority(session, mio_tls_mac["*"]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(identity, "error setting mac algorithm priorities: %s", gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // overwrite compression algorithm priorities?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (mio_tls_compression.find(identity) != mio_tls_compression.end()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_compression_set_priority(session, mio_tls_compression[identity]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(identity, "error setting compression algorithm priorities: %s", gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else if (mio_tls_compression.find("*") != mio_tls_compression.end()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = gnutls_compression_set_priority(session, mio_tls_compression["*"]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ret < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(identity, "error setting compression algorithm priorities: %s", gnutls_strerror(ret));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* setting certificate credentials */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1498,7 +1432,6 @@ static int mio_tls_check_openpgp(mio m,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const gnutls_datum_t *cert_list = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int cert_list_size = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_GNUTLS_EXTRA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // get the certificate (it's only a single one for OpenPGP)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cert_list = gnutls_certificate_get_peers(static_cast<gnutls_session_t>(m->ssl), &cert_list_size);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (cert_list == NULL || cert_list_size <= 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1566,7 +1499,6 @@ static int mio_tls_check_openpgp(mio m,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // free memory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gnutls_openpgp_key_deinit(pgpkey);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pool_free(jidpool);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1684,14 +1616,14 @@ static int mio_tls_check_x509(mio m, cha
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* init subjectAltName_element */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ret = asn1_create_element(mio_tls_asn1_tree, "PKIX1.SubjectAltName", &subjectAltName_element);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ret != ASN1_SUCCESS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_warn(log_id.c_str(), "error creating asn1 element for PKIX1.SubjectAltName: %s (%s)", libtasn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ log_warn(log_id.c_str(), "error creating asn1 element for PKIX1.SubjectAltName: %s (%s)", asn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* decode the extension */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ret = asn1_der_decoding(&subjectAltName_element, subjectAltName, subjectAltName_size, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ret != ASN1_SUCCESS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_warn(log_id.c_str(), "error DER decoding subjectAltName extension: %s (%s)", libtasn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ log_warn(log_id.c_str(), "error DER decoding subjectAltName extension: %s (%s)", asn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ asn1_delete_structure(&subjectAltName_element);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1712,7 +1644,7 @@ static int mio_tls_check_x509(mio m, cha
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ret != ASN1_SUCCESS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(log_id.c_str(), "error accessing type for %s in subjectAltName: %s (%s)", cnt_string, libtasn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ log_notice(log_id.c_str(), "error accessing type for %s in subjectAltName: %s (%s)", cnt_string, asn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1732,7 +1664,7 @@ static int mio_tls_check_x509(mio m, cha
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ret = asn1_read_value(subjectAltName_element, access_string, dNSName, &dNSName_len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ret != ASN1_SUCCESS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(log_id.c_str(), "error accessing %s in subjectAltName: %s (%s)", access_string, libtasn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ log_notice(log_id.c_str(), "error accessing %s in subjectAltName: %s (%s)", access_string, asn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1772,7 +1704,7 @@ static int mio_tls_check_x509(mio m, cha
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* get the OID of the otherName */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ret = asn1_read_value(subjectAltName_element, access_string_type, otherNameType, &otherNameType_len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ret != ASN1_SUCCESS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(log_id.c_str(), "error accessing type information %s in subjectAltName: %s (%s)", access_string_type, libtasn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ log_notice(log_id.c_str(), "error accessing type information %s in subjectAltName: %s (%s)", access_string_type, asn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1785,7 +1717,7 @@ static int mio_tls_check_x509(mio m, cha
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* get the value of the otherName */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ret = asn1_read_value(subjectAltName_element, access_string_value, otherNameValue, &otherNameValue_len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ret != ASN1_SUCCESS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(log_id.c_str(), "error accessing value of othername %s in subjectAltName: %s (%s)", access_string_value, libtasn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ log_notice(log_id.c_str(), "error accessing value of othername %s in subjectAltName: %s (%s)", access_string_value, asn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1799,21 +1731,21 @@ static int mio_tls_check_x509(mio m, cha
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ret = asn1_create_element(mio_tls_asn1_tree, "PKIX1.DirectoryString", &directoryString_element);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ret != ASN1_SUCCESS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(log_id.c_str(), "error creating DirectoryString element: %s (%s)", libtasn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ log_notice(log_id.c_str(), "error creating DirectoryString element: %s (%s)", asn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ asn1_delete_structure(&directoryString_element);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ret = asn1_der_decoding(&directoryString_element, otherNameValue, otherNameValue_len, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ret != ASN1_SUCCESS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(log_id.c_str(), "error decoding DirectoryString: %s (%s)", libtasn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ log_notice(log_id.c_str(), "error decoding DirectoryString: %s (%s)", asn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ asn1_delete_structure(&directoryString_element);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ret = asn1_read_value(directoryString_element, "utf8String", thisIdOnXMPPaddr, &thisIdOnXMPPaddr_len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ret != ASN1_SUCCESS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- log_notice(log_id.c_str(), "error accessing utf8String of DirectoryString: %s (%s)", libtasn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ log_notice(log_id.c_str(), "error accessing utf8String of DirectoryString: %s (%s)", asn1_strerror(ret), cert_subject.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ asn1_delete_structure(&directoryString_element);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/jabber/files/jabberd_lib_messages.cc.patch b/net/jabber/files/jabberd_lib_messages.cc.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..51427df
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/jabber/files/jabberd_lib_messages.cc.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- jabberd/lib/messages.cc.orig 2007-04-08 05:43:18.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ jabberd/lib/messages.cc 2018-04-21 22:06:24.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -85,7 +85,7 @@ void messages::set_mapping(const std::st
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const std::messages<char>& messages = std::use_facet<std::messages<char> >(locale);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // (try to) open the catalog
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- std::messages<char>::catalog catalog = messages.open(PACKAGE, locale, LOCALEDIR);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ std::messages<char>::catalog catalog = messages.open(PACKAGE, locale);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (catalog == -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/jabber/files/jabberd_lib_xmlnode.cc.patch b/net/jabber/files/jabberd_lib_xmlnode.cc.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..e09e74d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/jabber/files/jabberd_lib_xmlnode.cc.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,37 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- jabberd/lib/xmlnode.cc.orig 2007-04-07 19:43:18 UTC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ jabberd/lib/xmlnode.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -879,9 +879,9 @@ xmlnode xmlnode_get_tag(xmlnode parent,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xmlnode_list_item xmlnode_get_tags(xmlnode context_node, const char *path, xht namespaces, pool p) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char *this_step = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *ns_iri = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- char *next_step = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- char *start_predicate = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- char *end_predicate = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char *next_step = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char *start_predicate = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char *end_predicate = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char *predicate = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char *end_prefix = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int axis = 0; /* 0 = child, 1 = parent, 2 = attribute */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1830,13 +1830,14 @@ xmlnode xmlnode_select_by_lang(xmlnode_l
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* if language has a geographical veriant, get the language as well */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (lang != NULL && strchr(lang, '-') != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- snprintf(general_lang, sizeof(general_lang), "%s", lang);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (strchr(lang, '-') != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- strchr(lang, '-')[0] = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- general_lang[0] = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (lang != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define MIN(a,b) ((a) < (b) ? (a) : (b))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ size_t len = sizeof(general_lang);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char *pos;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ((pos = strchr(lang, '-')))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ len = MIN(len, pos - lang + 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ snprintf(general_lang, len, "%s", lang);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* iterate the nodes */
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/jabber/files/jabberd_log.cc.patch b/net/jabber/files/jabberd_log.cc.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..4a1c377
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/jabber/files/jabberd_log.cc.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,32 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- jabberd/log.cc.orig 2007-07-20 13:56:59 UTC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ jabberd/log.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -83,21 +83,22 @@ static char *debug_log_timestamp(void) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * @return 1 if it should be logged, 0 if not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static inline int _debug_log_zonefilter(char const* zone) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- char *pos, c = '\0';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char *pos;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char *tmp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int ret = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(zone != NULL && debug__zones != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pos = strchr(zone,'.');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(pos != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- c = *pos;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *pos = '\0'; /* chop */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tmp = strndup(zone, pos - zone);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(xhash_get(debug__zones,zone) == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(xhash_get(debug__zones, (pos ? tmp : zone)) == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ret = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(pos != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *pos = c; /* restore */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ free(tmp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /**
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/jabber/files/jsm_modules_mod__privacy.cc.patch b/net/jabber/files/jsm_modules_mod__privacy.cc.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..5be19d3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/jabber/files/jsm_modules_mod__privacy.cc.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- jsm/modules/mod_privacy.cc.orig 2007-04-07 19:43:18 UTC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ jsm/modules/mod_privacy.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1165,7 +1165,7 @@ static mreturn mod_privacy_out_iq_set_li
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ list_items++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (new_items <= 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (new_items == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ log_debug2(ZONE, LOGT_EXECFLOW, "This is a deletion request");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/jabber/files/no_lzo.patch b/net/jabber/files/no_lzo.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..cc85085
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/jabber/files/no_lzo.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- jabberd/mio_tls.cc.orig 2018-04-21 22:09:14.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ jabberd/mio_tls.cc 2018-04-21 22:23:39.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -441,7 +441,7 @@ static int const* mio_tls_compile_compre
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ resultList.push_back(GNUTLS_COMP_NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else if (oneCompression == "DEFLATE") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ resultList.push_back(GNUTLS_COMP_DEFLATE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_GNUTLS_EXTRA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else if (oneCompression == "LZO") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ resultList.push_back(GNUTLS_COMP_LZO);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span></pre><pre style='margin:0'>
</pre>