This commit is contained in:
Graeme Walker 2019-08-13 12:00:00 +00:00
parent c957ef5cf5
commit 604786202d
67 changed files with 646 additions and 728 deletions

View File

@ -1,6 +1,10 @@
E-MailRelay Change Log
======================
2.0 -> 2.0.1
------------
* Make PLAIN client authentication work against servers with broken 334 responses.
1.9.2 -> 2.0
------------
* Improved IPv6 support, with IPv4 and IPv6 used independently at run-time (see "--interface").

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -639,7 +639,7 @@ distdir: $(DISTFILES)
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__post_remove_distdir)
dist-bzip2: distdir
@ -665,7 +665,7 @@ dist-shar: distdir
@echo WARNING: "Support for shar distribution archives is" \
"deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__post_remove_distdir)
dist-zip: distdir
@ -683,7 +683,7 @@ dist dist-all:
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lz*) \
@ -693,7 +693,7 @@ distcheck: dist
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac

View File

@ -1 +1 @@
2.0
2.0.1

View File

@ -21,8 +21,6 @@ dnl
AC_DEFUN([GCONFIG_FN_SEARCHLIBS_POSIX],[
AC_SEARCH_LIBS([gethostbyname],[nsl])
AC_SEARCH_LIBS([connect],[socket])
AC_SEARCH_LIBS([shm_open],[rt])
AC_SEARCH_LIBS([dlopen],[dl])
])
dnl GCONFIG_FN_SEARCHLIBS_CURSES
@ -1629,6 +1627,12 @@ AC_DEFUN([GCONFIG_FN_TLS_MBEDTLS],
[[int x = MBEDTLS_ERR_NET_RECV_FAILED;]])],
gconfig_ssl_mbedtls_net_h=yes,
gconfig_ssl_mbedtls_net_h=no )
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[[#include <mbedtls/net_sockets.h>]],
[[int x = MBEDTLS_ERR_NET_RECV_FAILED;]])],
gconfig_ssl_mbedtls_net_sockets_h=yes,
gconfig_ssl_mbedtls_net_sockets_h=no )
fi
if test "$gconfig_cv_ssl_mbedtls" = "yes" ; then
@ -1639,7 +1643,7 @@ AC_DEFUN([GCONFIG_FN_TLS_MBEDTLS],
gconfig_ssl_mbedtls_libs=""
fi
if test "$gconfig_ssl_mbedtls_net_h" = "yes" ; then
if test "$gconfig_ssl_mbedtls_net_h" = "yes" -a "$gconfig_ssl_mbedtls_net_sockets_h" = "no" ; then
AC_DEFINE(GCONFIG_HAVE_MBEDTLS_NET_H,1,[Define true to use deprecated mbedtls/net.h])
else
AC_DEFINE(GCONFIG_HAVE_MBEDTLS_NET_H,0,[Define true to use deprecated mbedtls/net.h])
@ -1969,26 +1973,33 @@ dnl Tests for pam. Typically used after AC_ARG_WITH(pam).
dnl
AC_DEFUN([GCONFIG_FN_WITH_PAM],
[
AC_REQUIRE([GCONFIG_FN_SEARCHLIBS_PAM])
AC_REQUIRE([GCONFIG_FN_PAM])
gconfig_pam_compiles="no"
if test "$gconfig_cv_pam_in_security" = "yes" -o "$gconfig_cv_pam_in_pam" = "yes" -o "$gconfig_cv_pam_in_include" = "yes"
if test "$with_pam" = "no"
then
gconfig_pam_compiles="yes"
fi
gconfig_use_pam="no"
else
if test "$with_pam" = "yes" -a "$gconfig_pam_compiles" = "no"
then
AC_MSG_WARN([forcing use of pam even though it does not seem to compile])
fi
AC_SEARCH_LIBS([pam_end],[pam],[gconfig_have_libpam=yes],[gconfig_have_libpam=no])
gconfig_pam_compiles="no"
if test "$gconfig_cv_pam_in_security" = "yes" -o "$gconfig_cv_pam_in_pam" = "yes" -o "$gconfig_cv_pam_in_include" = "yes"
then
gconfig_pam_compiles="yes"
fi
gconfig_use_pam="$with_pam"
if test "$with_pam" = "" -a "$gconfig_pam_compiles" = "yes"
then
gconfig_use_pam="yes"
fi
if test "$with_pam" = "yes" -a "$gconfig_pam_compiles" = "no"
then
AC_MSG_WARN([forcing use of pam even though it does not seem to compile])
fi
gconfig_use_pam="$with_pam"
if test "$with_pam" = "" -a "$gconfig_pam_compiles" = "yes"
then
gconfig_use_pam="yes"
fi
fi
if test "$gconfig_use_pam" = "yes"
then
AC_DEFINE(GCONFIG_HAVE_PAM,1,[Define true to use pam])

46
aclocal.m4 vendored
View File

@ -1,6 +1,6 @@
# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
# generated automatically by aclocal 1.15 -*- Autoconf -*-
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
# Copyright (C) 2002-2017 Free Software Foundation, Inc.
# Copyright (C) 2002-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -35,7 +35,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.15'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
m4_if([$1], [1.15.1], [],
m4_if([$1], [1.15], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.15.1])dnl
[AM_AUTOMAKE_VERSION([1.15])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
# Copyright (C) 1997-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -141,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -332,7 +332,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
# Generate code to set up dependency tracking. -*- Autoconf -*-
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -408,7 +408,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
# Do all the work for Automake. -*- Autoconf -*-
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -605,7 +605,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -626,7 +626,7 @@ if test x"${install_sh+set}" != xset; then
fi
AC_SUBST([install_sh])])
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
# Copyright (C) 2003-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -648,7 +648,7 @@ AC_SUBST([am__leading_dot])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -683,7 +683,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# Check to see how 'make' treats includes. -*- Autoconf -*-
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -733,7 +733,7 @@ rm -f confinc confmf
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
# Copyright (C) 1997-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -772,7 +772,7 @@ fi
# Helper functions for option handling. -*- Autoconf -*-
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -801,7 +801,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -848,7 +848,7 @@ AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -867,7 +867,7 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -948,7 +948,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])
# Copyright (C) 2009-2017 Free Software Foundation, Inc.
# Copyright (C) 2009-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -1008,7 +1008,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -1036,7 +1036,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
# Copyright (C) 2006-2017 Free Software Foundation, Inc.
# Copyright (C) 2006-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -1055,7 +1055,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
# Copyright (C) 2004-2017 Free Software Foundation, Inc.
# Copyright (C) 2004-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

0
autogen.sh Executable file → Normal file
View File

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

0
bin/doxygen.sh Executable file → Normal file
View File

View File

@ -1,4 +1,4 @@
#!/bin/sh
#!/usr/bin/env perl
#
# Copyright (C) 2001-2018 Graeme Walker <graeme_walker@users.sourceforge.net>
#

View File

@ -1,4 +1,4 @@
#!/bin/sh
#!/usr/bin/env perl
#
# Copyright (C) 2001-2018 Graeme Walker <graeme_walker@users.sourceforge.net>
#

0
bootstrap Executable file → Normal file
View File

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -3,7 +3,7 @@
scriptversion=2012-10-14.11; # UTC
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify

