Hello community, here is the log from the commit of package courier-imap for openSUSE:Factory checked in at 2020-06-23 21:04:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/courier-imap (Old) and /work/SRC/openSUSE:Factory/.courier-imap.new.2956 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "courier-imap" Tue Jun 23 21:04:57 2020 rev:56 rq:816098 version:5.0.11 Changes: -------- --- /work/SRC/openSUSE:Factory/courier-imap/courier-imap.changes 2020-06-05 20:29:09.365338539 +0200 +++ /work/SRC/openSUSE:Factory/.courier-imap.new.2956/courier-imap.changes 2020-06-23 21:05:21.981991850 +0200 @@ -1,0 +2,8 @@ +Fri Jun 19 08:25:12 UTC 2020 - Arjen de Korte <suse+bu...@de-korte.org> + +- update to 5.0.11 + * courier-authlib API update. + * Add AC_PROG_CC_C99 to configure +- remove courier-imap-stdc.patch (no longer needed) + +------------------------------------------------------------------- Old: ---- courier-imap-5.0.10.tar.bz2 courier-imap-5.0.10.tar.bz2.sig courier-imap-stdc.patch New: ---- courier-imap-5.0.11.tar.bz2 courier-imap-5.0.11.tar.bz2.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ courier-imap.spec ++++++ --- /var/tmp/diff_new_pack.CiZ52K/_old 2020-06-23 21:05:24.097998686 +0200 +++ /var/tmp/diff_new_pack.CiZ52K/_new 2020-06-23 21:05:24.101998699 +0200 @@ -17,7 +17,7 @@ Name: courier-imap -Version: 5.0.10 +Version: 5.0.11 Release: 0 Summary: An IMAP and POP3 Server for Maildir MTAs License: GPL-3.0-or-later @@ -44,11 +44,9 @@ ### Patch for upstream: ## fixes typo in Makefile.am Patch3: %{name}-Makefile.patch -# PATCH-FIX-SLE courier-imap-stdc.patch - rewrite C99 construction to C89 as GCC 4.8 doesn't enable C99 by default -Patch4: %{name}-stdc.patch BuildRequires: audit-libs -BuildRequires: courier-authlib-devel >= 0.68 -BuildRequires: courier-unicode-devel >= 2.0 +BuildRequires: courier-authlib-devel >= 0.71 +BuildRequires: courier-unicode-devel >= 2.1 BuildRequires: db-devel BuildRequires: gamin-devel BuildRequires: gcc-c++ @@ -62,7 +60,7 @@ BuildRequires: zlib-devel BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(systemd) -Requires: courier-authlib >= 0.68 +Requires: courier-authlib >= 0.71 Requires: fam-server Requires: gdbm Requires: openssl @@ -103,7 +101,6 @@ %patch0 %patch2 %patch3 -%patch4 %build %configure \ ++++++ courier-imap-5.0.10.tar.bz2 -> courier-imap-5.0.11.tar.bz2 ++++++ ++++ 4740 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/configure.ac new/courier-imap-5.0.11/configure.ac --- old/courier-imap-5.0.10/configure.ac 2020-04-20 14:09:34.000000000 +0200 +++ new/courier-imap-5.0.11/configure.ac 2020-06-18 03:22:56.000000000 +0200 @@ -1,16 +1,17 @@ dnl Process this file with autoconf to produce a configure script. dnl -dnl Copyright 1998 - 2019 Double Precision, Inc. See COPYING for +dnl Copyright 1998 - 2020 Double Precision, Inc. See COPYING for dnl distribution information. AC_PREREQ(2.59) -AC_INIT(courier-imap, 5.0.10, [courier-i...@lists.sourceforge.net]) +AC_INIT(courier-imap, 5.0.11, [courier-i...@lists.sourceforge.net]) AC_CONFIG_SRCDIR(libs/imap/imapd.c) AC_CONFIG_HEADERS(config.h) AM_INIT_AUTOMAKE >confdefs.h # Kill PACKAGE_ macros AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_AWK AC_PROG_INSTALL AC_PROG_LN_S @@ -145,9 +146,9 @@ AC_MSG_WARN([]) AC_MSG_ERROR(courierauthconfig not found) fi -if test `$COURIERAUTHCONFIG --version=0.61.0` = "no" +if test `$COURIERAUTHCONFIG --version=0.70.0.20200518` = "no" then - AC_MSG_ERROR(Courier authentication library version 0.61 required.) + AC_MSG_ERROR(Courier authentication library version 0.71 is required.) fi $COURIERAUTHCONFIG --configfiles >conftest || exit 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/courier-imap.spec new/courier-imap-5.0.11/courier-imap.spec --- old/courier-imap-5.0.10/courier-imap.spec 2020-04-20 14:25:04.000000000 +0200 +++ new/courier-imap-5.0.11/courier-imap.spec 2020-06-18 03:37:57.000000000 +0200 @@ -26,13 +26,13 @@ %define _missing_doc_files_terminate_build 1 %define _unpackaged_files_terminate_build 1 -Summary: Courier-IMAP 5.0.10 IMAP server +Summary: Courier-IMAP 5.0.11 IMAP server Name: courier-imap -Version: 5.0.10 +Version: 5.0.11 Release: 1%{courier_release} License: GPL Group: Applications/Mail -Source: %{name}-5.0.10.tar.bz2 +Source: %{name}-5.0.11.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot Requires: coreutils sed %if %suse_version @@ -97,7 +97,7 @@ # SuSE specific settings %if %suse_version # some templates for SuSE distribs. -%define templdir ${RPM_BUILD_DIR}/%{name}-5.0.10/packaging/suse +%define templdir ${RPM_BUILD_DIR}/%{name}-5.0.11/packaging/suse %define _sysconfdir /etc/courier-imap %define _mandir /usr/share/man %define initlndir /usr/sbin diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/bdbobj/configure.ac new/courier-imap-5.0.11/libs/bdbobj/configure.ac --- old/courier-imap-5.0.10/libs/bdbobj/configure.ac 2014-02-16 10:00:09.000000000 +0100 +++ new/courier-imap-5.0.11/libs/bdbobj/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -15,6 +15,7 @@ dnl Checks for programs. AC_USE_SYSTEM_EXTENSIONS AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_AWK AC_PROG_CXX AC_ISC_POSIX diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/gdbmobj/configure.ac new/courier-imap-5.0.11/libs/gdbmobj/configure.ac --- old/courier-imap-5.0.10/libs/gdbmobj/configure.ac 2014-02-16 10:00:09.000000000 +0100 +++ new/courier-imap-5.0.11/libs/gdbmobj/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -15,6 +15,7 @@ dnl Checks for programs. AC_USE_SYSTEM_EXTENSIONS AC_PROG_CC +AC_PROG_CC_C99 AC_ISC_POSIX AC_PROG_AWK AC_PROG_CXX diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/imap/ChangeLog new/courier-imap-5.0.11/libs/imap/ChangeLog --- old/courier-imap-5.0.10/libs/imap/ChangeLog 2020-04-20 14:12:25.000000000 +0200 +++ new/courier-imap-5.0.11/libs/imap/ChangeLog 2020-06-18 03:24:23.000000000 +0200 @@ -1,3 +1,12 @@ +5.0.11 + +2020-05-18 Sam Varshavchik <mr...@courier-mta.com> + + * courier-authlib API update. + +2020-04-21 Sam Varshavchik <mr...@courier-mta.com> + + * Add AC_PROG_CC_C99 to configure 5.0.10 2020-02-25 FlorianMickler <flor...@mickler.org> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/imap/authenticate_auth.c new/courier-imap-5.0.11/libs/imap/authenticate_auth.c --- old/courier-imap-5.0.10/libs/imap/authenticate_auth.c 2013-08-25 20:52:10.000000000 +0200 +++ new/courier-imap-5.0.11/libs/imap/authenticate_auth.c 2020-05-19 03:40:15.000000000 +0200 @@ -136,7 +136,8 @@ if (!p || !*p) p="imap"; - rc=auth_generic(p, authtype, authdata, login_callback, (void *)tag); + rc=auth_generic_meta(NULL, p, authtype, authdata, + login_callback, (void *)tag); free(authtype); free(authdata); return (rc); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/imap/configure.ac new/courier-imap-5.0.11/libs/imap/configure.ac --- old/courier-imap-5.0.10/libs/imap/configure.ac 2020-04-20 14:12:25.000000000 +0200 +++ new/courier-imap-5.0.11/libs/imap/configure.ac 2020-06-18 03:24:23.000000000 +0200 @@ -4,7 +4,7 @@ dnl Copyright 1998 - 2019 Double Precision, Inc. See COPYING for dnl distribution information. -AC_INIT(courier-imap, 5.0.10, [courier-us...@lists.sourceforge.net]) +AC_INIT(courier-imap, 5.0.11, [courier-us...@lists.sourceforge.net]) >confdefs.h # Kill PACKAGE_ macros @@ -18,6 +18,7 @@ dnl Checks for programs. AC_USE_SYSTEM_EXTENSIONS AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_AWK AC_PROG_INSTALL AC_PROG_LN_S diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/imap/imaplogin.c new/courier-imap-5.0.11/libs/imap/imaplogin.c --- old/courier-imap-5.0.10/libs/imap/imaplogin.c 2019-09-06 03:43:44.000000000 +0200 +++ new/courier-imap-5.0.11/libs/imap/imaplogin.c 2020-05-19 03:40:15.000000000 +0200 @@ -374,7 +374,8 @@ if (!p || !*p) p="imap"; - rc=auth_login(p, userid, passwd, login_callback, (void *)tag); + rc=auth_login_meta(NULL, p, userid, passwd, + login_callback, (void *)tag); courier_safe_printf("INFO: LOGIN FAILED, user=%s, ip=[%s], port=[%s]", userid, getenv("TCPREMOTEIP"), getenv("TCPREMOTEPORT")); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/imap/pop3login.c new/courier-imap-5.0.11/libs/imap/pop3login.c --- old/courier-imap-5.0.10/libs/imap/pop3login.c 2019-09-06 03:43:44.000000000 +0200 +++ new/courier-imap-5.0.11/libs/imap/pop3login.c 2020-05-19 03:40:15.000000000 +0200 @@ -1,5 +1,5 @@ /* -** Copyright 1998 - 2014 Double Precision, Inc. +** Copyright 1998 - 2020 Double Precision, Inc. ** See COPYING for distribution information. */ @@ -403,11 +403,12 @@ if (!q || !*q) q="pop3"; - rc=auth_generic(q, - authtype, - authdata, - login_callback, - NULL); + rc=auth_generic_meta + (NULL, q, + authtype, + authdata, + login_callback, + NULL); free(authtype); free(authdata); } @@ -452,7 +453,8 @@ if (!q || !*q) q="pop3"; - rc=auth_login(q, user, p, login_callback, NULL); + rc=auth_login_meta(NULL, q, user, p, + login_callback, NULL); courier_safe_printf ("INFO: LOGIN " "FAILED, user=%s, ip=[%s], port=[%s]", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/libhmac/configure.ac new/courier-imap-5.0.11/libs/libhmac/configure.ac --- old/courier-imap-5.0.10/libs/libhmac/configure.ac 2014-02-16 10:00:09.000000000 +0100 +++ new/courier-imap-5.0.11/libs/libhmac/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -20,6 +20,7 @@ AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_LIBTOOL if test "$GCC" = yes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/liblock/configure.ac new/courier-imap-5.0.11/libs/liblock/configure.ac --- old/courier-imap-5.0.10/libs/liblock/configure.ac 2014-02-16 10:00:09.000000000 +0100 +++ new/courier-imap-5.0.11/libs/liblock/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -17,6 +17,7 @@ dnl Checks for programs. AC_PROG_AWK AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_LIBTOOL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/maildir/configure.ac new/courier-imap-5.0.11/libs/maildir/configure.ac --- old/courier-imap-5.0.10/libs/maildir/configure.ac 2018-07-29 06:04:23.000000000 +0200 +++ new/courier-imap-5.0.11/libs/maildir/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -18,6 +18,7 @@ AC_PROG_AWK AC_USE_SYSTEM_EXTENSIONS AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_INSTALL AC_PROG_LN_S AC_LIBTOOL_DLOPEN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/makedat/configure.ac new/courier-imap-5.0.11/libs/makedat/configure.ac --- old/courier-imap-5.0.10/libs/makedat/configure.ac 2014-02-16 10:00:09.000000000 +0100 +++ new/courier-imap-5.0.11/libs/makedat/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -15,6 +15,7 @@ dnl Checks for programs. AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_INSTALL AC_PROG_LN_S AC_PATH_PROGS(PERL, perl5 perl, perl, $LPATH) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/md5/configure.ac new/courier-imap-5.0.11/libs/md5/configure.ac --- old/courier-imap-5.0.10/libs/md5/configure.ac 2014-02-16 10:00:09.000000000 +0100 +++ new/courier-imap-5.0.11/libs/md5/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -20,6 +20,7 @@ AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_LIBTOOL if test "$GCC" = yes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/numlib/configure.ac new/courier-imap-5.0.11/libs/numlib/configure.ac --- old/courier-imap-5.0.10/libs/numlib/configure.ac 2014-02-16 10:00:09.000000000 +0100 +++ new/courier-imap-5.0.11/libs/numlib/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -16,6 +16,7 @@ dnl Checks for programs. AC_PROG_AWK AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_LIBTOOL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/random128/configure.ac new/courier-imap-5.0.11/libs/random128/configure.ac --- old/courier-imap-5.0.10/libs/random128/configure.ac 2014-02-16 10:00:09.000000000 +0100 +++ new/courier-imap-5.0.11/libs/random128/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -19,6 +19,7 @@ AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_CC +AC_PROG_CC_C99 AC_PATH_PROGS(PS, ps, ps, $LPATH) AC_PATH_PROGS(W, w, w, $LPATH) AC_PROG_LIBTOOL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/rfc1035/configure.ac new/courier-imap-5.0.11/libs/rfc1035/configure.ac --- old/courier-imap-5.0.10/libs/rfc1035/configure.ac 2018-07-28 21:32:31.000000000 +0200 +++ new/courier-imap-5.0.11/libs/rfc1035/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -16,6 +16,7 @@ dnl Checks for programs. AC_PROG_AWK AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_INSTALL AC_PROG_LN_S AC_LIBTOOL_DLOPEN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/rfc1035/rfc1035.h new/courier-imap-5.0.11/libs/rfc1035/rfc1035.h --- old/courier-imap-5.0.10/libs/rfc1035/rfc1035.h 2020-04-08 11:00:04.000000000 +0200 +++ new/courier-imap-5.0.11/libs/rfc1035/rfc1035.h 2020-05-08 11:00:06.000000000 +0200 @@ -228,6 +228,22 @@ #define RFC1035_X_RANDOMIZE 1 /* Randomize query results */ +/* +** rfc1035_resolve_cname_multiple is a version of rfc1035_resolve_cname +** that accepts an array of qtypes, and issues a query for each qtype. +** +** qtypes points to a 0-terminated list of RRs. +*/ +int rfc1035_resolve_cname_multiple(struct rfc1035_res *res, + char *namebuf, + /* RFC1035_MAXNAMESIZE buffer with + ** the name to query */ + unsigned char *qtypes, + unsigned qclass, + struct rfc1035_reply **ptr, + int x_flags); + + /* ** Always call replyfree when done. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/rfc1035/rfc1035reply.c new/courier-imap-5.0.11/libs/rfc1035/rfc1035reply.c --- old/courier-imap-5.0.10/libs/rfc1035/rfc1035reply.c 2018-07-28 21:32:31.000000000 +0200 +++ new/courier-imap-5.0.11/libs/rfc1035/rfc1035reply.c 2020-05-08 11:00:06.000000000 +0200 @@ -489,7 +489,10 @@ void rfc1035_rr_rand(struct rfc1035_reply *rr) { - rfc1035_rr_rand_an(rr); - rfc1035_rr_rand_ns(rr); - rfc1035_rr_rand_ar(rr); + if (rr->ancount > 1) + rfc1035_rr_rand_an(rr); + if (rr->nscount > 1) + rfc1035_rr_rand_ns(rr); + if (rr->arcount > 1) + rfc1035_rr_rand_ar(rr); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/rfc1035/rfc1035resolve.c new/courier-imap-5.0.11/libs/rfc1035/rfc1035resolve.c --- old/courier-imap-5.0.10/libs/rfc1035/rfc1035resolve.c 2020-04-10 11:00:04.000000000 +0200 +++ new/courier-imap-5.0.11/libs/rfc1035/rfc1035resolve.c 2020-04-22 11:00:04.000000000 +0200 @@ -84,8 +84,7 @@ static struct rfc1035_reply *rfc1035_resolve_multiple_attempt(struct rfc1035_res *res, - int opcode, - struct querybuf *qbuf, + struct rfc1035_udp_query_responses *resps, int udpfd, int af, const RFC1035_ADDR *sin, @@ -93,8 +92,8 @@ static struct rfc1035_reply *rfc1035_resolve_multiple_attempt_tcp(struct rfc1035_res *res, - int opcode, - struct querybuf *qbuf, + char const*query, + unsigned querylen, int af, const RFC1035_ADDR *sin, int isaxfr, @@ -106,9 +105,9 @@ const struct rfc1035_query *queries, unsigned nqueries) { - struct querybuf qbuf; + struct querybuf qbuf[nqueries]; int udpfd; - int attempt; + unsigned attempt; const RFC1035_ADDR *ns; unsigned nscount; unsigned current_timeout, timeout_backoff; @@ -116,6 +115,7 @@ int af; unsigned i; int isaxfr=0; + struct rfc1035_udp_query_responses *resps=0; struct rfc1035_reply *rfcreply=0; static const char fakereply[]={0, 0, 0, RFC1035_RCODE_SERVFAIL, @@ -130,20 +130,21 @@ if (res->rfc1035_good_ns >= nscount) res->rfc1035_good_ns=0; - qbuf.qbuflen=0; - if ( rfc1035_mkquery(res, - opcode, queries, nqueries, &putqbuf, &qbuf)) - { - errno=EINVAL; - return (0); - } - for (i=0; i<nqueries; i++) + { + qbuf[i].qbuflen=0; + if ( rfc1035_mkquery(res, + opcode, &queries[i], 1, &putqbuf, &qbuf[i])) + { + errno=EINVAL; + return (0); + } if (queries[i].qtype == RFC1035_TYPE_AXFR) { isaxfr=1; break; } + } if (isaxfr && nqueries > 1) return rfc1035_replyparse(fakereply, sizeof(fakereply)); @@ -152,6 +153,11 @@ if ((udpfd=rfc1035_open_udp(&af)) < 0) return (0); + /* Prepare responses array for multple queries */ + + if (!isaxfr) + resps=rfc1035_udp_query_response_alloc_bis(qbuf, nqueries); + /* Keep trying until we get an answer from a nameserver */ current_timeout=res->rfc1035_timeout_initial; @@ -172,16 +178,15 @@ rfcreply=isaxfr ? rfc1035_resolve_multiple_attempt_tcp (res, - opcode, - &qbuf, + qbuf[0].qbuf, + qbuf[0].qbuflen, af, sin, 1, current_timeout) : rfc1035_resolve_multiple_attempt (res, - opcode, - &qbuf, + resps, udpfd, af, sin, @@ -202,6 +207,9 @@ sox_close(udpfd); + if (resps) + rfc1035_udp_query_response_free(resps); + if (!rfcreply) rfcreply=rfc1035_replyparse(fakereply, sizeof(fakereply)); @@ -210,78 +218,113 @@ static struct rfc1035_reply *rfc1035_resolve_multiple_attempt(struct rfc1035_res *res, - int opcode, - struct querybuf *qbuf, + struct rfc1035_udp_query_responses *resps, int udpfd, int af, const RFC1035_ADDR *sin, unsigned current_timeout) { - int nbytes; - char *reply; - struct rfc1035_reply *rfcreply=0; - + struct rfc1035_reply *rfcreply=0, **rfcpp=&rfcreply; int sin_len=sizeof(*sin); - int dotcp=0; + unsigned n, nqueries=resps->n_queries; + if (!resps) + return NULL; - if (!dotcp) - { + if (!dotcp) + { /* Send the query via UDP */ RFC1035_NETADDR addrbuf; const struct sockaddr *addrptr; int addrptrlen; - if (rfc1035_mkaddress(af, &addrbuf, - sin, htons(53), - &addrptr, &addrptrlen)) - return NULL; - - if ((reply=rfc1035_query_udp(res, udpfd, addrptr, - addrptrlen, qbuf->qbuf, qbuf->qbuflen, &nbytes, - current_timeout)) == 0) - return NULL; + if (rfc1035_mkaddress(af, &addrbuf, + sin, htons(53), + &addrptr, &addrptrlen)) + return NULL; + + if (rfc1035_udp_query_multi(res, udpfd, addrptr, + addrptrlen, resps, current_timeout) == 0) + return NULL; - /* Parse the reply */ + /* Parse the replies */ - rfcreply=rfc1035_replyparse(reply, nbytes); - if (!rfcreply) + for (n = 0; n < nqueries; ++n) + { + struct rfc1035_udp_query_response *reply=&resps->queries[n]; + if (!reply->response) + break; // How come? rfc1035_udp_query_multi succeeded... + + *rfcpp=rfc1035_replyparse(reply->response, reply->resplen); + if (!*rfcpp) { - free(reply); - return NULL; - /* Bad response from the server, try the next one. */ + free(reply->response); // possibly unparseable + reply->response=0; + break; } - rfcreply->mallocedbuf=reply; - /* - ** If the reply came back with the truncated bit set, - ** retry the query via TCP. - */ - if (rfcreply->tc) - { + if ((*rfcpp)->tc) dotcp=1; + (*rfcpp)->mallocedbuf=reply->response; + reply->response=0; + rfcpp=&(*rfcpp)->next; + } + + if (n < nqueries) + { + if (rfcreply) rfc1035_replyfree(rfcreply); + return NULL; + } + } + + if (dotcp) + { + n = 0; + for (rfcpp=&rfcreply; *rfcpp; rfcpp=&(*rfcpp)->next, ++n) + { + /* + * UDP replies are all in, some were truncated. + */ + if ((*rfcpp)->tc) + { + struct rfc1035_reply *next=(*rfcpp)->next, *newrfc; + struct rfc1035_udp_query_response *reply=&resps->queries[n]; + + newrfc=rfc1035_resolve_multiple_attempt_tcp(res, + reply->query, reply->querylen, + af, sin, 0, current_timeout); + if (!newrfc) + break; + + /* + * Replace the truncated reply in the linked list + */ + (*rfcpp)->next=0; // only free this + rfc1035_replyfree(*rfcpp); + *rfcpp=newrfc; + (*rfcpp)->next=next; } } - if (dotcp) + if (n < nqueries && rfcreply) { - rfcreply=rfc1035_resolve_multiple_attempt_tcp - (res, opcode, qbuf, af, sin, 0, - current_timeout); - if (!rfcreply) - return NULL; + rfc1035_replyfree(rfcreply); + rfcreply=0; } + } + if (rfcreply) memcpy(&rfcreply->server_addr, sin, sin_len); - return (rfcreply); + + return (rfcreply); } static struct rfc1035_reply *rfc1035_resolve_multiple_attempt_tcp(struct rfc1035_res *res, - int opcode, - struct querybuf *qbuf, + char const*query, + unsigned querylen, int af, const RFC1035_ADDR *sin, int isaxfr, @@ -299,66 +342,67 @@ */ unsigned check_soa=1; - int tcpfd; - struct rfc1035_reply *firstreply=0, *lastreply=0; + int tcpfd; + struct rfc1035_reply *firstreply=0, *lastreply=0; - if ((tcpfd=rfc1035_open_tcp(res, sin)) < 0) - return NULL; /* - ** Can't connect via TCP, - ** try the next server. - */ + if ((tcpfd=rfc1035_open_tcp(res, sin)) < 0) + return NULL; /* + ** Can't connect via TCP, + ** try the next server. + */ - reply=rfc1035_query_tcp(res, tcpfd, qbuf->qbuf, - qbuf->qbuflen, &nbytes, current_timeout); + reply=rfc1035_query_tcp(res, tcpfd, query, + querylen, &nbytes, current_timeout); - if (!reply) - { - sox_close(tcpfd); - return NULL; - } + if (!reply) + { + sox_close(tcpfd); + return NULL; + } - rfcreply=rfc1035_replyparse(reply, nbytes); - if (!rfcreply) - { - free(reply); - sox_close(tcpfd); - return NULL; - } - rfcreply->mallocedbuf=reply; - firstreply=lastreply=rfcreply; - while (isaxfr && rfcreply->rcode == 0) - { - for (i=check_soa; i<rfcreply->ancount; ++i) - { - if (rfcreply->anptr[i].rrtype == - RFC1035_TYPE_SOA) - break; - } + rfcreply=rfc1035_replyparse(reply, nbytes); + if (!rfcreply) + { + free(reply); + sox_close(tcpfd); + return NULL; + } + rfcreply->mallocedbuf=reply; + firstreply=lastreply=rfcreply; + while (isaxfr && rfcreply->rcode == 0) + { + for (i=check_soa; i<rfcreply->ancount; ++i) + { + if (rfcreply->anptr[i].rrtype == + RFC1035_TYPE_SOA) + break; + } - if (i < rfcreply->ancount) - break; /* Found trailing SOA */ + if (i < rfcreply->ancount) + break; /* Found trailing SOA */ - check_soa=0; + check_soa=0; - if ((reply=rfc1035_recv_tcp(res, - tcpfd, &nbytes, current_timeout))==0) - break; + if ((reply=rfc1035_recv_tcp(res, + tcpfd, &nbytes, + current_timeout))==0) + break; - rfcreply=rfc1035_replyparse(reply, nbytes); - if (!rfcreply) - { - free(reply); - rfc1035_replyfree(firstreply); - firstreply=0; - break; - } - rfcreply->mallocedbuf=reply; - lastreply->next=rfcreply; - lastreply=rfcreply; - } - sox_close(tcpfd); + rfcreply=rfc1035_replyparse(reply, nbytes); + if (!rfcreply) + { + free(reply); + rfc1035_replyfree(firstreply); + firstreply=0; + break; + } + rfcreply->mallocedbuf=reply; + lastreply->next=rfcreply; + lastreply=rfcreply; + } + sox_close(tcpfd); - return firstreply; + return firstreply; } struct rfc1035_reply *rfc1035_resolve( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/rfc1035/rfc1035search.c new/courier-imap-5.0.11/libs/rfc1035/rfc1035search.c --- old/courier-imap-5.0.10/libs/rfc1035/rfc1035search.c 2015-06-27 19:52:32.000000000 +0200 +++ new/courier-imap-5.0.11/libs/rfc1035/rfc1035search.c 2020-05-09 11:00:03.000000000 +0200 @@ -141,7 +141,8 @@ return (-1); } -int rfc1035_resolve_cname(struct rfc1035_res *res, char *namebuf, +int rfc1035_resolve_cname(struct rfc1035_res *res, + char *namebuf, unsigned qtype, unsigned qclass, struct rfc1035_reply **ptr, @@ -212,3 +213,141 @@ return (-1); } } + +int rfc1035_resolve_cname_multiple(struct rfc1035_res *res, + char *namebuf, + unsigned char *qtypes, + unsigned qclass, + struct rfc1035_reply **ptr, + int x_flags) +{ + int n, query_again; + int retry_count=10; + unsigned nqueries=strlen((char*)qtypes), u, good, cname; + struct rfc1035_query qu[nqueries]; + struct rfc1035_reply *p; + + char savename[RFC1035_MAXNAMESIZE+1], + cmpname1[RFC1035_MAXNAMESIZE+1], + cmpname2[RFC1035_MAXNAMESIZE+1]; + + static const char forbidden[] = + { + RFC1035_TYPE_CNAME, + RFC1035_TYPE_AXFR, + RFC1035_TYPE_ANY, + 0 + }; + + *ptr=NULL; + + if (nqueries == 0) + return -1; + + strcpy(savename, namebuf); + for (u=0; u<nqueries; ++u) + { + qu[u].name=namebuf; + qu[u].qclass=qclass; + qu[u].qtype=qtypes[u]; + + if (strchr(forbidden, qtypes[u])) + { + if (nqueries == 1) + { + return rfc1035_resolve_cname(res, namebuf, + qtypes[0], + qclass, + ptr, + x_flags); + } + return -1; + } + } + + do // query loop + { + if (*ptr) + rfc1035_replyfree( *ptr ); + + if ( (*ptr=rfc1035_resolve_multiple(res, RFC1035_OPCODE_QUERY, + qu, nqueries)) == 0) + return (-1); + + query_again=0; + + for (;;) // change name loop + { + int fatal = 0; + + good = cname = 0; + for (u=0, p=*ptr; p; ++u, p=p->next) + { + if (p->rcode != RFC1035_RCODE_NOERROR || + (n=rfc1035_replysearch_all(res, + p, namebuf, + qu[u].qtype, + qclass, 0)) + < 0) + continue; + else if (p->allrrs[n]->rrtype == qu[u].qtype) + { + ++good; + } + else // CNAME (not the queried type). + { + if (rfc1035_replyhostname(p, p->anptr[n].rr.domainname, + cname? cmpname1: cmpname2) == 0) + fatal=-1; + + else if (cname && strcmp(cmpname1, cmpname2)) + query_again=1; // different aliases: try again + + ++cname; + } + } + + if (good == 0 && cname == 0) + { + return (-1); + } + + if (good > 0 && cname > 0) + query_again=1; // have both cnames and non-cnames + + if (query_again) + { + if (--retry_count > 0) + { + /* Query back from the original alias. */ + strcpy(namebuf, savename); + break; + } + + fatal=RFC1035_ERR_CNAME_RECURSIVE; + } + + if (fatal) + { + rfc1035_replyfree( *ptr ); + *ptr=0; + return fatal; + } + + if (good) + break; + + /* CNAME found. Return alias to caller, and restart from there */ + + strcpy(namebuf, cmpname1); + } + + } while (query_again); + + if (x_flags & RFC1035_X_RANDOMIZE) + for (p=*ptr; p; p=p->next) + if (p->rcode == RFC1035_RCODE_NOERROR) + rfc1035_rr_rand(p); + + return (0); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/rfc1035/testlookup.c new/courier-imap-5.0.11/libs/rfc1035/testlookup.c --- old/courier-imap-5.0.10/libs/rfc1035/testlookup.c 2020-04-07 11:00:06.000000000 +0200 +++ new/courier-imap-5.0.11/libs/rfc1035/testlookup.c 2020-05-08 11:00:06.000000000 +0200 @@ -74,13 +74,65 @@ } } +static int get_q_type_pass(const char *p, + void (*cb)(unsigned char, void *), + void *ptr) +{ + char qbuf[strlen(p)+1]; + char *q; + + strcpy(qbuf, p); + + for (q=qbuf; (q=strtok(q, ", \t\r\n")); q=0) + { + int n=rfc1035_type_strtoi(q); + + if (n < 0) + return -1; + + (*cb)(n, ptr); + } + + return 0; +} + +static void get_q_type_count(unsigned char c, void *ptr) +{ + ++*(size_t *)ptr; +} + +static void get_q_type_save(unsigned char c, void *ptr) +{ + *(*(unsigned char **)ptr)++=c; +} + +static unsigned char *get_q_type(const char *p) +{ + size_t n=0; + unsigned char *buf, *q; + + errno=EINVAL; + if (get_q_type_pass(p, &get_q_type_count, &n) < 0) + return 0; + + if ((buf=(unsigned char *)malloc(n+1)) == 0) + return 0; + + q=buf; + get_q_type_pass(p, &get_q_type_save, &q); + + *q=0; + + return buf; +} + int main(int argc, char **argv) { struct rfc1035_res res; struct rfc1035_reply *replyp; int argn; const char *q_name; -int q_type; +unsigned char *q_type; int q_class; int q_xflag=0; int q_rflag=0; @@ -229,18 +281,26 @@ exit(1); } - q_type= -1; + q_type=0; if (argn < argc) { if (strcmp(argv[argn], "spf") == 0) - q_type= -2; - else - q_type=rfc1035_type_strtoi(argv[argn++]); + { + spflookup(q_name); + exit(0); + } + q_type=get_q_type(argv[argn]); + if (!q_type) + { + perror(argv[argn]); + exit(1); + } + argn++; } - if (q_type == -1) - q_type=q_xflag ? RFC1035_TYPE_PTR:RFC1035_TYPE_ANY; + if (q_type == 0) + q_type=get_q_type(q_xflag ? "PTR":"ANY"); q_class= -1; if (argn < argc) @@ -248,22 +308,49 @@ if (q_class < 0) q_class=RFC1035_CLASS_IN; - if (q_type == -2) + if (q_type[0] && q_type[1]) { - spflookup(q_name); - exit(0); - } + char namebuf[RFC1035_MAXNAMESIZE+1]; - replyp=rfc1035_resolve(&res, RFC1035_OPCODE_QUERY, - q_name, q_type, q_class); + namebuf[0]=0; + strncat(namebuf, q_name, RFC1035_MAXNAMESIZE); + if (rfc1035_resolve_cname_multiple(&res, namebuf, + q_type, q_class, + &replyp, + RFC1035_X_RANDOMIZE) + < 0) + replyp=0; + } + else + { + replyp=rfc1035_resolve(&res, RFC1035_OPCODE_QUERY, + q_name, q_type[0], q_class); + } + free(q_type); if (!replyp) { perror(argv[0]); exit(1); } - rfc1035_dump(replyp, stdout); + if (q_type[0] && q_type[1]) + { + struct rfc1035_reply *q; + + for (q=replyp; q; q=q->next) + { + struct rfc1035_reply *s=q->next; + + q->next=0; + rfc1035_dump(q, stdout); + q->next=s; + } + } + else + { + rfc1035_dump(replyp, stdout); + } rfc1035_replyfree(replyp); rfc1035_destroy_resolv(&res); return (0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/rfc2045/configure.ac new/courier-imap-5.0.11/libs/rfc2045/configure.ac --- old/courier-imap-5.0.10/libs/rfc2045/configure.ac 2018-07-29 06:04:23.000000000 +0200 +++ new/courier-imap-5.0.11/libs/rfc2045/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -13,6 +13,7 @@ dnl Checks for programs. AC_USE_SYSTEM_EXTENSIONS AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_CXX AC_LIBTOOL_DLOPEN AM_PROG_LIBTOOL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/rfc822/configure.ac new/courier-imap-5.0.11/libs/rfc822/configure.ac --- old/courier-imap-5.0.10/libs/rfc822/configure.ac 2017-10-04 01:26:26.000000000 +0200 +++ new/courier-imap-5.0.11/libs/rfc822/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -15,6 +15,7 @@ dnl Checks for programs. AC_USE_SYSTEM_EXTENSIONS AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_LIBTOOL if test "$GCC" = yes ; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/sha1/configure.ac new/courier-imap-5.0.11/libs/sha1/configure.ac --- old/courier-imap-5.0.10/libs/sha1/configure.ac 2014-02-16 10:00:09.000000000 +0100 +++ new/courier-imap-5.0.11/libs/sha1/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -17,6 +17,7 @@ dnl Checks for programs. AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_LIBTOOL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/soxwrap/configure.ac new/courier-imap-5.0.11/libs/soxwrap/configure.ac --- old/courier-imap-5.0.10/libs/soxwrap/configure.ac 2014-02-16 10:00:09.000000000 +0100 +++ new/courier-imap-5.0.11/libs/soxwrap/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -21,6 +21,7 @@ AC_PROG_RANLIB AC_PROG_LN_S AC_PROG_CC +AC_PROG_CC_C99 dnl Check for options diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/tcpd/configure.ac new/courier-imap-5.0.11/libs/tcpd/configure.ac --- old/courier-imap-5.0.10/libs/tcpd/configure.ac 2019-12-11 02:42:02.000000000 +0100 +++ new/courier-imap-5.0.11/libs/tcpd/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -15,6 +15,7 @@ dnl Checks for programs. AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_INSTALL AC_PROG_LN_S AC_LIBTOOL_DLOPEN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/tcpd/libcouriergnutls.c new/courier-imap-5.0.11/libs/tcpd/libcouriergnutls.c --- old/courier-imap-5.0.10/libs/tcpd/libcouriergnutls.c 2019-12-06 05:23:52.000000000 +0100 +++ new/courier-imap-5.0.11/libs/tcpd/libcouriergnutls.c 2020-04-25 11:00:06.000000000 +0200 @@ -567,7 +567,6 @@ p=idn_domain ? idn_domain:ssl->info_cpy.peer_verify_domain; - printf("Check %s\n", p); rc=gnutls_x509_crt_check_hostname(cert, p); if (idn_domain) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/tcpd/libcouriertls.c new/courier-imap-5.0.11/libs/tcpd/libcouriertls.c --- old/courier-imap-5.0.10/libs/tcpd/libcouriertls.c 2020-04-20 14:12:25.000000000 +0200 +++ new/courier-imap-5.0.11/libs/tcpd/libcouriertls.c 2020-05-19 03:40:15.000000000 +0200 @@ -194,7 +194,7 @@ } } - if (idna_to_unicode_8z8z(info->peer_verify_domain, &idn_domain1, 0) + if (idna_to_unicode_8z8z(verify_domain, &idn_domain1, 0) != IDNA_SUCCESS) idn_domain1=0; @@ -348,6 +348,9 @@ { char errmsg[256]; + if (errno == 0) + return; + strcpy(errmsg, "couriertls: "); strncat(errmsg, pfix, 200); strcat(errmsg, ": "); @@ -1362,6 +1365,8 @@ struct tls_info *info=SSL_get_app_data(ssl); int n; + errno=0; + if (info->connect_interrupted) { n=SSL_connect(ssl); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/tcpd/tcpd.c new/courier-imap-5.0.11/libs/tcpd/tcpd.c --- old/courier-imap-5.0.10/libs/tcpd/tcpd.c 2017-03-11 18:35:17.000000000 +0100 +++ new/courier-imap-5.0.11/libs/tcpd/tcpd.c 2020-05-10 11:00:12.000000000 +0200 @@ -1,5 +1,5 @@ /* -** Copyright 1998 - 2013 Double Precision, Inc. +** Copyright 1998 - 2020 Double Precision, Inc. ** See COPYING for distribution information. */ @@ -1143,7 +1143,7 @@ if (select(maxfd+1, &fdr, NULL, NULL, NULL) <= 0) { if (errno != EINTR) - perror("accept"); + perror("select"); continue; } @@ -1603,6 +1603,8 @@ struct rfc1035_res res; unsigned int i; int found; + unsigned char query_A[] = {RFC1035_TYPE_A, 0}, + query_A_and_TXT[] = {RFC1035_TYPE_A, RFC1035_TYPE_TXT, 0}; hostname[0]=0; strncat(hostname, nameptr, RFC1035_MAXNAMESIZE); @@ -1626,9 +1628,9 @@ else wanttxt = p->msg && strcmp(p->msg, "*") == 0; - (void)rfc1035_resolve_cname(&res, + (void)rfc1035_resolve_cname_multiple(&res, hostname, - wanttxt ? RFC1035_TYPE_TXT:RFC1035_TYPE_A, + wanttxt ? query_A_and_TXT:query_A, RFC1035_CLASS_IN, &replyp, 0); if (!replyp) @@ -1670,7 +1672,8 @@ if (p->allow) set_allow_variable(varname, p->msg); - if (!search_txt_records(&res, p->allow, varname, replyp, + if (replyp->next && + !search_txt_records(&res, p->allow, varname, replyp->next, hostname) && !p->allow) { size_t l=strlen(p->zone)+40; @@ -1702,9 +1705,9 @@ ** for a specific IP address, then take what we've got. */ - if (p->ia.s_addr == INADDR_ANY && !found) + if (p->ia.s_addr == INADDR_ANY && !found && replyp->next) { - if (search_txt_records(&res, p->allow, varname, replyp, + if (search_txt_records(&res, p->allow, varname, replyp->next, hostname)) { /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/libs/waitlib/configure.ac new/courier-imap-5.0.11/libs/waitlib/configure.ac --- old/courier-imap-5.0.10/libs/waitlib/configure.ac 2018-07-09 10:00:11.000000000 +0200 +++ new/courier-imap-5.0.11/libs/waitlib/configure.ac 2020-04-21 13:51:59.000000000 +0200 @@ -18,6 +18,7 @@ AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_LIBTOOL dnl Checks for libraries. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/courier-imap-5.0.10/rpm.release new/courier-imap-5.0.11/rpm.release --- old/courier-imap-5.0.10/rpm.release 2020-04-20 14:25:04.000000000 +0200 +++ new/courier-imap-5.0.11/rpm.release 2020-06-18 03:37:57.000000000 +0200 @@ -1,2 +1,2 @@ -VERSION=5.0.10 +VERSION=5.0.11 RELEASE=1