302
configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for E-MailRelay 2.0.
# Generated by GNU Autoconf 2.69 for E-MailRelay 2.0.1.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@ -577,8 +577,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='E-MailRelay'
PACKAGE_TARNAME='emailrelay'
PACKAGE_VERSION='2.0'
PACKAGE_STRING='E-MailRelay 2.0'
PACKAGE_VERSION='2.0.1'
PACKAGE_STRING='E-MailRelay 2.0.1'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@ -1329,7 +1329,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures E-MailRelay 2.0 to adapt to many kinds of systems.
\`configure' configures E-MailRelay 2.0.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1396,7 +1396,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of E-MailRelay 2.0:";;
short | recursive ) echo "Configuration of E-MailRelay 2.0.1:";;
esac
cat <<\_ACEOF
@ -1525,7 +1525,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
E-MailRelay configure 2.0
E-MailRelay configure 2.0.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@ -1710,7 +1710,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by E-MailRelay $as_me 2.0, which was
It was created by E-MailRelay $as_me 2.0.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@ -2575,7 +2575,7 @@ fi
# Define the identity of the package.
PACKAGE='emailrelay'
VERSION='2.0'
VERSION='2.0.1'
# Some tools Automake needs.
@ -5222,178 +5222,6 @@ if test "$ac_res" != no; then :
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5
$as_echo_n "checking for library containing shm_open... " >&6; }
if ${ac_cv_search_shm_open+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char shm_open ();
int
main ()
{
return shm_open ();
;
return 0;
}
_ACEOF
for ac_lib in '' rt; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_shm_open=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if ${ac_cv_search_shm_open+:} false; then :
break
fi
done
if ${ac_cv_search_shm_open+:} false; then :
else
ac_cv_search_shm_open=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5
$as_echo "$ac_cv_search_shm_open" >&6; }
ac_res=$ac_cv_search_shm_open
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
$as_echo_n "checking for library containing dlopen... " >&6; }
if ${ac_cv_search_dlopen+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char dlopen ();
int
main ()
{
return dlopen ();
;
return 0;
}
_ACEOF
for ac_lib in '' dl; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_dlopen=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if ${ac_cv_search_dlopen+:} false; then :
break
fi
done
if ${ac_cv_search_dlopen+:} false; then :
else
ac_cv_search_dlopen=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
$as_echo "$ac_cv_search_dlopen" >&6; }
ac_res=$ac_cv_search_dlopen
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pam_end" >&5
$as_echo_n "checking for library containing pam_end... " >&6; }
if ${ac_cv_search_pam_end+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char pam_end ();
int
main ()
{
return pam_end ();
;
return 0;
}
_ACEOF
for ac_lib in '' pam; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_pam_end=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if ${ac_cv_search_pam_end+:} false; then :
break
fi
done
if ${ac_cv_search_pam_end+:} false; then :
else
ac_cv_search_pam_end=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pam_end" >&5
$as_echo "$ac_cv_search_pam_end" >&6; }
ac_res=$ac_cv_search_pam_end
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
gconfig_have_libpam=yes
else
gconfig_have_libpam=no
fi
ac_ext=cpp
@ -7676,6 +7504,24 @@ if ac_fn_cxx_try_compile "$LINENO"; then :
else
gconfig_ssl_mbedtls_net_h=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <mbedtls/net_sockets.h>
int
main ()
{
int x = MBEDTLS_ERR_NET_RECV_FAILED;
;
return 0;
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
gconfig_ssl_mbedtls_net_sockets_h=yes
else
gconfig_ssl_mbedtls_net_sockets_h=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
@ -7691,7 +7537,7 @@ $as_echo "#define GCONFIG_HAVE_MBEDTLS 0" >>confdefs.h
gconfig_ssl_mbedtls_libs=""
fi
if test "$gconfig_ssl_mbedtls_net_h" = "yes" ; then
if test "$gconfig_ssl_mbedtls_net_h" = "yes" -a "$gconfig_ssl_mbedtls_net_sockets_h" = "no" ; then
$as_echo "#define GCONFIG_HAVE_MBEDTLS_NET_H 1" >>confdefs.h
@ -8336,23 +8182,87 @@ $as_echo "#define GCONFIG_HAVE_PAM_IN_INCLUDE 0" >>confdefs.h
gconfig_pam_compiles="no"
if test "$gconfig_cv_pam_in_security" = "yes" -o "$gconfig_cv_pam_in_pam" = "yes" -o "$gconfig_cv_pam_in_include" = "yes"
if test "$with_pam" = "no"
then
gconfig_pam_compiles="yes"
fi
gconfig_use_pam="no"
else
if test "$with_pam" = "yes" -a "$gconfig_pam_compiles" = "no"
then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: forcing use of pam even though it does not seem to compile" >&5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pam_end" >&5
$as_echo_n "checking for library containing pam_end... " >&6; }
if ${ac_cv_search_pam_end+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char pam_end ();
int
main ()
{
return pam_end ();
;
return 0;
}
_ACEOF
for ac_lib in '' pam; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_cxx_try_link "$LINENO"; then :
ac_cv_search_pam_end=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if ${ac_cv_search_pam_end+:} false; then :
break
fi
done
if ${ac_cv_search_pam_end+:} false; then :
else
ac_cv_search_pam_end=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pam_end" >&5
$as_echo "$ac_cv_search_pam_end" >&6; }
ac_res=$ac_cv_search_pam_end
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
gconfig_have_libpam=yes
else
gconfig_have_libpam=no
fi
gconfig_pam_compiles="no"
if test "$gconfig_cv_pam_in_security" = "yes" -o "$gconfig_cv_pam_in_pam" = "yes" -o "$gconfig_cv_pam_in_include" = "yes"
then
gconfig_pam_compiles="yes"
fi
if test "$with_pam" = "yes" -a "$gconfig_pam_compiles" = "no"
then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: forcing use of pam even though it does not seem to compile" >&5
$as_echo "$as_me: WARNING: forcing use of pam even though it does not seem to compile" >&2;}
fi
fi
gconfig_use_pam="$with_pam"
if test "$with_pam" = "" -a "$gconfig_pam_compiles" = "yes"
then
gconfig_use_pam="yes"
gconfig_use_pam="$with_pam"
if test "$with_pam" = "" -a "$gconfig_pam_compiles" = "yes"
then
gconfig_use_pam="yes"
fi
fi
if test "$gconfig_use_pam" = "yes"
@ -9054,7 +8964,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by E-MailRelay $as_me 2.0, which was
This file was extended by E-MailRelay $as_me 2.0.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -9120,7 +9030,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
E-MailRelay config.status 2.0
E-MailRelay config.status 2.0.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"

4
configure.ac Normal file → Executable file
View File

@ -17,7 +17,7 @@ dnl
dnl Process this file with autoconf to produce a configure script.
dnl
AC_INIT([E-MailRelay],[2.0],[],[emailrelay])
AC_INIT([E-MailRelay],[2.0.1],[],[emailrelay])
AC_CONFIG_SRCDIR([src/gsmtp/gsmtp.h])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([no-define])
@ -50,7 +50,6 @@ dnl check for libraries...
dnl
AC_LANG([C])
GCONFIG_FN_SEARCHLIBS_POSIX
GCONFIG_FN_SEARCHLIBS_PAM
dnl ===
dnl check for header files, functions and typedefs...
@ -175,7 +174,6 @@ dnl ===
dnl "--with-pam"
dnl
AC_ARG_WITH(pam,AS_HELP_STRING([--with-pam],[use linux pam for authentication (default auto)]))
GCONFIG_FN_PAM
GCONFIG_FN_WITH_PAM
dnl ===

4
debian/Makefile.in vendored
View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

8
debian/changelog vendored
View File

@ -1,3 +1,7 @@
emailrelay (2.0.1) unstable; urgency=low
* Make PLAIN client authentication work against servers with broken 334 responses.
-- maintainer graeme_walker <graeme_walker@users.sourceforge.net> Tue, 13 Aug 2019 09:53:07 +0000
emailrelay (2.0) unstable; urgency=low
* Improved IPv6 support, with IPv4 and IPv6 used independently at run-time (see "--interface").
* Server process is not blocked during "--filter" or "--address-verifier" execution, if multi-threaded.
@ -27,7 +31,7 @@ emailrelay (2.0) unstable; urgency=low
* Several build-time configure options like "--disable-pop" are withdrawn.
* C++ 2011 is preferred, and required for multi-threading.
* Support for very old versions of Windows is dropped.
-- maintainer graeme_walker <graeme_walker@users.sourceforge.net> Sun, 10 Jun 2018 16:17:54 +0000
-- maintainer graeme_walker <graeme_walker@users.sourceforge.net> Fri, 15 Jun 2018 00:00:00 +0000
emailrelay (1.9.2) unstable; urgency=low
* Fixed a leak in the event-loop garbage collection.
@ -43,7 +47,7 @@ emailrelay (1.9.2) unstable; urgency=low
* Less verbose logging of "no more messages to send".
* Qt4 or Qt5 selected by the "configure" script.
* Improved the RPM spec file.
-- maintainer graeme_walker <graeme_walker@users.sourceforge.net> Sun, 10 Jun 2018 16:17:54 +0000
-- maintainer graeme_walker <graeme_walker@users.sourceforge.net> Thu, 01 Jan 2015 00:00:00 +0000
emailrelay (1.9.1) unstable; urgency=low
* Updated OpenSSL from 1.0.1e to 1.0.1g in the Windows build.

0
debian/postinst vendored Executable file → Normal file
View File

0
debian/postrm vendored Executable file → Normal file
View File

0
debian/preinst vendored Executable file → Normal file
View File

0
debian/prerm vendored Executable file → Normal file
View File

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -1,4 +1,4 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "%-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>E-MailRelay Change Log</title>
@ -9,317 +9,321 @@
<!-- index:0::::E-MailRelay Change Log -->
<div class="div-main">
<h1><a class="a-header" name="H_1">E-MailRelay Change Log</a></h1> <!-- index:1:H:1::E-MailRelay Change Log -->
<h2><a class="a-header" name="SH_1_1">1.9.2 -&gt; 2.0</a></h2> <!-- index:2:SH:1:1:1.9.2 -&gt; 2.0 -->
<h2><a class="a-header" name="SH_1_1">2.0 -> 2.0.1</a></h2> <!-- index:2:SH:1:1:2.0 -> 2.0.1 -->
<ul>
<li>Improved IPv6 support, with IPv4 and IPv6 used independently at run-time (see <em class="quote">--interface</em>).</li>
<li>Server process is not blocked during <em class="quote">--filter</em> or <em class="quote">--address-verifier</em> execution, if multi-threaded.</li>
<li>Support for the <em class="quote">mbedTLS</em> TLS library as an alternative to OpenSSL (<em class="quote">configure --with-mbedtls</em>).</li>
<li>TLS server certificates specified with new <em class="quote">--server-tls-certificate</em> option, not <em class="quote">--server-tls</em>.</li>
<li>TLS servers enable client certificate verification with <em class="quote">--server-tls-verify</em>, not <em class="quote">--tls-config</em>.</li>
<li>TLS clients can verify server certificates with <em class="quote">--client-tls-verify</em> and <em class="quote">--client-tls-verify-name</em>.</li>
<li>The <em class="quote">--tls-config</em> option works differently (see NEWS file).</li>
<li>New <em class="quote">--client-tls-server-name</em> option for server name identification (SNI).</li>
<li>New <em class="quote">--client-tls-required</em> option to force client connections to use TLS.</li>
<li>New <em class="quote">--server-tls-required</em> option to force remote SMTP clients to use STARTTLS.</li>
<li>New <em class="quote">--forward-on-disconnect</em> option replaces <em class="quote">--poll=0</em>.</li>
<li>The <em class="quote">--anonymous</em> option now suppresses the <em class="quote">Received</em> line, whatever the <em class="quote">--domain</em>.</li>
<li>Make PLAIN client authentication work against servers with broken 334 responses.</li>
</ul>
<h2><a class="a-header" name="SH_1_2">1.9.2 -> 2.0</a></h2> <!-- index:2:SH:1:2:1.9.2 -> 2.0 -->
<ul>
<li>Improved IPv6 support, with IPv4 and IPv6 used independently at run-time (see <em>--interface</em>).</li>
<li>Server process is not blocked during <em>--filter</em> or <em>--address-verifier</em> execution, if multi-threaded.</li>
<li>Support for the <em>mbedTLS</em> TLS library as an alternative to OpenSSL (<em>configure --with-mbedtls</em>).</li>
<li>TLS server certificates specified with new <em>--server-tls-certificate</em> option, not <em>--server-tls</em>.</li>
<li>TLS servers enable client certificate verification with <em>--server-tls-verify</em>, not <em>--tls-config</em>.</li>
<li>TLS clients can verify server certificates with <em>--client-tls-verify</em> and <em>--client-tls-verify-name</em>.</li>
<li>The <em>--tls-config</em> option works differently (see NEWS file).</li>
<li>New <em>--client-tls-server-name</em> option for server name identification (SNI).</li>
<li>New <em>--client-tls-required</em> option to force client connections to use TLS.</li>
<li>New <em>--server-tls-required</em> option to force remote SMTP clients to use STARTTLS.</li>
<li>New <em>--forward-on-disconnect</em> option replaces <em>--poll=0</em>.</li>
<li>The <em>--anonymous</em> option now suppresses the <em>Received</em> line, whatever the <em>--domain</em>.</li>
<li>The second field in the secrets file indicates the password encoding, not AUTH mechanism.</li>
<li>The <em class="quote">--verifier</em> option is now <em class="quote">--address-verifier</em>, with simplified command-line parameters.</li>
<li>Command-line file paths can use <em class="quote">@app</em> as a prefix to be relative to the executable directory.</li>
<li>The <em>--verifier</em> option is now <em>--address-verifier</em>, with simplified command-line parameters.</li>
<li>Command-line file paths can use <em>@app</em> as a prefix to be relative to the executable directory.</li>
<li>Command-line file paths can be relative to the startup cwd even when daemonised.</li>
<li>Filter exit codes between 104 and 107 are interpreted differently (see NEWS file).</li>
<li>Message rejection reasons passed back to the submitting SMTP client are much less verbose.</li>
<li>Forwarding events are queued up if the forwarding client is still busy from last time.</li>
<li>The bind address for outgoing connections is no longer taken from first unqualified <em class="quote">--interface</em> address [bug-id #27].</li>
<li>The bind address for outgoing connections is no longer taken from first unqualified <em>--interface</em> address [bug-id #27].</li>
<li>The SMTP client protocol tries more than one authentication mechanism.</li>
<li>Some support for XOAUTH2 client-side authentication.</li>
<li>Client protocol sends QUIT with a socket shutdown().</li>
<li>The Windows commdlg list-view widget is used for the server status pages.</li>
<li>The Windows connection-lookup feature is withdrawn (<em class="quote">--peer-lookup</em>).</li>
<li>Several build-time configure options like <em class="quote">--disable-pop</em> are withdrawn.</li>
<li>The Windows connection-lookup feature is withdrawn (<em>--peer-lookup</em>).</li>
<li>Several build-time configure options like <em>--disable-pop</em> are withdrawn.</li>
<li>C++ 2011 is preferred, and required for multi-threading.</li>
<li>Support for very old versions of Windows is dropped.</li>
</ul>
<h2><a class="a-header" name="SH_1_2">1.9.1 -&gt; 1.9.2</a></h2> <!-- index:2:SH:1:2:1.9.1 -&gt; 1.9.2 -->
<h2><a class="a-header" name="SH_1_3">1.9.1 -> 1.9.2</a></h2> <!-- index:2:SH:1:3:1.9.1 -> 1.9.2 -->
<ul>
<li>Fixed a leak in the event-loop garbage collection.</li>
<li>A local hostname that fails to resolve is not an error.</li>
<li>A warning is emitted if there is more than one client authentication secret.</li>
<li>Multiple <em class="quote">--interface</em> options are allowed separately on the command-line.</li>
<li>Added a new <em class="quote">--client-interface</em> option.</li>
<li>The <em class="quote">Received</em> line is formatted as per RFC-3848 (<em class="quote">with ESMTPSA</em>).</li>
<li>Multiple <em>--interface</em> options are allowed separately on the command-line.</li>
<li>Added a new <em>--client-interface</em> option.</li>
<li>The <em>Received</em> line is formatted as per RFC-3848 (<em>with ESMTPSA</em>).</li>
<li>The LOGIN and PLAIN mechanisms in the secrets file are now equivalent.</li>
<li>The Windows service wrapper can use a configuration file to locate the startup batch file.</li>
<li>Simplified the implementation of the GUI installation program.</li>
<li>Reworded the <em class="quote">read error: disconnected</em> log message.</li>
<li>Less verbose logging of <em class="quote">no more messages to send</em>.</li>
<li>Qt4 or Qt5 selected by the <em class="quote">configure</em> script.</li>
<li>Reworded the <em>read error: disconnected</em> log message.</li>
<li>Less verbose logging of <em>no more messages to send</em>.</li>
<li>Qt4 or Qt5 selected by the <em>configure</em> script.</li>
<li>Improved the RPM spec file.</li>
</ul>
<h2><a class="a-header" name="SH_1_3">1.9 -&gt; 1.9.1</a></h2> <!-- index:2:SH:1:3:1.9 -&gt; 1.9.1 -->
<h2><a class="a-header" name="SH_1_4">1.9 -> 1.9.1</a></h2> <!-- index:2:SH:1:4:1.9 -> 1.9.1 -->
<ul>
<li>Updated OpenSSL from 1.0.1e to 1.0.1g in the Windows build.</li>
</ul>
<h2><a class="a-header" name="SH_1_4">1.8.2 -&gt; 1.9</a></h2> <!-- index:2:SH:1:4:1.8.2 -&gt; 1.9 -->
<h2><a class="a-header" name="SH_1_5">1.8.2 -> 1.9</a></h2> <!-- index:2:SH:1:5:1.8.2 -> 1.9 -->
<ul>
<li>Added negotiated TLS/SSL for POP (ie. <em class="quote">STLS</em>).</li>
<li>Added negotiated TLS/SSL for POP (ie. <em>STLS</em>).</li>
<li>The first two fields in the secrets files are reordered (with backwards compatibility).</li>
<li>Added Linux PAM authentication (<em class="quote">configure --with-pam</em> and then <em class="quote">--server-auth=/pam</em>).</li>
<li>Optional protocol-specific <em class="quote">--interface</em> qualifiers, eg. <em class="quote">--interface smtp=127.0.0.1,pop=192.168.1.1</em>.</li>
<li>Outgoing client connection bound with the first <em class="quote">--interface</em> or <em class="quote">--interface client=...</em> address.</li>
<li>Support for SMTP-over-TLS on outgoing client connection (<em class="quote">--client-tls-connection</em>) (cf. <em class="quote">STARTTLS</em>)</li>
<li>Support for SOCKS 4a on outgoing client connection, eg. <em class="quote">--forward-to example.com:25@127.0.0.1:9050</em>.</li>
<li>TLS configuration options (<em class="quote">--tls-config=...</em>) for SSLv2/3 fallback etc.</li>
<li>No <em class="quote">Received</em> line added if <em class="quote">--anonymous</em> and an empty <em class="quote">--domain</em> name.</li>
<li>Error text for <em class="quote">all recipients rejected</em> is now more accurately <em class="quote">one or more recipients rejected</em>.</li>
<li>New behaviour for <em class="quote">--client-filter</em> exit values of 100 and over.</li>
<li>New commands on the admin interface, <em class="quote">failures</em> and <em class="quote">unfail-all</em>.</li>
<li>Shorter descriptions in the usage help unless <em class="quote">--verbose</em>.</li>
<li>New default spool directory location on windows, now under <em class="quote">system32</em>.</li>
<li>Added Linux PAM authentication (<em>configure --with-pam</em> and then <em>--server-auth=/pam</em>).</li>
<li>Optional protocol-specific <em>--interface</em> qualifiers, eg. <em>--interface smtp=127.0.0.1,pop=192.168.1.1</em>.</li>
<li>Outgoing client connection bound with the first <em>--interface</em> or <em>--interface client=...</em> address.</li>
<li>Support for SMTP-over-TLS on outgoing client connection (<em>--client-tls-connection</em>) (cf. <em>STARTTLS</em>)</li>
<li>Support for SOCKS 4a on outgoing client connection, eg. <em>--forward-to example.com:25@127.0.0.1:9050</em>.</li>
<li>TLS configuration options (<em>--tls-config=...</em>) for SSLv2/3 fallback etc.</li>
<li>No <em>Received</em> line added if <em>--anonymous</em> and an empty <em>--domain</em> name.</li>
<li>Error text for <em>all recipients rejected</em> is now more accurately <em>one or more recipients rejected</em>.</li>
<li>New behaviour for <em>--client-filter</em> exit values of 100 and over.</li>
<li>New commands on the admin interface, <em>failures</em> and <em>unfail-all</em>.</li>
<li>Shorter descriptions in the usage help unless <em>--verbose</em>.</li>
<li>New default spool directory location on windows, now under <em>system32</em>.</li>
<li>Windows project files for MSVC 2012 included.</li>
<li>Removed support for Windows NT and Windows 9x.</li>
<li>Better support for Windows Vista and Windows 7.</li>
<li>Removed Windows <em class="quote">--icon</em> option.</li>
<li>Removed <em class="quote">--enable-fhs</em> option for <em class="quote">configure</em> (see INSTALL document for equivalent usage).</li>
<li>Added <em class="quote">--log-file</em> option to redirect stderr.</li>
<li>Added Windows <em class="quote">--peer-lookup</em> option.</li>
<li>Removed Windows <em>--icon</em> option.</li>
<li>Removed <em>--enable-fhs</em> option for <em>configure</em> (see INSTALL document for equivalent usage).</li>
<li>Added <em>--log-file</em> option to redirect stderr.</li>
<li>Added Windows <em>--peer-lookup</em> option.</li>
<li>Fix for MD5 code in 64-bit builds.</li>
</ul>
<h2><a class="a-header" name="SH_1_5">1.8.1 -&gt; 1.8.2</a></h2> <!-- index:2:SH:1:5:1.8.1 -&gt; 1.8.2 -->
<h2><a class="a-header" name="SH_1_6">1.8.1 -> 1.8.2</a></h2> <!-- index:2:SH:1:6:1.8.1 -> 1.8.2 -->
<ul>
<li>Fix namespaces for gcc 3.4.</li>
</ul>
<h2><a class="a-header" name="SH_1_6">1.8 -&gt; 1.8.1</a></h2> <!-- index:2:SH:1:6:1.8 -&gt; 1.8.1 -->
<h2><a class="a-header" name="SH_1_7">1.8 -> 1.8.1</a></h2> <!-- index:2:SH:1:7:1.8 -> 1.8.1 -->
<ul>
<li>Changed the definition of <em class="quote">--as-proxy</em> to use <em class="quote">--poll 0</em> rather than <em class="quote">--immediate</em> [bug-id 1961652].</li>
<li>Fixed stalling bug when using server-side TLS/SSL (<em class="quote">--server-tls</em>) [bug-id 1961655].</li>
<li>Improved Debian packaging for Linux (<em class="quote">make deb</em>).</li>
<li>Changed the definition of <em>--as-proxy</em> to use <em>--poll 0</em> rather than <em>--immediate</em> [bug-id 1961652].</li>
<li>Fixed stalling bug when using server-side TLS/SSL (<em>--server-tls</em>) [bug-id 1961655].</li>
<li>Improved Debian packaging for Linux (<em>make deb</em>).</li>
</ul>
<h2><a class="a-header" name="SH_1_7">1.7 -&gt; 1.8</a></h2> <!-- index:2:SH:1:7:1.7 -&gt; 1.8 -->
<h2><a class="a-header" name="SH_1_8">1.7 -> 1.8</a></h2> <!-- index:2:SH:1:8:1.7 -> 1.8 -->
<ul>
<li>Speed optimisations (as identified by KCachegrind/valgrind in KDevelop).</li>
<li>Build-time size optimisations (eg. <em class="quote">./configure --disable-exec --enable-small-exceptions ...</em>).</li>
<li>Build-time options to reduce runtime library dependencies (eg. <em class="quote">./configure --disable-dns --disable-identity</em>).</li>
<li>New switch to limit the size of submitted messages (<em class="quote">--size</em>).</li>
<li>New semantics for <em class="quote">--poll 0</em>, providing a good alternative to <em class="quote">--immediate</em> when proxying.</li>
<li>Build-time size optimisations (eg. <em>./configure --disable-exec --enable-small-exceptions ...</em>).</li>
<li>Build-time options to reduce runtime library dependencies (eg. <em>./configure --disable-dns --disable-identity</em>).</li>
<li>New switch to limit the size of submitted messages (<em>--size</em>).</li>
<li>New semantics for <em>--poll 0</em>, providing a good alternative to <em>--immediate</em> when proxying.</li>
<li>SMTP client protocol emits a RSET after a rejected recipient as a workround for broken server protocols.</li>
<li>SMTP client protocol continues if the server advertises AUTH but the client has no authentication secrets.</li>
<li>When a message cannot be forwarded the offending SMTP protocol response number, if any, is put in the envelope file.</li>
<li>A warning is printed if logging is requested but both stderr and syslog are disabled.</li>
<li>A cross-compiling toolchain builder script added for running on mips-based routers (<em class="quote">extra/mips</em>).</li>
<li>A cross-compiling toolchain builder script added for running on mips-based routers (<em>extra/mips</em>).</li>
<li>New example scripts for SMTP multicasting and editing envelope files.</li>
<li>Improved native support for Mac OS X (10.5) with graphical installation from disk image.</li>
<li>Compatibility with gcc 2.95 restored.</li>
</ul>
<h2><a class="a-header" name="SH_1_8">1.6 -&gt; 1.7</a></h2> <!-- index:2:SH:1:8:1.6 -&gt; 1.7 -->
<h2><a class="a-header" name="SH_1_9">1.6 -> 1.7</a></h2> <!-- index:2:SH:1:9:1.6 -> 1.7 -->
<ul>
<li>TLS/SSL support for SMTP using OpenSSL (<em class="quote">./configure --with-openssl</em> with <em class="quote">--client-tls</em> and <em class="quote">--server-tls</em>).</li>
<li>Authentication mechanism <em class="quote">PLAIN</em> added.</li>
<li>TLS/SSL support for SMTP using OpenSSL (<em>./configure --with-openssl</em> with <em>--client-tls</em> and <em>--server-tls</em>).</li>
<li>Authentication mechanism <em>PLAIN</em> added.</li>
<li>Some tightening up of the SMTP server protocol.</li>
<li>Windows service wrapper has an <em class="quote">--uninstall</em> option.</li>
<li>Windows service wrapper has an <em>--uninstall</em> option.</li>
<li>Windows installation GUI uninstalls the service before reinstalling it.</li>
</ul>
<h2><a class="a-header" name="SH_1_9">1.5 -&gt; 1.6</a></h2> <!-- index:2:SH:1:9:1.5 -&gt; 1.6 -->
<h2><a class="a-header" name="SH_1_10">1.5 -> 1.6</a></h2> <!-- index:2:SH:1:10:1.5 -> 1.6 -->
<ul>
<li>GPLv3 licence (see <em class="quote">http://gplv3.fsf.org</em>).</li>
<li>New <em class="quote">--prompt-timeout</em> switch for the timeout when waiting for the initial 220 prompt from the SMTP server.</li>
<li>GPLv3 licence (see <em>http://gplv3.fsf.org</em>).</li>
<li>New <em>--prompt-timeout</em> switch for the timeout when waiting for the initial 220 prompt from the SMTP server.</li>
<li>Fix for flow-control assertion error when the POP server sends a very long list of spooled messages.</li>
<li>Wildcard matching for trusted IP addresses in the authentication secrets file can now use CIDR notation.</li>
<li>More fine-grained switching of effective user-id to read files and directories when running as root.</li>
<li>Fewer new client connections when proxying.</li>
<li>The server drops the connection if a remote SMTP client causes too many protocol errors.</li>
<li>More complete implementation of <em class="quote">--hidden</em> on Windows.</li>
<li>Scanner switch (<em class="quote">--scanner</em>) replaced by a more general <em class="quote">--filter</em> and <em class="quote">--client-filter</em> switch syntax.</li>
<li>Support for address verification (<em class="quote">--verifier</em>) over the network.</li>
<li>Better support for running as a Windows service (<em class="quote">emailrelay-service --install</em>).</li>
<li>Utility filter program <em class="quote">emailrelay-filter-copy</em> exits with 100 if it deletes the envelope file.</li>
<li>Windows <em class="quote">cscript.exe</em> wrapper is added automatically to non-bat/exe <em class="quote">--filter</em> command-lines.</li>
<li>More complete implementation of <em>--hidden</em> on Windows.</li>
<li>Scanner switch (<em>--scanner</em>) replaced by a more general <em>--filter</em> and <em>--client-filter</em> switch syntax.</li>
<li>Support for address verification (<em>--verifier</em>) over the network.</li>
<li>Better support for running as a Windows service (<em>emailrelay-service --install</em>).</li>
<li>Utility filter program <em>emailrelay-filter-copy</em> exits with 100 if it deletes the envelope file.</li>
<li>Windows <em>cscript.exe</em> wrapper is added automatically to non-bat/exe <em>--filter</em> command-lines.</li>
<li>Installation GUI makes backups of the files it edits and preserves authentication secrets.</li>
<li>Installation GUI can install <em class="quote">init.d</em> links.</li>
<li>Installation GUI can install <em>init.d</em> links.</li>
<li>Experimental SpamAssassin spamc/spamd protocol support.</li>
<li>Acceptance tests added to the distribution.</li>
</ul>
<h2><a class="a-header" name="SH_1_10">1.4 -&gt; 1.5</a></h2> <!-- index:2:SH:1:10:1.4 -&gt; 1.5 -->
<h2><a class="a-header" name="SH_1_11">1.4 -> 1.5</a></h2> <!-- index:2:SH:1:11:1.4 -> 1.5 -->
<ul>
<li>New installation and configuration GUI using TrollTech Qt 4.x (<em class="quote">./configure --enable-gui</em>)</li>
<li>New installation and configuration GUI using TrollTech Qt 4.x (<em>./configure --enable-gui</em>)</li>
<li>Default address verifier accepts all addresses as valid and never treats them as local mailboxes.</li>
<li>Fix for server exit bug when failing to send data down a newly accepted connection.</li>
<li>Spooled content files can be left in the parent directory to save diskspace when using <em class="quote">--pop-by-name</em>.</li>
<li>Spooled content files can be left in the parent directory to save diskspace when using <em>--pop-by-name</em>.</li>
<li>Client protocol improved for the case where there are no valid recipients.</li>
<li>New <em class="quote">--syslog</em> switch to override <em class="quote">--no-syslog</em>.</li>
<li>New <em class="quote">--filter-timeout</em> switch added.</li>
<li>Support for <em class="quote">--foo=bar</em> switch syntax (ie. with <em class="quote">=</em>).</li>
<li>Multiple listening interfaces allowed with a comma-separated <em class="quote">--interface</em> list.</li>
<li>New <em class="quote">--filter</em> utility called <em class="quote">emailrelay-filter-copy</em> to support <em class="quote">--pop-by-name</em>.</li>
<li>New <em>--syslog</em> switch to override <em>--no-syslog</em>.</li>
<li>New <em>--filter-timeout</em> switch added.</li>
<li>Support for <em>--foo=bar</em> switch syntax (ie. with <em>=</em>).</li>
<li>Multiple listening interfaces allowed with a comma-separated <em>--interface</em> list.</li>
<li>New <em>--filter</em> utility called <em>emailrelay-filter-copy</em> to support <em>--pop-by-name</em>.</li>
<li>Documentation also created in docbook format (requires xmlto).</li>
<li>Windows installation document revised.</li>
</ul>
<h2><a class="a-header" name="SH_1_11">1.3.3 -&gt; 1.4</a></h2> <!-- index:2:SH:1:11:1.3.3 -&gt; 1.4 -->
<h2><a class="a-header" name="SH_1_12">1.3.3 -> 1.4</a></h2> <!-- index:2:SH:1:12:1.3.3 -> 1.4 -->
<ul>
<li>POP3 server (enable with <em class="quote">--pop</em>, disable at build-time with <em class="quote">./configure --disable-pop</em>).</li>
<li>Fix for logging reentrancy bug (affects <em class="quote">./configure --enable-debug</em> with <em class="quote">--debug</em>).</li>
<li>Fix to ensure sockets are always non-blocking (affects <em class="quote">--scanner</em>).</li>
<li>Allow <em class="quote">--verifier</em> scripts to reject addresses with a temporary <em class="quote">4xx</em> error code.</li>
<li>POP3 server (enable with <em>--pop</em>, disable at build-time with <em>./configure --disable-pop</em>).</li>
<li>Fix for logging reentrancy bug (affects <em>./configure --enable-debug</em> with <em>--debug</em>).</li>
<li>Fix to ensure sockets are always non-blocking (affects <em>--scanner</em>).</li>
<li>Allow <em>--verifier</em> scripts to reject addresses with a temporary <em>4xx</em> error code.</li>
<li>Automatic re-reading of secrets files.</li>
<li>Write to the Windows event log even if no write access to the registry.</li>
<li>Modification of set-group-id policy if not started as root.</li>
<li>Better checking of spool directory access on startup.</li>
<li>New <em class="quote">emailrelay-submit.sh</em> example script for submitting messages for <em class="quote">--pop-by-name</em>.</li>
<li>The <em class="quote">--dont-listen</em> switch is now <em class="quote">--no-smtp</em>.</li>
<li>New <em>emailrelay-submit.sh</em> example script for submitting messages for <em>--pop-by-name</em>.</li>
<li>The <em>--dont-listen</em> switch is now <em>--no-smtp</em>.</li>
<li>Better IPv6 support (Linux only).</li>
</ul>
<h2><a class="a-header" name="SH_1_12">1.3.2 -&gt; 1.3.3</a></h2> <!-- index:2:SH:1:12:1.3.2 -&gt; 1.3.3 -->
<h2><a class="a-header" name="SH_1_13">1.3.2 -> 1.3.3</a></h2> <!-- index:2:SH:1:13:1.3.2 -> 1.3.3 -->
<ul>
<li>No bind() for outgoing connections [bug-id 1051689].</li>
<li>Updated rpm spec file [bug-id 1224850].</li>
<li>Fix for gcc3.4 compilation error in <em class="quote">md5.cpp</em>.</li>
<li>Fix for gcc3.4 compilation error in <em>md5.cpp</em>.</li>
<li>Fix for glob()/size_t compilation warning.</li>
<li>Documentation of <em class="quote">auth</em> switches corrected.</li>
<li>Documentation of <em>auth</em> switches corrected.</li>
<li>State-machine template type declaration modernised, possibly breaking older compilers.</li>
</ul>
<h2><a class="a-header" name="SH_1_13">1.3.1 -&gt; 1.3.2</a></h2> <!-- index:2:SH:1:13:1.3.1 -&gt; 1.3.2 -->
<h2><a class="a-header" name="SH_1_14">1.3.1 -> 1.3.2</a></h2> <!-- index:2:SH:1:14:1.3.1 -> 1.3.2 -->
<ul>
<li>Fix for core dump when <em class="quote">--client-filter</em> pre-processing fails.</li>
<li>Fix for core dump when <em>--client-filter</em> pre-processing fails.</li>
<li>Revised code structure to prepare for asynchronous pre-processing.</li>
<li>Better diagnostics when pre-processor exec() fails.</li>
<li>Better cleanup of empty and orphaned files.</li>
</ul>
<h2><a class="a-header" name="SH_1_14">1.3 -&gt; 1.3.1</a></h2> <!-- index:2:SH:1:14:1.3 -&gt; 1.3.1 -->
<h2><a class="a-header" name="SH_1_15">1.3 -> 1.3.1</a></h2> <!-- index:2:SH:1:15:1.3 -> 1.3.1 -->
<ul>
<li>Windows resource leak from CreateProcess() fixed.</li>
<li>Windows dialog box double-close fix.</li>
<li>Some documentation for the <em class="quote">--scanner</em> switch.</li>
<li>Some documentation for the <em>--scanner</em> switch.</li>
<li>New usage patterns section in the user guide.</li>
</ul>
<h2><a class="a-header" name="SH_1_15">1.2 -&gt; 1.3</a></h2> <!-- index:2:SH:1:15:1.2 -&gt; 1.3 -->
<h2><a class="a-header" name="SH_1_16">1.2 -> 1.3</a></h2> <!-- index:2:SH:1:16:1.2 -> 1.3 -->
<ul>
<li>Client protocol waits for a greeting from the server on startup [bug-id 842156].</li>
<li>Fix for incorrect backslash normalisation on <em class="quote">--verifier</em> command-lines containing spaces [bug-id 890646].</li>
<li>Fix for incorrect backslash normalisation on <em>--verifier</em> command-lines containing spaces [bug-id 890646].</li>
<li>Verifier programs can now summarily abort a connection using an exit value of 100.</li>
<li>New <em class="quote">--anonymous</em> switch that reduces information leakage to the SMTP client and disables <em class="quote">VRFY</em>.</li>
<li>Better validation of <em class="quote">MAIL-FROM</em> and <em class="quote">RCPT-TO</em> formatting.</li>
<li>New <em>--anonymous</em> switch that reduces information leakage to the SMTP client and disables <em>VRFY</em>.</li>
<li>Better validation of <em>MAIL-FROM</em> and <em>RCPT-TO</em> formatting.</li>
<li>Rewrite of low-level MD5 code.</li>
<li>Performance tuning.</li>
<li>Template <em class="quote">emailrelay.conf</em> gets installed in <em class="quote">/etc</em>.</li>
<li>New switches for the <em class="quote">configure</em> script.</li>
<li>Template <em>emailrelay.conf</em> gets installed in <em>/etc</em>.</li>
<li>New switches for the <em>configure</em> script.</li>
<li>More JavaScript example scripts.</li>
</ul>
<h2><a class="a-header" name="SH_1_16">1.1.2 -&gt; 1.2</a></h2> <!-- index:2:SH:1:16:1.1.2 -&gt; 1.2 -->
<h2><a class="a-header" name="SH_1_17">1.1.2 -> 1.2</a></h2> <!-- index:2:SH:1:17:1.1.2 -> 1.2 -->
<ul>
<li>The <em class="quote">--filter</em> and <em class="quote">--verifier</em> arguments interpreted as command-lines; spaces in executable paths now need escaping.</li>
<li>The <em class="quote">--interface</em> switch applies to outgoing connections too.</li>
<li>New <em class="quote">--client-filter</em> switch to do synchronous message processing before sending.</li>
<li>Keeps authentication after a <em class="quote">rset</em> command.</li>
<li>Fix for dangling reference bug, seen after <em class="quote">quit</em> command on Windows.</li>
<li>The <em>--filter</em> and <em>--verifier</em> arguments interpreted as command-lines; spaces in executable paths now need escaping.</li>
<li>The <em>--interface</em> switch applies to outgoing connections too.</li>
<li>New <em>--client-filter</em> switch to do synchronous message processing before sending.</li>
<li>Keeps authentication after a <em>rset</em> command.</li>
<li>Fix for dangling reference bug, seen after <em>quit</em> command on Windows.</li>
<li>JavaScript examples in the documentation.</li>
</ul>
<h2><a class="a-header" name="SH_1_17">1.1.1 -&gt; 1.1.2</a></h2> <!-- index:2:SH:1:17:1.1.1 -&gt; 1.1.2 -->
<h2><a class="a-header" name="SH_1_18">1.1.1 -> 1.1.2</a></h2> <!-- index:2:SH:1:18:1.1.1 -> 1.1.2 -->
<ul>
<li>Earlier check for un-bindable ports on startup, and later fork()ing [bug-id 776972].</li>
<li>Resolved the file-descriptor kludge for <em class="quote">--verifier</em> on Windows.</li>
<li>Less strict about failing eight bit messages sent to servers with no <em class="quote">8BITMIME</em> extension.</li>
<li>Resolved the file-descriptor kludge for <em>--verifier</em> on Windows.</li>
<li>Less strict about failing eight bit messages sent to servers with no <em>8BITMIME</em> extension.</li>
<li>Supplementary group memberships revoked at startup if root or suid.</li>
<li>Pre-processor (<em class="quote">--filter</em>) program's standard output searched for a failure reason string.</li>
<li>Undocumented <em class="quote">--scanner</em> switch added for asynchronous processing by a separate network server.</li>
<li>Pre-processor (<em>--filter</em>) program's standard output searched for a failure reason string.</li>
<li>Undocumented <em>--scanner</em> switch added for asynchronous processing by a separate network server.</li>
</ul>
<h2><a class="a-header" name="SH_1_18">1.1.0 -&gt; 1.1.1</a></h2> <!-- index:2:SH:1:18:1.1.0 -&gt; 1.1.1 -->
<h2><a class="a-header" name="SH_1_19">1.1.0 -> 1.1.1</a></h2> <!-- index:2:SH:1:19:1.1.0 -> 1.1.1 -->
<ul>
<li>Restored the fix for building with gcc2.96.</li>
<li>Support for MinGW builds on Windows.</li>
<li>More reasonable size of the <em class="quote">--help --verbose</em> message box on Windows.</li>
<li>Windows <em class="quote">--icon</em> switch changed from <em class="quote">-i</em> to <em class="quote">-c</em> to avoid conflicting with <em class="quote">--interface</em>.</li>
<li>Shows <em class="quote">next server address</em> correctly in the configuration report when using <em class="quote">--forward-to</em>.</li>
<li>Fix for <em class="quote">make install</em> when <em class="quote">man2html</em> is not available.</li>
<li>More reasonable size of the <em>--help --verbose</em> message box on Windows.</li>
<li>Windows <em>--icon</em> switch changed from <em>-i</em> to <em>-c</em> to avoid conflicting with <em>--interface</em>.</li>
<li>Shows <em>next server address</em> correctly in the configuration report when using <em>--forward-to</em>.</li>
<li>Fix for <em>make install</em> when <em>man2html</em> is not available.</li>
<li>Updated init script.</li>
</ul>
<h2><a class="a-header" name="SH_1_19">1.0.2 -&gt; 1.1.0</a></h2> <!-- index:2:SH:1:19:1.0.2 -&gt; 1.1.0 -->
<h2><a class="a-header" name="SH_1_20">1.0.2 -> 1.1.0</a></h2> <!-- index:2:SH:1:20:1.0.2 -> 1.1.0 -->
<ul>
<li>In proxy mode unexpected client-side disconnects and timeouts do not leave <em class="quote">.bad</em> files [see also bug-id 659039].</li>
<li>By default proxy mode does not interpret addresses for local delivery (<em class="quote">--postmaster</em>).</li>
<li>Polling option added (<em class="quote">--poll</em>) to rescan the spool directory periodically.</li>
<li>In proxy mode unexpected client-side disconnects and timeouts do not leave <em>.bad</em> files [see also bug-id 659039].</li>
<li>By default proxy mode does not interpret addresses for local delivery (<em>--postmaster</em>).</li>
<li>Polling option added (<em>--poll</em>) to rescan the spool directory periodically.</li>
<li>New special exit code (103) for the pre-processor to trigger immediate polling; 100 to 107 now reserved.</li>
<li>Orphaned zero-length content files are deleted properly if the server-side dialogue is cut short.</li>
<li>The <em class="quote">--interface</em> switch applies to the <em class="quote">--admin</em> interface too.</li>
<li>The <em>--interface</em> switch applies to the <em>--admin</em> interface too.</li>
<li>Improved internal event architecture using slot/signal design pattern, and fewer singleton classes.</li>
<li>Event notification available through the administration interface.</li>
<li>New <em class="quote">--hidden</em> switch for Windows.</li>
<li>New <em>--hidden</em> switch for Windows.</li>
<li>Syslog output includes process-id.</li>
<li>Support for Sun WorkShop 5.0 added.</li>
<li>Documentation overhaul.</li>
</ul>
<h2><a class="a-header" name="SH_1_20">1.0.0 -&gt; 1.0.2</a></h2> <!-- index:2:SH:1:20:1.0.0 -&gt; 1.0.2 -->
<h2><a class="a-header" name="SH_1_21">1.0.0 -> 1.0.2</a></h2> <!-- index:2:SH:1:21:1.0.0 -> 1.0.2 -->
<ul>
<li>Support for trusted IP addresses, allowing certain clients to avoid authentication.</li>
<li>Address verifier interface extended to include authentication information.</li>
<li>New public mail relay section added to the user guide.</li>
<li>Example verifier scripts etc. added to the reference guide.</li>
</ul>
<h2><a class="a-header" name="SH_1_21">1.0.0 -&gt; 1.0.1</a></h2> <!-- index:2:SH:1:21:1.0.0 -&gt; 1.0.1 -->
<h2><a class="a-header" name="SH_1_22">1.0.0 -> 1.0.1</a></h2> <!-- index:2:SH:1:22:1.0.0 -> 1.0.1 -->
<ul>
<li>In proxy mode unexpected client-side disconnects and timeouts result in <em class="quote">.bad</em> files [bug-id 659039].</li>
<li>Require successful <em class="quote">AUTH</em> before <em class="quote">MAIL FROM</em> when using <em class="quote">--server-auth</em>.</li>
<li>Better word-wrap on <em class="quote">--help</em> output.</li>
<li>Use of RedHat's <em class="quote">functions</em> code, and support for <em class="quote">chkconfig</em>, added to the <em class="quote">init.d</em> script.</li>
<li>In proxy mode unexpected client-side disconnects and timeouts result in <em>.bad</em> files [bug-id 659039].</li>
<li>Require successful <em>AUTH</em> before <em>MAIL FROM</em> when using <em>--server-auth</em>.</li>
<li>Better word-wrap on <em>--help</em> output.</li>
<li>Use of RedHat's <em>functions</em> code, and support for <em>chkconfig</em>, added to the <em>init.d</em> script.</li>
<li>Builds with gcc3.2 (1.0.0-pl5).</li>
<li>Fix for files left as <em class="quote">busy</em> after a connection failure in proxy mode [bug-id 631032] (1.0.0-pl3/4/5).</li>
<li>Fix for files left as <em>busy</em> after a connection failure in proxy mode [bug-id 631032] (1.0.0-pl3/4/5).</li>
<li>Trivial documentation fixes (1.0.0-pl3).</li>
<li>Fix for the double-dot escape bug in the client protocol [bug-id 611624] (1.0.0-pl2).</li>
<li>Fix build when using gcc2.96 rather than gcc2.95 (1.0.0-pl1).</li>
<li>Fix default spool directory in example scripts (1.0.0-pl1).</li>
</ul>
<h2><a class="a-header" name="SH_1_22">0.9.9 -&gt; 1.0.0</a></h2> <!-- index:2:SH:1:22:0.9.9 -&gt; 1.0.0 -->
<h2><a class="a-header" name="SH_1_23">0.9.9 -> 1.0.0</a></h2> <!-- index:2:SH:1:23:0.9.9 -> 1.0.0 -->
<ul>
<li>Briefer <em class="quote">--help</em> output; works with <em class="quote">--verbose</em>.</li>
<li>Option to listen on a specific network interface (<em class="quote">--interface</em>).</li>
<li>Option for an external address verifier program (<em class="quote">--verifier</em>).</li>
<li>Some Linux Standard Base stuff added to the <em class="quote">init.d</em> script.</li>
<li>Briefer <em>--help</em> output; works with <em>--verbose</em>.</li>
<li>Option to listen on a specific network interface (<em>--interface</em>).</li>
<li>Option for an external address verifier program (<em>--verifier</em>).</li>
<li>Some Linux Standard Base stuff added to the <em>init.d</em> script.</li>
<li>Pid files world-readable and deleted on abnormal termination.</li>
<li>Compiles with gcc 3.0 and intel 6.0.</li>
<li>Autoconf tweak for MacOS X.</li>
<li>Corrected the <em class="quote">Received:</em> typo [bug-id 572236].</li>
<li>Corrected the <em>Received:</em> typo [bug-id 572236].</li>
<li>EHLO response parsing is now case-insensitive [bug-id 561522].</li>
<li>Fewer missing-secrets warnings [bug-id 564987].</li>
</ul>
<h2><a class="a-header" name="SH_1_23">0.9.8 -&gt; 0.9.9</a></h2> <!-- index:2:SH:1:23:0.9.8 -&gt; 0.9.9 -->
<h2><a class="a-header" name="SH_1_24">0.9.8 -> 0.9.9</a></h2> <!-- index:2:SH:1:24:0.9.8 -> 0.9.9 -->
<ul>
<li>More flexible logging options (<em class="quote">--verbose</em> and <em class="quote">--debug</em> work better).</li>
<li>File Hierarchy Standard (FHS) option for <em class="quote">configure</em> (<em class="quote">--enable-fhs</em>).</li>
<li>More flexible logging options (<em>--verbose</em> and <em>--debug</em> work better).</li>
<li>File Hierarchy Standard (FHS) option for <em>configure</em> (<em>--enable-fhs</em>).</li>
<li>FHS-compatible RPMs.</li>
<li>Spool files writeable by pre-processor when server started as root.</li>
<li>Default directories in executables and scripts come from <em class="quote">configure</em>.</li>
<li>The <em class="quote">init.d</em> script is renamed <em class="quote">emailrelay</em> (was <em class="quote">emailrelay.sh</em>).</li>
<li>Default directories in executables and scripts come from <em>configure</em>.</li>
<li>The <em>init.d</em> script is renamed <em>emailrelay</em> (was <em>emailrelay.sh</em>).</li>
<li>Man pages are gzipped when installed.</li>
<li>Fix for access violation under Windows NT when client disconnects.</li>
<li>Use of event log when compiled on Windows NT.</li>
<li>Fix for info-after-flush bug when using the administration interface. [rc2]</li>
<li>New <em class="quote">resubmit</em> script. [rc2]</li>
<li>New <em>resubmit</em> script. [rc2]</li>
<li>Submit utility works under Windows. [rc2]</li>
<li>Improved Windows project files. [rc2]</li>
</ul>
<h2><a class="a-header" name="SH_1_24">0.9.7 -&gt; 0.9.8</a></h2> <!-- index:2:SH:1:24:0.9.7 -&gt; 0.9.8 -->
<h2><a class="a-header" name="SH_1_25">0.9.7 -> 0.9.8</a></h2> <!-- index:2:SH:1:25:0.9.7 -> 0.9.8 -->
<ul>
<li>Fix for running pre-processor (<em class="quote">--filter</em>) as root.</li>
<li>Ignore bogus <em class="quote">AUTH=LOGIN</em> lines in EHLO response.</li>
<li>Fix for running pre-processor (<em>--filter</em>) as root.</li>
<li>Ignore bogus <em>AUTH=LOGIN</em> lines in EHLO response.</li>
<li>Submit utility improved to work with mutt.</li>
<li>Installation of submit man page.</li>
</ul>
<h2><a class="a-header" name="SH_1_25">0.9.6 -&gt; 0.9.7</a></h2> <!-- index:2:SH:1:25:0.9.6 -&gt; 0.9.7 -->
<h2><a class="a-header" name="SH_1_26">0.9.6 -> 0.9.7</a></h2> <!-- index:2:SH:1:26:0.9.6 -> 0.9.7 -->
<ul>
<li>CRAM-MD5 authentication mechanism added.</li>
<li>Revoke root permissions at start up, and reclaim them when needed.</li>
<li>Allow mail pre-processing (<em class="quote">--filter</em>) when started as root.</li>
<li>Domain-override switch (<em class="quote">--domain</em>) added.</li>
<li>Non-privileged user switch (<em class="quote">--user</em>) added.</li>
<li>Allow mail pre-processing (<em>--filter</em>) when started as root.</li>
<li>Domain-override switch (<em>--domain</em>) added.</li>
<li>Non-privileged user switch (<em>--user</em>) added.</li>
<li>Better handling of NarrowPipe exception (ie. 8-bit message to 7-bit server).</li>
<li>Allow null return path in MAIL-FROM.</li>
<li>Reject recipients which look like <em class="quote">&lt;user&gt;@localhost</em> (as used by fetchmail for local delivery).</li>
<li>Treat recipients which look like <em class="quote">postmaster@localhost</em> or <em class="quote">postmaster@&lt;fqdn&gt;</em> as local postmaster.</li>
<li>Optional timestamps on log output (<em class="quote">--log-time</em>).</li>
<li>Reject recipients which look like <em><user>@localhost</em> (as used by fetchmail for local delivery).</li>
<li>Treat recipients which look like <em>postmaster@localhost</em> or <em>postmaster@<fqdn></em> as local postmaster.</li>
<li>Optional timestamps on log output (<em>--log-time</em>).</li>
<li>Fix EHLO to HELO fallback for 501/502 responses in client protocol.</li>
<li>Submission utility <em class="quote">emailrelay-submit</em> added.</li>
<li>Submission utility <em>emailrelay-submit</em> added.</li>
<li>HTML4.0 compliant HTML documentation, using CSS.</li>
</ul>
<h2><a class="a-header" name="SH_1_26">0.9.5 -&gt; 0.9.6</a></h2> <!-- index:2:SH:1:26:0.9.5 -&gt; 0.9.6 -->
<h2><a class="a-header" name="SH_1_27">0.9.5 -> 0.9.6</a></h2> <!-- index:2:SH:1:27:0.9.5 -> 0.9.6 -->
<ul>
<li>SMTP AUTHentication extension -- LOGIN mechanism only.</li>
<li>Client-side protocol timeout.</li>
@ -329,7 +333,7 @@
<li>Multiple hard-coded listening addresses supported at compile-time.</li>
<li>Fix for automatic reopening of stderr stream.</li>
</ul>
<h2><a class="a-header" name="SH_1_27">0.9.4 -&gt; 0.9.5</a></h2> <!-- index:2:SH:1:27:0.9.4 -&gt; 0.9.5 -->
<h2><a class="a-header" name="SH_1_28">0.9.4 -> 0.9.5</a></h2> <!-- index:2:SH:1:28:0.9.4 -> 0.9.5 -->
<p>
Windows fixes and improvements...
</p>
@ -339,30 +343,30 @@
<li>fix for content file deletion</li>
<li>fix for directory iterator</li>
</ul>
<h2><a class="a-header" name="SH_1_28">0.9.3 -&gt; 0.9.4</a></h2> <!-- index:2:SH:1:28:0.9.3 -&gt; 0.9.4 -->
<h2><a class="a-header" name="SH_1_29">0.9.3 -> 0.9.4</a></h2> <!-- index:2:SH:1:29:0.9.3 -> 0.9.4 -->
<ul>
<li>Fixed memory leak when no <em class="quote">--log</em> switch.</li>
<li>Windows build is more <em class="quote">gui</em> and less <em class="quote">command-line</em>.</li>
<li><em class="quote">Info</em> command added to the administration interface.</li>
<li>Fixed memory leak when no <em>--log</em> switch.</li>
<li>Windows build is more <em>gui</em> and less <em>command-line</em>.</li>
<li><em>Info</em> command added to the administration interface.</li>
<li>Doxygen files removed from binary RPM.</li>
</ul>
<h2><a class="a-header" name="SH_1_29">0.9.2 -&gt; 0.9.3</a></h2> <!-- index:2:SH:1:29:0.9.2 -&gt; 0.9.3 -->
<h2><a class="a-header" name="SH_1_30">0.9.2 -> 0.9.3</a></h2> <!-- index:2:SH:1:30:0.9.2 -> 0.9.3 -->
<ul>
<li>Proxy mode (<em class="quote">--immediate</em> and <em class="quote">--as-proxy</em>).</li>
<li>Message pre-processing (<em class="quote">--filter</em>).</li>
<li>Proxy mode (<em>--immediate</em> and <em>--as-proxy</em>).</li>
<li>Message pre-processing (<em>--filter</em>).</li>
<li>Message store classes better separated using abstract interfaces.</li>
<li>Improved notification script, with MIME encoding.</li>
<li>Builds with old 2.91 version of gcc.</li>
</ul>
<h2><a class="a-header" name="SH_1_30">0.9.1 -&gt; 0.9.2</a></h2> <!-- index:2:SH:1:30:0.9.1 -&gt; 0.9.2 -->
<h2><a class="a-header" name="SH_1_31">0.9.1 -> 0.9.2</a></h2> <!-- index:2:SH:1:31:0.9.1 -> 0.9.2 -->
<ul>
<li>Better autoconf detection.</li>
<li>Workround for FreeBSD uname() feature.</li>
<li>Added missing <em class="quote">.sh_</em> files to the distribution.</li>
<li>Added missing <em>.sh_</em> files to the distribution.</li>
<li>Fixed a benign directory iterator bug.</li>
<li>Use of gcc's <em class="quote">exception</em> header.</li>
<li>Use of gcc's <em>exception</em> header.</li>
</ul>
<h2><a class="a-header" name="SH_1_31">0.9 -&gt; 0.9.1</a></h2> <!-- index:2:SH:1:31:0.9 -&gt; 0.9.1 -->
<h2><a class="a-header" name="SH_1_32">0.9 -> 0.9.1</a></h2> <!-- index:2:SH:1:32:0.9 -> 0.9.1 -->
<ul>
<li>Improved documentation from doxygen.</li>
<li>More complete use of namespaces.</li>
@ -372,4 +376,3 @@
</div> <!-- div-main -->
</body>
</html>
<!-- Copyright (C) 2001-2018 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved. -->

View File

@ -1,6 +1,11 @@
E-MailRelay Change Log
======================
2.0 -> 2.0.1
------------
* Make PLAIN client authentication work against servers with broken 334 responses.
1.9.2 -> 2.0
------------

View File

@ -2,6 +2,11 @@
E-MailRelay Change Log
**********************
2.0 -> 2.0.1
============
* Make PLAIN client authentication work against servers with broken 334 responses.
1.9.2 -> 2.0
============

View File

@ -1,6 +1,10 @@
E-MailRelay Change Log
======================
2.0 -> 2.0.1
------------
* Make PLAIN client authentication work against servers with broken 334 responses.
1.9.2 -> 2.0
------------
* Improved IPv6 support, with IPv4 and IPv6 used independently at run-time (see "--interface").

View File

@ -1,4 +1,4 @@
# Doxyfile 1.8.13
# Doxyfile 1.8.14
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
@ -20,8 +20,8 @@
# This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all text
# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
# for the list of possible encodings.
# built into libc) for the transcoding. See
# https://www.gnu.org/software/libiconv/ for the list of possible encodings.
# The default value is: UTF-8.
DOXYFILE_ENCODING = UTF-8
@ -236,7 +236,8 @@ TAB_SIZE = 4
# will allow you to put the command \sideeffect (or @sideeffect) in the
# documentation, which will result in a user-defined paragraph with heading
# "Side Effects:". You can put \n's in the value part of an alias to insert
# newlines.
# newlines (in the resulting output). You can put ^^ in the value part of an
# alias to insert a newline as if a physical newline was in the original file.
ALIASES =
@ -337,7 +338,7 @@ BUILTIN_STL_SUPPORT = YES
CPP_CLI_SUPPORT = NO
# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen
# will parse them like normal C++ but will assume all classes use public instead
# of private inheritance when no explicit protection keyword is present.
# The default value is: NO.
@ -708,7 +709,7 @@ LAYOUT_FILE =
# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
# the reference definitions. This must be a list of .bib files. The .bib
# extension is automatically appended if omitted. This requires the bibtex tool
# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.
# For LaTeX the style of the bibliography can be controlled using
# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
# search path. See also \cite for info how to create references.
@ -795,7 +796,7 @@ INPUT = __TOP_SRC__/src/glib __TOP_SRC__/src/gssl __TOP_SRC__/src/gnet __TOP_SRC
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
# documentation (see: http://www.gnu.org/software/libiconv) for the list of
# documentation (see: https://www.gnu.org/software/libiconv/) for the list of
# possible encodings.
# The default value is: UTF-8.
@ -1043,7 +1044,7 @@ SOURCE_TOOLTIPS = YES
# If the USE_HTAGS tag is set to YES then the references to source code will
# point to the HTML generated by the htags(1) tool instead of doxygen built-in
# source browser. The htags tool is part of GNU's global source tagging system
# (see http://www.gnu.org/software/global/global.html). You will need version
# (see https://www.gnu.org/software/global/global.html). You will need version
# 4.8.6 or higher.
#
# To use it do the following:
@ -1070,25 +1071,6 @@ USE_HTAGS = NO
VERBATIM_HEADERS = YES
# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
# cost of reduced performance. This can be particularly helpful with template
# rich C++ code for which doxygen's built-in parser lacks the necessary type
# information.
# Note: The availability of this option depends on whether or not doxygen was
# generated with the -Duse-libclang=ON option for CMake.
# The default value is: NO.
CLANG_ASSISTED_PARSING = NO
# If clang assisted parsing is enabled you can provide the compiler with command
# line options that you would normally use when invoking the compiler. Note that
# the include paths will already be set by doxygen for the files and directories
# specified with INPUT and INCLUDE_PATH.
# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
CLANG_OPTIONS =
#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
@ -1207,7 +1189,7 @@ HTML_EXTRA_FILES =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the style sheet and background images according to
# this color. Hue is specified as an angle on a colorwheel, see
# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
# https://en.wikipedia.org/wiki/Hue for more information. For instance the value
# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
# purple, and 360 is red again.
# Minimum value: 0, maximum value: 359, default value: 220.
@ -1243,6 +1225,17 @@ HTML_COLORSTYLE_GAMMA = 100
HTML_TIMESTAMP = NO
# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
# documentation will contain a main index with vertical navigation menus that
# are dynamically created via Javascript. If disabled, the navigation index will
# consists of multiple levels of tabs that are statically embedded in every HTML
# page. Disable this option to support browsers that do not have Javascript,
# like the Qt help browser.
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_DYNAMIC_MENUS = YES
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded.
@ -1266,12 +1259,12 @@ HTML_INDEX_NUM_ENTRIES = 100
# If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development
# environment (see: http://developer.apple.com/tools/xcode/), introduced with
# environment (see: https://developer.apple.com/tools/xcode/), introduced with
# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
# Makefile in the HTML output directory. Running make will produce the docset in
# that directory and running make install will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
# startup. See https://developer.apple.com/tools/creatingdocsetswithdoxygen.html
# for more information.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
@ -1387,7 +1380,7 @@ QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
# Project output. For more information please see Qt Help Project / Namespace
# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
# (see: http://doc.qt.io/qt-4.8/qthelpproject.html#namespace).
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_QHP is set to YES.
@ -1395,8 +1388,7 @@ QHP_NAMESPACE = org.doxygen.Project
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
# Help Project output. For more information please see Qt Help Project / Virtual
# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
# folders).
# Folders (see: http://doc.qt.io/qt-4.8/qthelpproject.html#virtual-folders).
# The default value is: doc.
# This tag requires that the tag GENERATE_QHP is set to YES.
@ -1404,23 +1396,21 @@ QHP_VIRTUAL_FOLDER = doc
# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
# filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
# filters).
# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
# filters).
# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. Qt Help Project / Filter Attributes (see:
# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
# http://doc.qt.io/qt-4.8/qthelpproject.html#filter-attributes).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_SECT_FILTER_ATTRS =
@ -1513,7 +1503,7 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
# Use the FORMULA_TRANPARENT tag to determine whether or not the images
# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
# generated for formulas are transparent PNGs. Transparent PNGs are not
# supported properly for IE 6.0, but are supported on all modern browsers.
#
@ -1525,7 +1515,7 @@ FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# http://www.mathjax.org) which uses client side Javascript for the rendering
# https://www.mathjax.org) which uses client side Javascript for the rendering
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path
@ -1552,11 +1542,11 @@ MATHJAX_FORMAT = HTML-CSS
# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
# Content Delivery Network so you can quickly see the result without installing
# MathJax. However, it is strongly recommended to install a local copy of
# MathJax from http://www.mathjax.org before deployment.
# The default value is: http://cdn.mathjax.org/mathjax/latest.
# MathJax from https://www.mathjax.org before deployment.
# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/.
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/
# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
# extension names that should be enabled during MathJax rendering. For example
@ -1614,7 +1604,7 @@ SERVER_BASED_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: http://xapian.org/).
# Xapian (see: https://xapian.org/).
#
# See the section "External Indexing and Searching" for details.
# The default value is: NO.
@ -1627,7 +1617,7 @@ EXTERNAL_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: http://xapian.org/). See the section "External Indexing and
# Xapian (see: https://xapian.org/). See the section "External Indexing and
# Searching" for details.
# This tag requires that the tag SEARCHENGINE is set to YES.
@ -1814,7 +1804,7 @@ LATEX_SOURCE_CODE = NO
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
# https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
# The default value is: plain.
# This tag requires that the tag GENERATE_LATEX is set to YES.
@ -1997,9 +1987,9 @@ DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
# AutoGen Definitions (see http://autogen.sf.net) file that captures the
# structure of the code including all documentation. Note that this feature is
# still experimental and incomplete at the moment.
# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
# the structure of the code including all documentation. Note that this feature
# is still experimental and incomplete at the moment.
# The default value is: NO.
GENERATE_AUTOGEN_DEF = NO
@ -2212,9 +2202,9 @@ HIDE_UNDOC_RELATIONS = YES
# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
# Bell Labs. The other options in this section have no effect if this option is
# set to NO
# The default value is: YES.
# The default value is: NO.
HAVE_DOT = YES
HAVE_DOT = NO
# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
# to run in parallel. When set to 0 doxygen will base this on the number of
@ -2368,9 +2358,7 @@ DIRECTORY_GRAPH = YES
# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
# to make the SVG files visible in IE 9+ (other browsers do not have this
# requirement).
# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo,
# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
# png:gdiplus:gdiplus.
# The default value is: png.

View File

@ -704,15 +704,15 @@ emailrelay --as-client=example.com:smtp --client-auth=/etc/emailrelay-server.aut
advertised by the server and selected by the client. Many authentication
mechanisms have been defined and standardised, and the simplest ones just
exchange a username and plaintext password. E-MailRelay supports the PLAIN,
LOGIN and HMAC-MD5 mechanisms for both client-side and server-side
LOGIN and CRAM-MD5 mechanisms for both client-side and server-side
authentication as a minimum, but other mechanisms might be built in or
available via PAM (see below).
</p>
<p>
The PLAIN, LOGIN and HMAC-MD5 mechanisms can use plaintext passwords, stored
The PLAIN, LOGIN and CRAM-MD5 mechanisms can use plaintext passwords, stored
in the secrets file using a password-type of <em class="quote">plain</em>. In addition, the
HMAC-MD5 mechanism can also use hashed passwords generated by the
CRAM-MD5 mechanism can also use hashed passwords generated by the
<em class="quote">emailrelay-passwd</em> program and these are stored in the secrets file with a
password-type of <em class="quote">md5</em>. (Hashed passwords are marginally more secure because
the plaintext password which might be used on other accounts, is not easily

View File

@ -609,13 +609,13 @@ Authentication proceeds according to an authentication 'mechanism' that is
advertised by the server and selected by the client. Many authentication
mechanisms have been defined and standardised, and the simplest ones just
exchange a username and plaintext password. E-MailRelay supports the PLAIN,
LOGIN and HMAC-MD5 mechanisms for both client-side and server-side
LOGIN and CRAM-MD5 mechanisms for both client-side and server-side
authentication as a minimum, but other mechanisms might be built in or
available via PAM (see below).
The PLAIN, LOGIN and HMAC-MD5 mechanisms can use plaintext passwords, stored
The PLAIN, LOGIN and CRAM-MD5 mechanisms can use plaintext passwords, stored
in the secrets file using a password-type of `plain`. In addition, the
HMAC-MD5 mechanism can also use hashed passwords generated by the
CRAM-MD5 mechanism can also use hashed passwords generated by the
`emailrelay-passwd` program and these are stored in the secrets file with a
password-type of `md5`. (Hashed passwords are marginally more secure because
the plaintext password which might be used on other accounts, is not easily

View File

@ -624,13 +624,13 @@ Authentication proceeds according to an authentication 'mechanism' that is
advertised by the server and selected by the client. Many authentication
mechanisms have been defined and standardised, and the simplest ones just
exchange a username and plaintext password. E-MailRelay supports the PLAIN,
LOGIN and HMAC-MD5 mechanisms for both client-side and server-side
LOGIN and CRAM-MD5 mechanisms for both client-side and server-side
authentication as a minimum, but other mechanisms might be built in or
available via PAM (see below).
The PLAIN, LOGIN and HMAC-MD5 mechanisms can use plaintext passwords, stored
The PLAIN, LOGIN and CRAM-MD5 mechanisms can use plaintext passwords, stored
in the secrets file using a password-type of *plain*. In addition, the
HMAC-MD5 mechanism can also use hashed passwords generated by the
CRAM-MD5 mechanism can also use hashed passwords generated by the
*emailrelay-passwd* program and these are stored in the secrets file with a
password-type of *md5*. (Hashed passwords are marginally more secure because
the plaintext password which might be used on other accounts, is not easily

View File

@ -549,13 +549,13 @@ Authentication proceeds according to an authentication 'mechanism' that is
advertised by the server and selected by the client. Many authentication
mechanisms have been defined and standardised, and the simplest ones just
exchange a username and plaintext password. E-MailRelay supports the PLAIN,
LOGIN and HMAC-MD5 mechanisms for both client-side and server-side
LOGIN and CRAM-MD5 mechanisms for both client-side and server-side
authentication as a minimum, but other mechanisms might be built in or
available via PAM (see below).
The PLAIN, LOGIN and HMAC-MD5 mechanisms can use plaintext passwords, stored
The PLAIN, LOGIN and CRAM-MD5 mechanisms can use plaintext passwords, stored
in the secrets file using a password-type of "plain". In addition, the
HMAC-MD5 mechanism can also use hashed passwords generated by the
CRAM-MD5 mechanism can also use hashed passwords generated by the
"emailrelay-passwd" program and these are stored in the secrets file with a
password-type of "md5". (Hashed passwords are marginally more secure because
the plaintext password which might be used on other accounts, is not easily

View File

@ -1,11 +1,11 @@
Summary: Simple e-mail message transfer agent and proxy using SMTP
Name: emailrelay
Version: 2.0
Version: 2.0.1
Release: 1
License: GPL3
Group: System Environment/Daemons
URL: http://emailrelay.sourceforge.net/
Source: http://sourceforge.net/projects/emailrelay/files/emailrelay/2.0/emailrelay-2.0-src.tar.gz
Source: http://sourceforge.net/projects/emailrelay/files/emailrelay/2.0.1/emailrelay-2.0.1-src.tar.gz
BuildRoot: /tmp/emailrelay-install
%description

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -148,6 +148,7 @@ void GNet::SimpleClient::startConnecting()
// create and open a socket
//
m_sp.reset() ;
m_socket.reset( new StreamSocket(m_remote_location.address().domain()) ) ;
socket().addWriteHandler( *this , m_eh ) ;

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -337,10 +337,11 @@ bool GSmtp::ClientProtocol::applyEvent( const Reply & reply , bool is_start_even
m_state = sSentTlsEhlo ;
sendEhlo() ;
}
else if( m_state == sAuth1 && reply.is(Reply::Challenge_334) && G::Base64::valid(reply.text()) )
else if( m_state == sAuth1 && reply.is(Reply::Challenge_334) &&
( m_auth_mechanism == "PLAIN" || G::Base64::valid(reply.text()) ) )
{
// authentication challenge -- send the response
std::string challenge = G::Base64::decode( reply.text() ) ;
std::string challenge = m_auth_mechanism == "PLAIN" ? std::string() : G::Base64::decode( reply.text() ) ;
GAuth::SaslClient::Response rsp = m_sasl->response( m_auth_mechanism , challenge ) ;
if( rsp.error )
{

View File

@ -927,10 +927,11 @@ std::string GSmtp::ServerProtocolText::receivedLine( const std::string & smtp_pe
const G::Date date( tm ) ;
const G::Time time( tm ) ;
const std::string esmtp = std::string("ESMTP") + (secure?"S":"") + (authenticated?"A":"") ; // RFC-3848
const std::string peer_name = G::Str::escaped(G::Str::printable(smtp_peer_name),'\\'," ","s") ;
std::ostringstream ss ;
ss
<< "Received: from " << smtp_peer_name
<< "Received: from " << peer_name
<< " ("
<< "[" << peer_address << "]"
<< ") by " << thishost << " with " << esmtp << " ; "

View File

@ -96,7 +96,7 @@ void GSmtp::ServerPeer::onDelete( const std::string & reason )
void GSmtp::ServerPeer::onSendComplete()
{
// never gets here -- see GNet::Sender ctor
// never gets here -- see protocolSend()
}
namespace
@ -126,7 +126,9 @@ void GSmtp::ServerPeer::onSecure( const std::string & certificate )
void GSmtp::ServerPeer::protocolSend( const std::string & line , bool go_secure )
{
send( line , 0U ) ; // GNet::Sender -- may throw SendError
if( !send( line , 0U ) ) // GNet::ServerPeer::send()
throw SendError() ; // we only send short responses, so treat flow control as fatal
if( go_secure )
secureAccept() ;
}

View File

@ -121,6 +121,8 @@ private:
class GSmtp::ServerPeer : public GNet::ServerPeer , private ServerProtocol::Sender
{
public:
G_EXCEPTION( SendError , "failed to send smtp response" ) ;
ServerPeer( GNet::Server::PeerInfo peer_info , Server & server ,
const GAuth::Secrets & server_secrets , const Server::Config & server_config ,
unique_ptr<ServerProtocol::Text> ptext ) ;

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -793,11 +793,10 @@ static void scrub( unsigned char *p_in , size_t n )
GSsl::MbedTls::SecureFile::SecureFile( const std::string & path , bool with_nul )
{
FILE * fp = nullptr ;
std::filebuf f ;
std::filebuf * fp = nullptr ;
try
{
std::filebuf f ;
std::filebuf * fp = nullptr ;
const char * path_p = path.c_str() ;
{
G::Root claim_root ;
@ -810,13 +809,13 @@ GSsl::MbedTls::SecureFile::SecureFile( const std::string & path , bool with_nul
if( ok ) fp->pubseekpos( 0 , std::ios_base::in ) ;
if( ok ) ok = fp->sgetn( &m_buffer[0] , m_buffer.size() ) == static_cast<std::streamsize>(m_buffer.size()) ;
if( !ok ) scrub( pu() , size() ) ;
if( fp ) fp->close() ;
if( fp ) { fp->close() ; fp = nullptr ; }
if( ok && with_nul ) m_buffer.push_back( '\0' ) ;
}
catch(...)
{
scrub( pu() , size() ) ;
if( fp ) std::fclose( fp ) ;
if( fp ) fp->close() ;
throw ;
}
}

View File

@ -32,7 +32,6 @@
#include <openssl/ssl.h>
#include <openssl/err.h>
#include <openssl/rand.h>
#include <openssl/engine.h>
#include <openssl/conf.h>
#include <openssl/evp.h>
#include <openssl/hmac.h>

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -7,8 +7,8 @@ LANGUAGE 0x9,0x1
IDI_ICON1 ICON DISCARDABLE "emailrelay-icon.ico"
VS_VERSION_INFO VERSIONINFO
FILEVERSION 2, 0, 0, 0
PRODUCTVERSION 2, 0, 0, 0
FILEVERSION 2, 0, 1, 0
PRODUCTVERSION 2, 0, 1, 0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -26,12 +26,12 @@ BEGIN
VALUE "Comments", "GPL v3 license"
VALUE "CompanyName", " "
VALUE "FileDescription", "E-MailRelay GUI Application"
VALUE "FileVersion", "2, 0, 0, 0"
VALUE "FileVersion", "2, 0, 1, 0"
VALUE "InternalName", "emailrelay"
VALUE "LegalCopyright", "Copyright (C) 2001-2018 Graeme Walker <graeme_walker@users.sourceforge.net>"
VALUE "OriginalFilename", "emailrelay-gui.exe"
VALUE "ProductName", "E-MailRelay"
VALUE "ProductVersion", "2, 0, 0, 0"
VALUE "ProductVersion", "2, 0, 1, 0"
END
END
BLOCK "VarFileInfo"

View File

@ -1107,7 +1107,8 @@ void SmtpClientPage::dump( std::ostream & stream , bool for_install ) const
std::string mechanism = "plain" ; // was value(m_mechanism_combo)
dumpItem( stream , for_install , "smtp-client-host" , value(m_server_edit_box) ) ;
dumpItem( stream , for_install , "smtp-client-port" , value(m_port_edit_box) ) ;
dumpItem( stream , for_install , "smtp-client-tls" , value(m_tls_checkbox) ) ;
dumpItem( stream , for_install , "smtp-client-tls" , value(m_tls_checkbox->isChecked()&&!m_tls_tunnel->isChecked()) ) ;
dumpItem( stream , for_install , "smtp-client-tls-connection" , value(m_tls_checkbox->isChecked()&&m_tls_tunnel->isChecked()) ) ;
dumpItem( stream , for_install , "smtp-client-auth" , value(m_auth_checkbox) ) ;
dumpItem( stream , for_install , "smtp-client-auth-mechanism" , mechanism ) ;
if( for_install )

View File

@ -182,6 +182,10 @@ ServerConfiguration ServerConfiguration::fromPages( const G::MapFile & pages , c
{
out["client-tls"] ;
}
if( pages.booleanValue("smtp-client-tls-connection",true) )
{
out["client-tls-connection"] ;
}
if( pages.booleanValue("smtp-client-auth",true) )
{
out["client-auth"] = auth ;

View File

@ -88,11 +88,10 @@ MISC_EXTRA_DIST = \
messages.mc \
resource.h
START_BUNDLE=E-MailRelay-Start
if GCONFIG_MAC
MAC_PROGS = emailrelay-start
MAC_EXTRA_DIST =
MAC_NOINST = $(START_BUNDLE).app
MAC_NOINST =
else
MAC_PROGS =
MAC_EXTRA_DIST = start.cpp
@ -249,15 +248,10 @@ install-data-local: install-sbinPROGRAMS install-e_spoolDATA install-e_libexecPR
install-exec-local:
-mkdir -p "$(DESTDIR)$(sbindir)"
-if test -d "$(START_BUNDLE).app" ; then cp -R "$(START_BUNDLE).app" "$(DESTDIR)$(sbindir)/" ; fi
uninstall-local:
-rmdir "$(DESTDIR)$(e_spooldir)" 2>/dev/null
-rmdir "$(DESTDIR)$(e_libexecdir)" 2>/dev/null
-rm -rf "$(DESTDIR)$(sbindir)/$(START_BUNDLE).app"
clean-local:
rm -rf "$(START_BUNDLE).app"
MSG00001.bin messages.rc: fakemc.exe messages.mc
$(GCONFIG_WINDMC) $(top_srcdir)/src/main/messages.mc

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -583,13 +583,12 @@ MISC_EXTRA_DIST = \
messages.mc \
resource.h
START_BUNDLE = E-MailRelay-Start
@GCONFIG_MAC_FALSE@MAC_PROGS =
@GCONFIG_MAC_TRUE@MAC_PROGS = emailrelay-start
@GCONFIG_MAC_FALSE@MAC_EXTRA_DIST = start.cpp
@GCONFIG_MAC_TRUE@MAC_EXTRA_DIST =
@GCONFIG_MAC_FALSE@MAC_NOINST =
@GCONFIG_MAC_TRUE@MAC_NOINST = $(START_BUNDLE).app
@GCONFIG_MAC_TRUE@MAC_NOINST =
@GCONFIG_WINDOWS_FALSE@WINDOWS_PROGS =
@GCONFIG_WINDOWS_TRUE@WINDOWS_PROGS = emailrelay-service emailrelay-textmode
@GCONFIG_WINDOWS_FALSE@EXTRA_DIST = \
@ -1116,8 +1115,8 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-e_libexecPROGRAMS clean-generic clean-local \
clean-noinstLIBRARIES clean-sbinPROGRAMS mostlyclean-am
clean-am: clean-e_libexecPROGRAMS clean-generic clean-noinstLIBRARIES \
clean-sbinPROGRAMS mostlyclean-am
distclean: distclean-recursive
-rm -rf ./$(DEPDIR)
@ -1190,11 +1189,11 @@ uninstall-am: uninstall-e_libexecPROGRAMS uninstall-e_spoolDATA \
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
check-am clean clean-e_libexecPROGRAMS clean-generic \
clean-local clean-noinstLIBRARIES clean-sbinPROGRAMS \
cscopelist-am ctags ctags-am distclean distclean-compile \
distclean-generic distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-data-local install-dvi install-dvi-am \
clean-noinstLIBRARIES clean-sbinPROGRAMS cscopelist-am ctags \
ctags-am distclean distclean-compile distclean-generic \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am \
install-data-local install-dvi install-dvi-am \
install-e_libexecPROGRAMS install-e_spoolDATA install-exec \
install-exec-am install-exec-local install-html \
install-html-am install-info install-info-am install-man \
@ -1221,15 +1220,10 @@ install-data-local: install-sbinPROGRAMS install-e_spoolDATA install-e_libexecPR
install-exec-local:
-mkdir -p "$(DESTDIR)$(sbindir)"
-if test -d "$(START_BUNDLE).app" ; then cp -R "$(START_BUNDLE).app" "$(DESTDIR)$(sbindir)/" ; fi
uninstall-local:
-rmdir "$(DESTDIR)$(e_spooldir)" 2>/dev/null
-rmdir "$(DESTDIR)$(e_libexecdir)" 2>/dev/null
-rm -rf "$(DESTDIR)$(sbindir)/$(START_BUNDLE).app"
clean-local:
rm -rf "$(START_BUNDLE).app"
MSG00001.bin messages.rc: fakemc.exe messages.mc
$(GCONFIG_WINDMC) $(top_srcdir)/src/main/messages.mc

View File

@ -1,78 +1,78 @@
#include <windows.h>
#include "resource.h"
LANGUAGE 0x9,0x1
1 11 "MSG00001.bin"
IDD_PROPPAGE_1 DIALOGEX 0, 0, 259, 178
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Property Page"
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,7,245,164
END
IDD_DIALOG1 DIALOG 0, 0, 259, 190
STYLE DS_SETFONT | WS_CHILD
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,105,169,50,14
EDITTEXT IDC_EDIT1,7,7,245,153,ES_MULTILINE | ES_READONLY | WS_VSCROLL
END
IDD_DIALOG2 DIALOGEX 0, 0, 311, 194
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
DEFPUSHBUTTON "OK",IDOK,130,174,50,14
EDITTEXT IDC_EDIT1,7,7,297,163,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL
END
IDI_ICON1 ICON "emailrelay-icon.ico"
IDR_MENU1 MENU
BEGIN
POPUP "popup"
BEGIN
MENUITEM "&Open", IDM_OPEN
MENUITEM "&Close", IDM_CLOSE
MENUITEM "&Quit", IDM_QUIT
END
END
VS_VERSION_INFO VERSIONINFO
FILEVERSION 2, 0, 0, 0
PRODUCTVERSION 2, 0, 0, 0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x10004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080904b0"
BEGIN
VALUE "Comments", "GPL v3 license"
VALUE "CompanyName", " "
VALUE "FileDescription", "E-MailRelay Application"
VALUE "FileVersion", "2, 0, 0, 0"
VALUE "InternalName", "emailrelay"
VALUE "LegalCopyright", "Copyright (C) 2001-2018 Graeme Walker <graeme_walker@users.sourceforge.net>"
VALUE "OriginalFilename", "emailrelay.exe"
VALUE "ProductName", "E-MailRelay"
VALUE "ProductVersion", "2, 0, 0, 0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x809, 1200
END
END
#include <windows.h>
#include "resource.h"
LANGUAGE 0x9,0x1
1 11 "MSG00001.bin"
IDD_PROPPAGE_1 DIALOGEX 0, 0, 259, 178
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Property Page"
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,7,245,164
END
IDD_DIALOG1 DIALOG 0, 0, 259, 190
STYLE DS_SETFONT | WS_CHILD
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,105,169,50,14
EDITTEXT IDC_EDIT1,7,7,245,153,ES_MULTILINE | ES_READONLY | WS_VSCROLL
END
IDD_DIALOG2 DIALOGEX 0, 0, 311, 194
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
DEFPUSHBUTTON "OK",IDOK,130,174,50,14
EDITTEXT IDC_EDIT1,7,7,297,163,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL
END
IDI_ICON1 ICON "emailrelay-icon.ico"
IDR_MENU1 MENU
BEGIN
POPUP "popup"
BEGIN
MENUITEM "&Open", IDM_OPEN
MENUITEM "&Close", IDM_CLOSE
MENUITEM "&Quit", IDM_QUIT
END
END
VS_VERSION_INFO VERSIONINFO
FILEVERSION 2, 0, 1, 0
PRODUCTVERSION 2, 0, 1, 0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x10004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080904b0"
BEGIN
VALUE "Comments", "GPL v3 license"
VALUE "CompanyName", " "
VALUE "FileDescription", "E-MailRelay Application"
VALUE "FileVersion", "2, 0, 1, 0"
VALUE "InternalName", "emailrelay"
VALUE "LegalCopyright", "Copyright (C) 2001-2018 Graeme Walker <graeme_walker@users.sourceforge.net>"
VALUE "OriginalFilename", "emailrelay.exe"
VALUE "ProductName", "E-MailRelay"
VALUE "ProductVersion", "2, 0, 1, 0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x809, 1200
END
END

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -1,42 +1,42 @@
SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
Warning=0x2:STATUS_SEVERITY_WARNING
Error=0x3:STATUS_SEVERITY_ERROR
)
FacilityNames=(Application=0x0:FACILITY_APPLICATION
)
MessageId=0x1
SymbolicName=CATEGORY_1
Language=English
General
.
MessageIdTypedef=DWORD
MessageId=1001
Severity=Informational
Facility=Application
SymbolicName=MSG_INFO
Language=English
%1!S!
.
MessageId=1002
Severity=Warning
Facility=Application
SymbolicName=MSG_WARNING
Language=English
%1!S!
.
MessageId=1003
Severity=Error
Facility=Application
SymbolicName=MSG_ERROR
Language=English
%1!S!
.
SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
Warning=0x2:STATUS_SEVERITY_WARNING
Error=0x3:STATUS_SEVERITY_ERROR
)
FacilityNames=(Application=0x0:FACILITY_APPLICATION
)
MessageId=0x1
SymbolicName=CATEGORY_1
Language=English
General
.
MessageIdTypedef=DWORD
MessageId=1001
Severity=Informational
Facility=Application
SymbolicName=MSG_INFO
Language=English
%1!S!
.
MessageId=1002
Severity=Warning
Facility=Application
SymbolicName=MSG_WARNING
Language=English
%1!S!
.
MessageId=1003
Severity=Error
Facility=Application
SymbolicName=MSG_ERROR
Language=English
%1!S!
.

View File

@ -1,15 +1,15 @@
#define IDI_ICON1 101
#define IDD_DIALOG1 101
#define IDR_MENU1 102
#define IDD_DIALOG2 103
#define IDD_PROPPAGE_1 106
#define IDC_EDIT1 1000
#define IDC_LIST1 1000
#define IDS_EVENTLOG_INFORMATION 1001
#define IDS_EVENTLOG_WARNING 1002
#define IDS_EVENTLOG_ERROR 1003
#define IDM_OPEN 40001
#define IDM_QUIT 40002
#define IDM_CLOSE 40005
#define IDI_ICON1 101
#define IDD_DIALOG1 101
#define IDR_MENU1 102
#define IDD_DIALOG2 103
#define IDD_PROPPAGE_1 106
#define IDC_EDIT1 1000
#define IDC_LIST1 1000
#define IDS_EVENTLOG_INFORMATION 1001
#define IDS_EVENTLOG_WARNING 1002
#define IDS_EVENTLOG_ERROR 1003
#define IDM_OPEN 40001
#define IDM_QUIT 40002
#define IDM_CLOSE 40005

View File

@ -71,7 +71,7 @@ std::string Main::Run::buildConfiguration()
std::string Main::Run::versionNumber()
{
return "2.0" ;
return "2.0.1" ;
}
Main::Run::Run( Main::Output & output , const G::Arg & arg , const std::string & option_spec ) :

View File

@ -66,22 +66,25 @@ bool Main::WinForm::closed() const
void Main::WinForm::onInit( HWND hdialog , const std::string & title )
{
if( title == "Configuration" )
if( title.empty() )
{
}
else if( title.at(0U) == 'C' ) // Configuration
{
m_cfg_view.reset( new GGui::ListView(hdialog,IDC_LIST1) ) ;
m_cfg_view->set( cfgData() , 2U , 150U ) ;
}
else if( title == "Version" )
else if( title.at(0U) == 'V' ) // Version
{
m_version_view.reset( new GGui::ListView(hdialog,IDC_LIST1) ) ;
m_version_view->set( versionData() , 1U , 330U ) ;
}
else if( title == "Status" )
else if( title.at(0U) == 'S' ) // Status
{
m_status_view.reset( new GGui::ListView(hdialog,IDC_LIST1) ) ;
m_status_view->set( statusData() , 3U , 100U ) ;
}
else if( title == "Licence" )
else if( title.at(0U) == 'L' ) // Licence
{
m_licence_view.reset( new GGui::ListView(hdialog,IDC_LIST1) ) ;
m_licence_view->set( licenceData() , 1U , 330U ) ;

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -20,7 +20,6 @@
#include "gdef.h"
#include "gstack.h"
#include "gconvert.h"
#include "gstr.h"
#include "gwindowhidden.h"
#include "glog.h"
@ -230,29 +229,6 @@ bool GGui::Stack::stackMessage( MSG & msg )
return false ;
}
std::string GGui::Stack::convert( const char * p , const std::string & default_ )
{
// mingw+wine bug -- the title is always in wide characters -- try both
std::string simple = std::string( p ) ;
std::wstring wide( reinterpret_cast<const WCHAR *>(p) ) ;
G::Convert::utf8 utf8_holder ;
try
{
G::Convert::convert( utf8_holder , wide ) ;
}
catch( G::Convert::Error & )
{
}
std::string utf8 = utf8_holder.s ;
bool valid_simple = simple.length() >= 2U && G::Str::toPrintableAscii(simple) == simple ;
bool valid_wide = !utf8.empty() && G::Str::toPrintableAscii(utf8) == utf8 ;
return valid_wide ? utf8 : ( valid_simple ? simple : default_ ) ;
}
bool GGui::Stack::dlgProc( HWND hdialog , UINT message , WPARAM wparam , LPARAM lparam )
{
// see also GGui::Dialog
@ -278,7 +254,6 @@ bool GGui::Stack::dlgProc( HWND hdialog , UINT message , WPARAM wparam , LPARAM
Stack * This = getptr( hdialog ) ;
if( This )
{
int index = PropSheet_HwndToIndex( This->handle() , hdialog ) ;
if( message == WM_CLOSE )
{
G_DEBUG( "GGui::Stack::dlgProc: WM_CLOSE: h=" << hdialog ) ;
@ -296,6 +271,7 @@ bool GGui::Stack::dlgProc( HWND hdialog , UINT message , WPARAM wparam , LPARAM
NMHDR * header = reinterpret_cast<NMHDR*>(lparam) ;
if( header->code == PSN_SETACTIVE )
{
int index = PropSheet_HwndToIndex( This->handle() , hdialog ) ;
G_DEBUG( "GGui::Stack::dlgProc: WM_NOTIFY: PSN_SETACTIVE: h=" << hdialog << " index=" << index ) ;
HWND hfrom = header->hwndFrom ; G_IGNORE_VARIABLE(hfrom) ;
//PSHNOTIFY * p = reinterpret_cast<PSHNOTIFY*>(lparam) ; // 'derived' structure
@ -304,6 +280,7 @@ bool GGui::Stack::dlgProc( HWND hdialog , UINT message , WPARAM wparam , LPARAM
}
if( header->code == PSN_KILLACTIVE )
{
int index = PropSheet_HwndToIndex( This->handle() , hdialog ) ;
G_DEBUG( "GGui::Stack::dlgProc: WM_NOTIFY: PSN_KILLACTIVE: h=" << hdialog << " index=" << index ) ;
HWND hfrom = header->hwndFrom ; G_IGNORE_VARIABLE(hfrom) ;
//PSHNOTIFY * p = reinterpret_cast<PSHNOTIFY*>(lparam) ; // 'derived' structure

View File

@ -92,7 +92,6 @@ private:
static LPARAM to_lparam( const Stack * p ) ;
static void setptr( HWND hwnd , const Stack * This ) ;
static GGui::Stack * getptr( HWND hwnd ) ;
static std::string convert( const char * p , const std::string & default_ = std::string() ) ;
void onCompleteImp( bool ) ;
private:

View File

@ -3,7 +3,7 @@
scriptversion=2013-07-13.22; # UTC
# Copyright (C) 2011-2013 Free Software Foundation, Inc.
# Copyright (C) 2011-2014 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -106,11 +106,14 @@ trap "st=143; $do_exit" 15
# Test script is run here.
"$@" >$log_file 2>&1
estatus=$?
if test $enable_hard_errors = no && test $estatus -eq 99; then
estatus=1
tweaked_estatus=1
else
tweaked_estatus=$estatus
fi
case $estatus:$expect_failure in
case $tweaked_estatus:$expect_failure in
0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
0:*) col=$grn res=PASS recheck=no gcopy=no;;
77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
@ -119,6 +122,12 @@ case $estatus:$expect_failure in
*:*) col=$red res=FAIL recheck=yes gcopy=yes;;
esac
# Report the test outcome and exit status in the logs, so that one can
# know whether the test passed or failed simply by looking at the '.log'
# file, without the need of also peaking into the corresponding '.trs'
# file (automake bug#11814).
echo "$res $test_name (exit status: $estatus)" >>$log_file
# Report outcome to console.
echo "${col}${res}${std}: $test_name"

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,

View File

@ -54,7 +54,7 @@ require "winbuild.pm" ;
$AutoMakeParser::verbose = 0 ;
my $project = "emailrelay" ;
my $version = "2.0" ;
my $version = "2.0.1" ;
my $install_x64 = "$project-$version-w64" ;
my $install_x86 = "$project-$version-w32" ;