This commit is contained in:
Graeme Walker 2004-02-26 12:00:00 +00:00
parent def9081f44
commit 333cb6f46b
305 changed files with 4455 additions and 1528 deletions

View File

@ -2,10 +2,3 @@ AUTHORS
=======
Graeme Walker <graeme_walker@users.sourceforge.net>
Credits
-------
The source in "glib/md5c.c" and "glib/md5.h" is "derived from the RSA Data
Security, Inc. MD5 Message-Digest Algorithm" by incorporating
the "RSA Data Security, Inc. MD5 Message-Digest Algorithm" which
is "Copyright (C) 1991, RSA Data Security, Inc. All rights reserved".

View File

@ -1,6 +1,19 @@
E-MailRelay Change Log
======================
1.2 -> 1.3
----------
* Client protocol waits for a greeting from the server on startup [bug-id 842156].
* Fix for incorrect backslash normalisation on "--verifier" command-lines containing spaces [bug-id 890646].
* Verifier programs can now summarily abort a connection using an exit value of 100.
* New "--anonymous" switch that reduces information leakage to the SMTP client and disables "VRFY".
* Better validation of "MAIL-FROM" and "RCPT-TO" formatting.
* Rewrite of low-level MD5 code.
* Performance tuning.
* Template "emailrelay.conf" gets installed in "/etc".
* New switches for the "configure" script.
* More JavaScript example scripts.
1.1.2 -> 1.2
------------
* The "--filter" and "--verifier" arguments interpreted as command-lines; spaces in executable paths now need escaping.

View File

@ -1,5 +1,5 @@
#
## Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
## Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License
@ -18,7 +18,7 @@
##
#
EXTRA_DIST = emailrelay.spec ChangeLog
SUBDIRS = src bin lib doc
SUBDIRS = src bin lib doc etc
e_doc_DATA = NEWS README changelog.gz
CLEANFILES = changelog.gz
changelog.gz: ChangeLog

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.7.8 from Makefile.am.
# Makefile.in generated by automake 1.7.6 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
@ -108,6 +108,7 @@ e_libexecdir = @e_libexecdir@
e_man1dir = @e_man1dir@
e_sbindir = @e_sbindir@
e_spooldir = @e_spooldir@
e_sysconfdir = @e_sysconfdir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
includedir = @includedir@
@ -128,7 +129,7 @@ target_alias = @target_alias@
#
#
EXTRA_DIST = emailrelay.spec ChangeLog
SUBDIRS = src bin lib doc
SUBDIRS = src bin lib doc etc
e_doc_DATA = NEWS README changelog.gz
CLEANFILES = changelog.gz
subdir = .
@ -145,10 +146,9 @@ RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive
DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure AUTHORS \
COPYING ChangeLog INSTALL Makefile.am NEWS acinclude.m4 \
aclocal.m4 config.h.in configure configure.ac depcomp \
install-sh missing mkinstalldirs
DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
Makefile.in NEWS acinclude.m4 aclocal.m4 config.h.in configure \
configure.ac depcomp install-sh missing mkinstalldirs
DIST_SUBDIRS = $(SUBDIRS)
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
@ -482,7 +482,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f $(CONFIG_CLEAN_FILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@ -493,7 +493,6 @@ clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
dvi: dvi-recursive
@ -517,7 +516,6 @@ installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive

33
README
View File

@ -10,7 +10,7 @@ messages as they pass through. When running as a store-and-forward MTA incoming
messages are stored in a local spool directory, and then forwarded to the next
SMTP server on request.
Because of its functional simplicity E-MailRelay is easy to configure, typically
Because of its functional simplicity E-MailRelay is easy to configure, typically
only requiring the address of the target SMTP server to be put on the command
line.
@ -19,20 +19,21 @@ Distribution is under the GNU General Public License.
Quick start
-----------
To run the program as a proxy use the "--as-proxy" command-line switch, followed by the
address of the target SMTP server. If you want to edit or filter e-mail as it passes
through the proxy then specify your pre-processor program with the "--filter" switch.
You can optionally change the listening port number using "--port" and the
spool directory using "--spool-dir".
To run the program as a proxy use the "--as-proxy" command-line switch followed
by the address of the target SMTP server. If you want to edit or filter e-mail
as it passes through the proxy then specify your pre-processor program with the
"--filter" switch. You can optionally change the listening port number using
"--port" and the spool directory using "--spool-dir".
For example, to start up a local proxy which passes messages to some "addsig" script
and then forwards them to an MTA running on "smarthost", use a command like this:
For example, to start up a local proxy that passes messages to some "addsig"
script and then forwards them to an MTA running on "smarthost", use a command
like this:
emailrelay --as-proxy smarthost:smtp --filter $HOME/bin/addsig --spool-dir $HOME/tmp
To use E-MailRelay as a store-and-forward MTA use the "--as-server" switch
to start the storage daemon in the background. And then trigger delivery of
spooled messages by running emailrelay with the "--as-client" switch, followed
spooled messages by running emailrelay with the "--as-client" switch followed
by the address of the target SMTP server.
For example, to start a storage daemon listening on port 10025 use a command
@ -44,6 +45,9 @@ And then to forward the spooled mail to "smarthost" run somthing like this:
emailrelay --as-client smarthost:smtp --spool-dir $HOME/tmp
You can also have an E-MailRelay storage daemon forward spooled e-mails
periodically by using the "--poll" switch.
By default E-MailRelay will reject connections from remote machines. To
allow connections from anywhere use the "--remote-clients" switch.
@ -57,7 +61,7 @@ Documentation
The following documentation is provided:
* README -- this document
* COPYING -- the GNU General Public License
* INSTALL -- build & install instructions (including the generic GNU text)
* INSTALL -- build & install instructions (including the GNU text)
* AUTHORS -- authors, credits and additional copyrights
* copyright -- main copyright and GPL reference
* userguide.txt -- user guide
@ -73,16 +77,15 @@ The code was originally developed on SuSE Linux 7.1 using:
* linux 2.4.10
* gcc 2.95.3
* glibc 2.2.4 (libc.so.6)
* gnu make 3.79.1
* autoconf 2.52
and ported to Windows 98 using:
* MSVC 6.0
Recent releases were developed on SuSE Linux 8.0 and
RedHat Linux 8.0 using:
* gcc 2.95.3 and gcc 3.2
* autoconf 2.53
Recent releases were developed on SuSE Linux 9.0 using:
* linux 2.4.22
* gcc 3.3.1
* autoconf 2.57
The code has also been built successfully on:
* MacOS X

View File

@ -1,4 +1,4 @@
dnl Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
dnl Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
dnl
dnl This program is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU General Public License
@ -139,6 +139,19 @@ then
fi
])
dnl enable-fastbuild
dnl
AC_DEFUN([ENABLE_FASTBUILD],
[
if test "$enable_fastbuild" = "yes"
then
CXX="`pwd`/bin/fastbuild.sh"
chmod +x "$CXX"
AR="`pwd`/bin/fastbuild.sh"
RANLIB="true"
fi
])
dnl with-workshop
dnl
AC_DEFUN([WITH_WORKSHOP],
@ -151,6 +164,38 @@ then
fi
])
dnl with-doxygen
dnl
AC_DEFUN([WITH_DOXYGEN],
[
if test "$with_doxygen" != ""
then
if test "$with_doxygen" = "yes" -a "$HAVE_DOXYGEN" != "yes"
then
echo ignoring --with-doxygen
else
HAVE_DOXYGEN="$with_doxygen"
AC_SUBST(HAVE_DOXYGEN)
fi
fi
])
dnl with-man2html
dnl
AC_DEFUN([WITH_MAN2HTML],
[
if test "$with_man2html" != ""
then
if test "$with_man2html" = "yes" -a "$HAVE_MAN2HTML" != "yes"
then
echo ignoring --with-man2html
else
HAVE_MAN2HTML="$with_man2html"
AC_SUBST(HAVE_MAN2HTML)
fi
fi
])
dnl enable-fhs
dnl
AC_DEFUN([ENABLE_FHS],
@ -175,10 +220,10 @@ AC_DEFUN([FHS_COMPLIANCE],
localstatedir='/var'
mandir='/usr/man'
datadir='/usr/share'
sysconfdir='/etc'
#
# not used by emailrelay
#bindir=
#sysconfdir=
#sharedstatedir=
#libdir=
#includedir=
@ -193,5 +238,6 @@ AC_DEFUN([FHS_COMPLIANCE],
e_spooldir="$localstatedir/spool/$PACKAGE"
e_man1dir="$datadir/man/man1"
e_examplesdir="$datadir/doc/$PACKAGE/examples"
e_sysconfdir="$sysconfdir"
])

54
aclocal.m4 vendored
View File

@ -1,4 +1,4 @@
# generated automatically by aclocal 1.7.8 -*- Autoconf -*-
# generated automatically by aclocal 1.7.6 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
# Free Software Foundation, Inc.
@ -11,7 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
dnl Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
dnl Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
dnl
dnl This program is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU General Public License
@ -152,6 +152,19 @@ then
fi
])
dnl enable-fastbuild
dnl
AC_DEFUN([ENABLE_FASTBUILD],
[
if test "$enable_fastbuild" = "yes"
then
CXX="`pwd`/bin/fastbuild.sh"
chmod +x "$CXX"
AR="`pwd`/bin/fastbuild.sh"
RANLIB="true"
fi
])
dnl with-workshop
dnl
AC_DEFUN([WITH_WORKSHOP],
@ -164,6 +177,38 @@ then
fi
])
dnl with-doxygen
dnl
AC_DEFUN([WITH_DOXYGEN],
[
if test "$with_doxygen" != ""
then
if test "$with_doxygen" = "yes" -a "$HAVE_DOXYGEN" != "yes"
then
echo ignoring --with-doxygen
else
HAVE_DOXYGEN="$with_doxygen"
AC_SUBST(HAVE_DOXYGEN)
fi
fi
])
dnl with-man2html
dnl
AC_DEFUN([WITH_MAN2HTML],
[
if test "$with_man2html" != ""
then
if test "$with_man2html" = "yes" -a "$HAVE_MAN2HTML" != "yes"
then
echo ignoring --with-man2html
else
HAVE_MAN2HTML="$with_man2html"
AC_SUBST(HAVE_MAN2HTML)
fi
fi
])
dnl enable-fhs
dnl
AC_DEFUN([ENABLE_FHS],
@ -188,10 +233,10 @@ AC_DEFUN([FHS_COMPLIANCE],
localstatedir='/var'
mandir='/usr/man'
datadir='/usr/share'
sysconfdir='/etc'
#
# not used by emailrelay
#bindir=
#sysconfdir=
#sharedstatedir=
#libdir=
#includedir=
@ -206,6 +251,7 @@ AC_DEFUN([FHS_COMPLIANCE],
e_spooldir="$localstatedir/spool/$PACKAGE"
e_man1dir="$datadir/man/man1"
e_examplesdir="$datadir/doc/$PACKAGE/examples"
e_sysconfdir="$sysconfdir"
])
@ -361,7 +407,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.7"])
# Call AM_AUTOMAKE_VERSION so it can be traced.
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.7.8])])
[AM_AUTOMAKE_VERSION([1.7.6])])
# Helper functions for option handling. -*- Autoconf -*-

View File

@ -1,5 +1,5 @@
#
## Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
## Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License
@ -18,14 +18,14 @@
##
#
EXTRA_DIST = emailrelay-doxygen-filter.sh_ emailrelay-test.sh_ emailrelay-soak.sh_ emailrelay.sh_ txt2html.sh_ txt2mu.sh_ mu2html.sh_ expand.sh_ emailrelay-notify.sh_ emailrelay-resubmit.sh_ emailrelay-deliver.sh_ emailrelay-process.sh_ emailrelay-runperl.js
noinst_SCRIPTS = emailrelay-doxygen-filter.sh emailrelay-test.sh emailrelay-soak.sh
EXTRA_DIST = emailrelay-doxygen-filter.sh_ emailrelay-test.sh_ emailrelay-soak.sh_ emailrelay.sh_ txt2html.sh_ txt2mu.sh_ mu2html.sh_ expand.sh_ emailrelay-notify.sh_ emailrelay-resubmit.sh_ emailrelay-deliver.sh_ emailrelay-process.sh_ emailrelay-runperl.js emailrelay-resubmit.js fastbuild.sh
noinst_cleanup = emailrelay-doxygen-filter.sh emailrelay-test.sh emailrelay-soak.sh
noinst_SCRIPTS = emailrelay-doxygen-filter.sh emailrelay-test.sh emailrelay-soak.sh emailrelay-runperl.js emailrelay-resubmit.js
e_init_SCRIPTS = emailrelay
e_examples_DATA = emailrelay-process.sh emailrelay-notify.sh emailrelay-deliver.sh emailrelay-resubmit.sh emailrelay-runperl.js
e_examples_DATA = emailrelay-process.sh emailrelay-notify.sh emailrelay-deliver.sh emailrelay-resubmit.sh
work_scripts = txt2mu.sh mu2html.sh expand.sh txt2html.sh emailrelay.sh
CLEANFILES = $(noinst_SCRIPTS) $(e_init_SCRIPTS) $(e_examples_DATA) $(work_scripts)
CLEANFILES = $(noinst_cleanup) $(e_init_SCRIPTS) $(e_examples_DATA) $(work_scripts)
TESTS = emailrelay-test.sh
@ -44,7 +44,6 @@ install-data-local: install-e_examplesDATA install-e_initSCRIPTS
chmod ugo+x $(DESTDIR)$(e_examplesdir)/emailrelay-resubmit.sh
chmod ugo+x $(DESTDIR)$(e_examplesdir)/emailrelay-deliver.sh
chmod ugo+x $(DESTDIR)$(e_examplesdir)/emailrelay-process.sh
chmod ugo+x $(DESTDIR)$(e_examplesdir)/emailrelay-runperl.js
uninstall-local:
-rmdir $(DESTDIR)$(e_examplesdir) 2>/dev/null

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.7.8 from Makefile.am.
# Makefile.in generated by automake 1.7.6 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
@ -111,6 +111,7 @@ e_libexecdir = @e_libexecdir@
e_man1dir = @e_man1dir@
e_sbindir = @e_sbindir@
e_spooldir = @e_spooldir@
e_sysconfdir = @e_sysconfdir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
includedir = @includedir@
@ -128,14 +129,14 @@ sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
EXTRA_DIST = emailrelay-doxygen-filter.sh_ emailrelay-test.sh_ emailrelay-soak.sh_ emailrelay.sh_ txt2html.sh_ txt2mu.sh_ mu2html.sh_ expand.sh_ emailrelay-notify.sh_ emailrelay-resubmit.sh_ emailrelay-deliver.sh_ emailrelay-process.sh_ emailrelay-runperl.js
noinst_SCRIPTS = emailrelay-doxygen-filter.sh emailrelay-test.sh emailrelay-soak.sh
EXTRA_DIST = emailrelay-doxygen-filter.sh_ emailrelay-test.sh_ emailrelay-soak.sh_ emailrelay.sh_ txt2html.sh_ txt2mu.sh_ mu2html.sh_ expand.sh_ emailrelay-notify.sh_ emailrelay-resubmit.sh_ emailrelay-deliver.sh_ emailrelay-process.sh_ emailrelay-runperl.js emailrelay-resubmit.js fastbuild.sh
noinst_cleanup = emailrelay-doxygen-filter.sh emailrelay-test.sh emailrelay-soak.sh
noinst_SCRIPTS = emailrelay-doxygen-filter.sh emailrelay-test.sh emailrelay-soak.sh emailrelay-runperl.js emailrelay-resubmit.js
e_init_SCRIPTS = emailrelay
e_examples_DATA = emailrelay-process.sh emailrelay-notify.sh emailrelay-deliver.sh emailrelay-resubmit.sh emailrelay-runperl.js
e_examples_DATA = emailrelay-process.sh emailrelay-notify.sh emailrelay-deliver.sh emailrelay-resubmit.sh
work_scripts = txt2mu.sh mu2html.sh expand.sh txt2html.sh emailrelay.sh
CLEANFILES = $(noinst_SCRIPTS) $(e_init_SCRIPTS) $(e_examples_DATA) $(work_scripts)
CLEANFILES = $(noinst_cleanup) $(e_init_SCRIPTS) $(e_examples_DATA) $(work_scripts)
TESTS = emailrelay-test.sh
@ -150,7 +151,7 @@ SCRIPTS = $(e_init_SCRIPTS) $(noinst_SCRIPTS)
DIST_SOURCES =
DATA = $(e_examples_DATA)
DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
@ -337,7 +338,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f $(CONFIG_CLEAN_FILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@ -347,7 +348,7 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
@ -370,7 +371,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@ -413,7 +414,6 @@ install-data-local: install-e_examplesDATA install-e_initSCRIPTS
chmod ugo+x $(DESTDIR)$(e_examplesdir)/emailrelay-resubmit.sh
chmod ugo+x $(DESTDIR)$(e_examplesdir)/emailrelay-deliver.sh
chmod ugo+x $(DESTDIR)$(e_examplesdir)/emailrelay-process.sh
chmod ugo+x $(DESTDIR)$(e_examplesdir)/emailrelay-runperl.js
uninstall-local:
-rmdir $(DESTDIR)$(e_examplesdir) 2>/dev/null

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@ -156,6 +156,7 @@ PostFilter()
${awk} '
{
if( match( $0 , "^[[:space:]]*class[[:space:]][^/]*//" ) ||
match( $0 , "^[[:space:]]*union[[:space:]][^/]*//" ) ||
match( $0 , "^[[:space:]]*struct[[:space:]][^/]*//" ) )
{
class = substr( $0 , 1 , RLENGTH-2 )
@ -180,7 +181,11 @@ name="`basename \"${1}\"`"
type="`echo \"${name}\" | ${awk} -F . '{print $NF}'`"
classes="`fgrep '// Class:' \"${1}\" | wc -l`"
if test "${name}" = "gdef.h" -o "${name}" = "gnet.h"
if test "${name}" = "md5.h" -o "${name}" = "md5.cpp"
then
cat "${1}"
elif test "${name}" = "gdef.h" -o "${name}" = "gnet.h"
then
cat "${1}" | BasicFilter

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License

100
bin/emailrelay-resubmit.js Normal file
View File

@ -0,0 +1,100 @@
//
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// 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 the Free Software Foundation; either
// version 2 of the License, or (at your option) any later
// version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// ===
//
// emailrelay-resubmit.js
//
// Looks for all failed e-mails in the E-MailRelay spool directory
// and resubmits them. However, if an e-mail has been retried five
// times already then it is not resubmitted again.
//
// usage: cscript //nologo emailrelay-resubmit.js [<spool-dir>]
//
// configuration
//
var cfg_store = "__SPOOL_DIR__" ;
var cfg_retry_limit = 5 ;
var cfg_debug = true ;
// parse the command line
//
var args = WScript.Arguments
if( args.length >= 1 )
{
cfg_store = args(0) ;
}
// debugging
//
function debug( line )
{
if( cfg_debug )
{
WScript.Echo( "debug: " + line ) ;
}
}
// check the spool directory
//
var fso = WScript.CreateObject( "Scripting.FileSystemObject" ) ;
if( ! fso.FolderExists( cfg_store ) )
{
WScript.Echo( "invalid spool directory: \"" + cfg_store + "\"" ) ;
WScript.Quit( 1 ) ;
}
// for each file...
//
var folder = fso.GetFolder( cfg_store ) ;
var re_reason = new RegExp( "MailRelay-Reason: " , "" ) ;
var re_bad = new RegExp( ".*\.bad" , "i" ) ;
var iter = new Enumerator( folder.Files ) ;
for( ; ! iter.atEnd() ; iter.moveNext() )
{
// if a failed envelope file...
var path = new String(iter.item()) ;
debug( "path: " + path ) ;
if( path.match(re_bad) )
{
// count the failure lines
var stream = fso.OpenTextFile( path , 1 ) ;
var failures = 0 ;
while( !stream.AtEndOfStream )
{
var line = stream.ReadLine() ;
debug( "line: " + line ) ;
if( line.match(re_reason) )
{
failures++ ;
}
}
stream.Close() ;
debug( "failures: " + failures ) ;
if( failures < cfg_retry_limit )
{
// remove the ".bad" suffix
var new_path = path.substr( 0 , path.length-4 ) ;
debug( "rename: " + path + " -> " + new_path ) ;
fso.MoveFile( path , new_path ) ;
}
}
}
WScript.Quit( 0 ) ;

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@ -20,20 +20,25 @@
//
// emailrelay-runperl.js
//
// An example JavaScript wrapper that runs a perl script
// for E-MailRelay. The perl script's standard input
// will the be the e-mail's content file. The perl script
// should process this to its standard output, and
// An example JavaScript wrapper that runs a perl script for E-MailRelay.
// The name of the perl script is hard-coded below: edit as necessary.
//
// This JavaScript can be installed as an E-MailRelay "--filter" program
// using an E-MailRelay command-line something like this:
//
// emailrelay --as-server --filter "c:/winnt/system32/cscript.exe //nologo c:/program\ files/emailrelay/emailrelay-runperl.js"
//
// Note the use of "cscript.exe" to execute the JavaScript, and the backslash
// to escape the space in the path.
//
// The e-mail's content file is fed to the perl script's standard input.
// The perl code is expected to process this to its standard output and then
// terminate with a zero exit code.
//
// Eg:
// emailrelay --as-server --filter "cscript.exe //nologo emailrelay-runperl.js"
//
// Uses CMD.EXE which may be not be available on some
// versions of Windows.
//
// Edit the next two lines as necessary, but avoid spaces in paths.
// The implementation of this JavaScript makes use of "CMD.EXE", which may be
// not be available on some versions of Windows.
//
// Edit the next two lines as necessary, but avoid spaces in paths:
var cfg_perl="perl -S -T -w"
var cfg_perl_script="spamassassin"
@ -82,4 +87,3 @@ else
WScript.Quit( rc )
}

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@ -23,12 +23,15 @@
#
# Soak tests the E-MailRelay system.
#
# usage: emailrelay-soak.sh [<exe>]
#
# (As a side-effect it does "killall emailrelay".)
#
# configuration
#
exe="`dirname $0`/../src/main/emailrelay"
test -z "${1}" || exe="${1}"
content="/etc/services"
pp="1001" # port prefix

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@ -39,71 +39,83 @@
# -n no cleanup
#
# parse the command line
#
opt_use_valgrind="0" ; if test "${1}" = "-v" ; then opt_use_valgrind="1" ; shift ; fi
opt_debug="0" ; if test "${1}" = "-d" ; then opt_debug="1" ; shift ; fi
opt_no_cleanup="0" ; if test "${1}" = "-n" ; then opt_no_cleanup="1" ; shift ; fi
opt_exe_dir="${1}"
# configuration
#
use_valgrind="0" ; if test "${1}" = "-v" ; then use_valgrind="1" ; shift ; fi
debug="" ; if test "${1}" = "-d" ; then debug="--debug" ; shift ; fi
no_cleanup="0" ; if test "${1}" = "-n" ; then no_cleanup="1" ; shift ; fi
exe_dir="../src/main" ; if test "${1}" != "" ; then exe_dir="${1}" ; fi
exe="${exe_dir}/emailrelay"
poke="${exe_dir}/emailrelay-poke"
null_filter="/bin/touch"
content_file="/etc/services"
pp="201" # port-prefix
cfg_sw_debug="" ; test "${opt_debug}" -eq 0 || cfg_sw_debug="--debug"
cfg_sw_extra="" ; test "${opt_use_valgrind}" -eq 0 || cfg_sw_extra="--no-daemon"
cfg_exe_dir="../src/main" ; test -z "${opt_exe_dir}" || cfg_exe_dir="${opt_exe_dir}"
cfg_main_exe="${cfg_exe_dir}/emailrelay"
cfg_poke_exe="${cfg_exe_dir}/emailrelay-poke"
cfg_null_filter="/bin/touch" ; test -f ${cfg_null_filter} || cfg_null_filter="/usr/bin/touch"
cfg_content_file="/etc/services"
cfg_pp="201" # port-prefix
cfg_base_dir="/tmp/`basename $0`.$$.tmp"
cfg_summary_log="/tmp/`basename $0`.out"
cfg_sw_valgrind="--logfile=${cfg_base_dir}/valgrind --trace-children=yes --num-callers=40 --leak-check=yes"
cfg_run="" ; test "${opt_use_valgrind}" -eq 0 || cfg_run="valgrind ${cfg_sw_valgrind}"
# configuration fallback
#
if test \! -f ${null_filter}
then
null_filter="/usr/bin/touch"
fi
# initialisation
#
base_dir="/tmp/`basename $0`.$$.tmp"
summary_log="/tmp/`basename $0`.out"
exit_code="1"
watchdog_pid=""
MALLOC_CHECK_="2"
export MALLOC_CHECK_
ulimit -c 1000000
if test "${use_valgrind}" -eq 1
then
exe="valgrind --logfile=${base_dir}/valgrind --trace-children=yes --num-callers=40 --leak-check=yes ${exe} --no-daemon"
fi
Cleanup()
Init()
{
${poke} ${pp}11 terminate
${poke} ${pp}12 terminate
${poke} ${pp}13 terminate
${poke} ${pp}14 terminate
${poke} ${pp}15 terminate
${poke} ${pp}16 terminate
sleep 2
kill `cat ${base_dir}/pid-* 2>/dev/null` 2>/dev/null
if test -d ${base_dir}
then
grep "MailRelay-Reason" ${base_dir}/*/*envelope*bad > "${summary_log}" 2>/dev/null
grep "." ${base_dir}/log-? >> "${summary_log}" 2>/dev/null
if test "${use_valgrind}" -eq 1
then
grep "." ${base_dir}/valgrind.* >> "${summary_log}" 2>/dev/null
fi
ls -lR ${base_dir} >> "${summary_log}" 2>/dev/null
if test "${no_cleanup}" -eq 0
then
rm -rf ${base_dir} 2>/dev/null
fi
fi
MALLOC_CHECK_="2"
export MALLOC_CHECK_
ulimit -c 1000000
trap "Trap 1 ; exit 1" 1 2 3 13 15
trap "e=\$? ; Trap 0 ; exit \$e" 0
}
Trap()
{
Cleanup
exit ${exit_code}
trap 0 1 2 3 13 15
if test "$1" -ne 0
then
echo `basename $0`: cleaning up >&2
fi
Cleanup > /dev/null 2>&1
}
Cleanup()
{
${cfg_poke_exe} ${cfg_pp}11 terminate
${cfg_poke_exe} ${cfg_pp}12 terminate
${cfg_poke_exe} ${cfg_pp}13 terminate
${cfg_poke_exe} ${cfg_pp}14 terminate
${cfg_poke_exe} ${cfg_pp}15 terminate
${cfg_poke_exe} ${cfg_pp}16 terminate
sleep 2
kill `cat ${cfg_base_dir}/pid-* 2>/dev/null`
if test -d ${cfg_base_dir}
then
grep "MailRelay-Reason" ${cfg_base_dir}/*/*envelope*bad > "${cfg_summary_log}"
grep "." ${cfg_base_dir}/log-? >> "${cfg_summary_log}"
if test "${opt_use_valgrind}" -eq 1
then
grep "." ${cfg_base_dir}/valgrind.* >> "${cfg_summary_log}"
fi
ls -lR ${cfg_base_dir} >> "${cfg_summary_log}"
if test "${opt_no_cleanup}" -eq 0
then
rm -rf ${cfg_base_dir}
fi
fi
}
SanityChecks()
{
if test "`${cfg_main_exe} --help | grep \"^Copyright\" | wc -l`" -ne 1
then
echo `basename $0`: cannot even run \"${cfg_main_exe} --help\" >&2
trap 0
exit 1
fi
}
RunServer()
@ -115,10 +127,15 @@ RunServer()
pidfile_="${5}"
extra_="${6}"
mkdir -p ${base_dir}/${spool_}
${exe} ${debug} --log --verbose --no-syslog --port ${port_} --spool-dir ${base_dir}/${spool_} \
--admin ${admin_port_} --admin-terminate \
--pid-file ${base_dir}/${pidfile_} ${extra_} 2> ${base_dir}/${log_} &
mkdir -p ${cfg_base_dir}/${spool_}
${cfg_run} ${cfg_main_exe} ${cfg_sw_extra} ${cfg_sw_debug} \
--log --verbose --no-syslog \
--port ${cfg_pp}${port_} \
--spool-dir ${cfg_base_dir}/${spool_} \
--admin ${cfg_pp}${admin_port_} \
--admin-terminate \
--pid-file ${cfg_base_dir}/${pidfile_} \
${extra_} 2> ${cfg_base_dir}/${log_} &
}
RunClient()
@ -128,9 +145,11 @@ RunClient()
log_="${3}"
pidfile_="${4}"
${exe} ${debug} --forward --no-daemon --dont-serve --log --verbose --no-syslog \
--pid-file ${base_dir}/${pidfile_} \
--forward-to ${to_} --spool-dir ${base_dir}/${spool_} 2> ${base_dir}/${log_}
${cfg_run} ${cfg_main_exe} ${cfg_sw_extra} ${cfg_sw_debug} \
--forward --no-daemon --dont-serve --log --verbose --no-syslog \
--pid-file ${cfg_base_dir}/${pidfile_} \
--forward-to ${to_} \
--spool-dir ${cfg_base_dir}/${spool_} 2> ${cfg_base_dir}/${log_}
}
RunPoke()
@ -138,7 +157,7 @@ RunPoke()
port_="${1}"
log_="${2}"
${poke} ${port_} > ${base_dir}/${log_}
${cfg_poke_exe} ${cfg_pp}${port_} > ${cfg_base_dir}/${log_}
}
Content()
@ -147,7 +166,7 @@ Content()
echo "Subject: test message 1"
echo "From: sender"
echo " "
cat "${content_file}"
cat "${cfg_content_file}"
}
Envelope()
@ -168,99 +187,109 @@ CrLf()
sed 's/$/£/' | tr '£' '\r'
}
CheckResults()
TestDone()
{
store="${1}"
if test "`ls -1 ${base_dir}/${store}/emailrelay.*.content 2>/dev/null | wc -l`" -eq 2 -a \
"`ls -1 ${base_dir}/${store}/emailrelay.*.envelope 2>/dev/null | wc -l`" -eq 2
then
exit_code="0"
echo `basename $0`: succeeded
else
false
fi
store_="${1}"
test \
"`ls -1 ${cfg_base_dir}/${store_}/emailrelay.*.content 2>/dev/null | wc -l`" -eq 2 -a \
"`ls -1 ${cfg_base_dir}/${store_}/emailrelay.*.envelope 2>/dev/null | wc -l`" -eq 2
}
StartWatchdog()
ReportResults()
{
sleep 10 && kill `cat ${base_dir}/pid-* 2>/dev/null` 2>/dev/null &
watchdog_pid=$!
ok_="${1}"
if test "${ok_}" -eq 1
then
echo `basename $0`: succeeded
else
echo `basename $0`: failed: see ${cfg_summary_log} >&2
fi
}
CreateMessages()
{
mkdir -p ${base_dir}/store-1
Content | CrLf > ${base_dir}/store-1/emailrelay.0.1.content
Envelope | CrLf > ${base_dir}/store-1/emailrelay.0.1.envelope
Content | CrLf > ${base_dir}/store-1/emailrelay.0.2.content
Envelope | CrLf > ${base_dir}/store-1/emailrelay.0.2.envelope
mkdir -p ${cfg_base_dir}/store-1
Content | CrLf > ${cfg_base_dir}/store-1/emailrelay.0.1.content
Envelope | CrLf > ${cfg_base_dir}/store-1/emailrelay.0.1.envelope
Content | CrLf > ${cfg_base_dir}/store-1/emailrelay.0.2.content
Envelope | CrLf > ${cfg_base_dir}/store-1/emailrelay.0.2.envelope
}
CreateAuth()
{
mkdir -p "${base_dir}"
mkdir -p "${cfg_base_dir}"
# encrypted version "joes_password" provided by emailrelay-passwd
key="2168297042.2818429713.1297528852.2023008371.2713943401.1997919265.1829599518.235099638"
file="${base_dir}/server.auth"
file="${cfg_base_dir}/server.auth"
echo "# server.auth" > ${file}
echo "LOGIN server fred freds_password" >> ${file}
echo "CRAM-MD5 server joe ${key}" >> ${file}
echo "CRAM-MD5 server brian 1.1.1.1.2.2.2.2" >> ${file}
file="${base_dir}/client-fred.auth"
file="${cfg_base_dir}/client-fred.auth"
echo "# client-fred.auth" > ${file}
echo "LOGIN client fred freds_password" >> ${file}
file="${base_dir}/client-joe.auth"
file="${cfg_base_dir}/client-joe.auth"
echo "# client-joe.auth" > ${file}
echo "CRAM-MD5 client joe ${key}" >> ${file}
}
CreateFilter()
{
cat <<EOF | sed 's/^_//' > ${base_dir}/filter.sh
_#!/bin/sh
_# filter.sh
_tmp="/tmp/`basename $0`.\$\$.tmp"
_tr 'a-z' 'A-Z' < \$1 > \$tmp && mv \$tmp \$1
_exit 0
cat <<EOF | sed 's/^ *_//' > ${cfg_base_dir}/filter.sh
_#!/bin/sh
_# filter.sh
_tmp="/tmp/`basename $0`.\$\$.tmp"
_tr 'a-z' 'A-Z' < \$1 > \$tmp && mv \$tmp \$1
_exit 0
EOF
chmod +x ${base_dir}/filter.sh
chmod +x ${cfg_base_dir}/filter.sh
}
trap "Trap ; exit" 1 2 3 13 15
trap "Trap 0 ; exit" 0
Sleep()
{
if test "${opt_use_valgrind}" -eq 1
then
sleep 30
else
sleep 5
fi
}
#StartWatchdog
CreateAuth
CreateFilter
Main()
{
Init
SanityChecks
CreateAuth
CreateFilter
CreateMessages
RunServer ${pp}01 ${pp}10 store-2 log-1 pid-1
RunServer ${pp}02 ${pp}12 store-2 log-2 pid-2 "--forward-to localhost:${pp}03 --client-auth ${base_dir}/client-joe.auth"
RunServer ${pp}03 ${pp}13 store-3 log-3 pid-3 "--immediate --forward-to localhost:${pp}04 --filter ${null_filter} --client-auth ${base_dir}/client-fred.auth --server-auth ${base_dir}/server.auth"
RunServer ${pp}04 ${pp}14 store-4 log-4 pid-4 "--server-auth ${base_dir}/server.auth"
RunServer ${pp}05 ${pp}15 store-4 log-5 pid-5 "--poll 1 --forward-to localhost:${pp}06"
RunServer ${pp}06 ${pp}16 store-6 log-6 pid-6 "--filter ${base_dir}/filter.sh"
RunServer 01 10 store-2 log-1 pid-1
RunServer 02 12 store-2 log-2 pid-2 "--forward-to localhost:${cfg_pp}03 --client-auth ${cfg_base_dir}/client-joe.auth"
RunServer 03 13 store-3 log-3 pid-3 "--immediate --forward-to localhost:${cfg_pp}04 --filter ${cfg_null_filter} --client-auth ${cfg_base_dir}/client-fred.auth --server-auth ${cfg_base_dir}/server.auth"
RunServer 04 14 store-4 log-4 pid-4 "--server-auth ${cfg_base_dir}/server.auth"
RunServer 05 15 store-4 log-5 pid-5 "--poll 1 --forward-to localhost:${cfg_pp}06"
RunServer 06 16 store-6 log-6 pid-6 "--filter ${cfg_base_dir}/filter.sh"
CreateMessages
RunClient localhost:${pp}01 store-1 log-c pid-7
RunPoke ${pp}12 log-p
sleep 1
RunClient localhost:${cfg_pp}01 store-1 log-c pid-7
RunPoke 12 log-p
for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
do
if test "${use_valgrind}" -eq 1 ; then sleep 50 ; fi
sleep 10
CheckResults store-6
if test $? -eq 0 ; then break ; fi
done
if test "${watchdog_pid}" != ""
then
kill "${watchdog_pid}"
fi
if test ${exit_code} -ne 0
then
echo `basename $0`: failed: see ${summary_log} >&2
fi
success="0"
for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
do
Sleep
if TestDone store-6
then
success="1"
break
fi
done
ReportResults "${success}"
}
Main

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License

108
bin/fastbuild.sh Normal file
View File

@ -0,0 +1,108 @@
#!/bin/sh
#
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# 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 the Free Software Foundation; either
# version 2 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# ===
#
# fastbuild.sh
#
# A complier stub for doing fastbuilds, where each executable
# is compiled from a single source-file containing a long
# list of source-file includes.
#
# This script will probably not work on weird o/s's. It
# was developed on SUSE 9.0.
#
Ar()
{
echo fastbuild: creating empty library "${2}"
touch "${2}"
}
ReallyCompile()
{
source_="${1}"
new_="${2}"
shift
shift
echo fastbuild: compiling "${new_}" instead of "${source_}"
g++ `echo $@ | sed "s/${source_}/${new_}/g"`
}
OutputFilter()
{
tr '\t' ' ' | sed 's/.* -o //' | sed 's/ .*//'
}
Skip()
{
source_="${1}"
shift
output_="`echo $@ | OutputFilter`"
echo fastbuild: skipping "${source}"
touch "${output_}"
}
Compile()
{
source="`echo $@ | sed 's/.* //'`"
case "${source}" in
main.cpp) ReallyCompile "${source}" emailrelay-fastbuild.cpp "$@" ;;
passwd.cpp) ReallyCompile "${source}" passwd-fastbuild.cpp "$@" ;;
submit.cpp) ReallyCompile "${source}" submit-fastbuild.cpp "$@" ;;
*) Skip "${source}" "$@" ;;
esac
}
ReallyLink()
{
echo fastbuild: linking $2 into $1
g++ -o "${1}" "${2}"
}
Link()
{
output_="`echo $@ | OutputFilter`"
output_name_="`basename \"${output_}\"`"
echo fastbuild: linking "${output_name_}"
case "${output_name_}" in
emailrelay) ReallyLink ${output_} main.o ;;
emailrelay-submit) ReallyLink ${output_} submit.o ;;
emailrelay-passwd) ReallyLink ${output_} passwd.o ;;
*) echo fastbuild: error: unrecognised target binary >&2 ;;
esac
}
if test "${1}" = "cru"
then
Ar "$@"
:
elif test "`echo $@ | grep '\.cpp *$' | wc -l`" -ne 0
then
Compile "$@"
:
elif test "`echo $@ | grep -- '-o *[-a-z][-a-z]* ' | wc -l`" -ne 0
then
Link "$@"
:
else
echo fastbuild: unrecognised command line
g++ "$@"
fi

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License

70
configure vendored
View File

@ -308,7 +308,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE RANLIB ac_ct_RANLIB MAKE AR GZIP HAVE_DOXYGEN HAVE_MAN2HTML COMPILER_VERSION CPP EGREP e_sbindir e_libexecdir e_docdir e_initdir e_spooldir e_man1dir e_examplesdir LIBOBJS LTLIBOBJS'
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE RANLIB ac_ct_RANLIB MAKE AR GZIP HAVE_DOXYGEN HAVE_MAN2HTML COMPILER_VERSION CPP EGREP e_sbindir e_libexecdir e_sysconfdir e_docdir e_initdir e_spooldir e_man1dir e_examplesdir LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@ -855,6 +855,8 @@ Optional Features:
--disable-dependency-tracking Speeds up one-time builds
--enable-dependency-tracking Do not reject slow dependency extractors
--enable-debug enable extra debug messages at compile-time
--enable-fastbuild enable experimental faster building; requires
--disable-dependency-tracking
--enable-fhs force FHS-compliant directories, ignoring --prefix
etc
@ -862,6 +864,8 @@ Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-workshop use Sun WorkShop 'CC -xar' as the 'ar' tool
--with-doxygen generate source code documentation with doxygen
--with-man2html convert man pages to html using man2html
Some influential environment variables:
CC C compiler command
@ -1553,7 +1557,7 @@ fi
# Define the identity of the package.
PACKAGE=emailrelay
VERSION=1.2
VERSION=1.3
cat >>confdefs.h <<_ACEOF
@ -5263,6 +5267,21 @@ _ACEOF
fi
# Check whether --enable-fastbuild or --disable-fastbuild was given.
if test "${enable_fastbuild+set}" = set; then
enableval="$enable_fastbuild"
fi;
if test "$enable_fastbuild" = "yes"
then
CXX="`pwd`/bin/fastbuild.sh"
chmod +x "$CXX"
AR="`pwd`/bin/fastbuild.sh"
RANLIB="true"
fi
# Check whether --with-workshop or --without-workshop was given.
if test "${with_workshop+set}" = set; then
@ -5278,6 +5297,44 @@ then
fi
# Check whether --with-doxygen or --without-doxygen was given.
if test "${with_doxygen+set}" = set; then
withval="$with_doxygen"
fi;
if test "$with_doxygen" != ""
then
if test "$with_doxygen" = "yes" -a "$HAVE_DOXYGEN" != "yes"
then
echo ignoring --with-doxygen
else
HAVE_DOXYGEN="$with_doxygen"
fi
fi
# Check whether --with-man2html or --without-man2html was given.
if test "${with_man2html+set}" = set; then
withval="$with_man2html"
fi;
if test "$with_man2html" != ""
then
if test "$with_man2html" = "yes" -a "$HAVE_MAN2HTML" != "yes"
then
echo ignoring --with-man2html
else
HAVE_MAN2HTML="$with_man2html"
fi
fi
# Check whether --enable-fhs or --disable-fhs was given.
if test "${enable_fhs+set}" = set; then
enableval="$enable_fhs"
@ -5288,6 +5345,8 @@ if test "$e_sbindir" = "" ; then e_sbindir="$sbindir" ; fi
if test "$e_libexecdir" = "" ; then e_libexecdir="$libexecdir" ; fi
if test "$e_sysconfdir" = "" ; then e_sysconfdir="$sysconfdir" ; fi
if test "$e_docdir" = "" ; then e_docdir="$datadir/$PACKAGE/doc" ; fi
if test "$e_initdir" = "" ; then e_initdir="$libexecdir" ; fi
@ -5311,10 +5370,10 @@ then
localstatedir='/var'
mandir='/usr/man'
datadir='/usr/share'
sysconfdir='/etc'
#
# not used by emailrelay
#bindir=
#sysconfdir=
#sharedstatedir=
#libdir=
#includedir=
@ -5329,13 +5388,14 @@ then
e_spooldir="$localstatedir/spool/$PACKAGE"
e_man1dir="$datadir/man/man1"
e_examplesdir="$datadir/doc/$PACKAGE/examples"
e_sysconfdir="$sysconfdir"
fi
SET_MAKE=""
ac_config_files="$ac_config_files Makefile src/Makefile src/glib/Makefile src/gnet/Makefile src/gsmtp/Makefile src/main/Makefile src/win32/Makefile lib/Makefile lib/gcc2.95/Makefile lib/msvc6.0/Makefile lib/sunpro5/Makefile bin/Makefile doc/Makefile"
ac_config_files="$ac_config_files Makefile src/Makefile src/glib/Makefile src/gnet/Makefile src/gsmtp/Makefile src/main/Makefile src/win32/Makefile lib/Makefile lib/gcc2.95/Makefile lib/msvc6.0/Makefile lib/sunpro5/Makefile bin/Makefile doc/Makefile etc/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
@ -5904,6 +5964,7 @@ do
"lib/sunpro5/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/sunpro5/Makefile" ;;
"bin/Makefile" ) CONFIG_FILES="$CONFIG_FILES bin/Makefile" ;;
"doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
"etc/Makefile" ) CONFIG_FILES="$CONFIG_FILES etc/Makefile" ;;
"depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
*) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
@ -6044,6 +6105,7 @@ s,@CPP@,$CPP,;t t
s,@EGREP@,$EGREP,;t t
s,@e_sbindir@,$e_sbindir,;t t
s,@e_libexecdir@,$e_libexecdir,;t t
s,@e_sysconfdir@,$e_sysconfdir,;t t
s,@e_docdir@,$e_docdir,;t t
s,@e_initdir@,$e_initdir,;t t
s,@e_spooldir@,$e_spooldir,;t t

View File

@ -1,4 +1,4 @@
dnl Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
dnl Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
dnl
dnl This program is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU General Public License
@ -21,7 +21,7 @@ dnl Process this file with autoconf to produce a configure script.
dnl
AC_INIT(src/gsmtp/gsmtp.h)
AM_INIT_AUTOMAKE(emailrelay,1.2)
AM_INIT_AUTOMAKE(emailrelay,1.3)
AM_CONFIG_HEADER(config.h)
dnl ===
@ -68,12 +68,30 @@ dnl
AC_ARG_ENABLE(debug,AC_HELP_STRING([--enable-debug],[enable extra debug messages at compile-time]))
ENABLE_DEBUG
dnl ===
dnl "--enable-fastbuild"
dnl
AC_ARG_ENABLE(fastbuild,AC_HELP_STRING([--enable-fastbuild],[enable experimental faster building; requires --disable-dependency-tracking]))
ENABLE_FASTBUILD
dnl ===
dnl "--with-workshop"
dnl
AC_ARG_WITH(workshop,AC_HELP_STRING([--with-workshop],[use Sun WorkShop 'CC -xar' as the 'ar' tool]))
WITH_WORKSHOP
dnl ===
dnl "--with-doxygen"
dnl
AC_ARG_WITH(doxygen,AC_HELP_STRING([--with-doxygen],[generate source code documentation with doxygen]))
WITH_DOXYGEN
dnl ===
dnl "--with-man2html"
dnl
AC_ARG_WITH(man2html,AC_HELP_STRING([--with-man2html],[convert man pages to html using man2html]))
WITH_MAN2HTML
dnl ===
dnl directory tweaking and "--enable-fhs" ...
dnl
@ -83,6 +101,8 @@ AC_SUBST(e_sbindir)
if test "$e_sbindir" = "" ; then e_sbindir="$sbindir" ; fi
AC_SUBST(e_libexecdir)
if test "$e_libexecdir" = "" ; then e_libexecdir="$libexecdir" ; fi
AC_SUBST(e_sysconfdir)
if test "$e_sysconfdir" = "" ; then e_sysconfdir="$sysconfdir" ; fi
AC_SUBST(e_docdir)
if test "$e_docdir" = "" ; then e_docdir="$datadir/$PACKAGE/doc" ; fi
AC_SUBST(e_initdir)
@ -103,5 +123,5 @@ SET_MAKE=""
dnl ===
dnl generate files...
dnl
AC_OUTPUT(Makefile src/Makefile src/glib/Makefile src/gnet/Makefile src/gsmtp/Makefile src/main/Makefile src/win32/Makefile lib/Makefile lib/gcc2.95/Makefile lib/msvc6.0/Makefile lib/sunpro5/Makefile bin/Makefile doc/Makefile)
AC_OUTPUT(Makefile src/Makefile src/glib/Makefile src/gnet/Makefile src/gsmtp/Makefile src/main/Makefile src/win32/Makefile lib/Makefile lib/gcc2.95/Makefile lib/msvc6.0/Makefile lib/sunpro5/Makefile bin/Makefile doc/Makefile etc/Makefile)

31
depcomp
View File

@ -1,7 +1,7 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
# Copyright 1999, 2000, 2003 Free Software Foundation, Inc.
# Copyright 1999, 2000 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
@ -172,25 +172,19 @@ sgi)
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
# in a .u file. This file always lives in the current directory.
# Also, the AIX compiler puts `$object:' at the start of each line;
# $object doesn't have directory information.
stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
outname="$stripped.o"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
stat=$?
if test -f "$tmpdepfile"; then :
else
stripped=`echo "$stripped" | sed 's,^.*/,,'`
tmpdepfile="$stripped.u"
fi
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
@ -198,7 +192,6 @@ aix)
fi
if test -f "$tmpdepfile"; then
outname="$stripped.o"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
@ -285,8 +278,8 @@ tru64)
fi
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
# That's a space and a tab in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
@ -299,7 +292,7 @@ tru64)
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
# always write the proprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
@ -395,7 +388,7 @@ makedepend)
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
# always write the proprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
@ -437,7 +430,7 @@ cpp)
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o,
# always write the proprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
"$@" || exit $?
IFS=" "

View File

@ -1,5 +1,5 @@
#
## Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
## Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License
@ -73,7 +73,7 @@ $(converter_helper3): $(converter_helper3_src)
if test "$(HAVE_DOXYGEN)" = "yes" ; then cat $(top_srcdir)/src/main/doxygen.cfg | sed "s:__TOP_SRC__:$(top_srcdir):g" | sed "s:__TOP_BUILD__:$(top_builddir):g" | doxygen - && touch .dox ; else echo no doxygen ; fi
emailrelay-man.html: emailrelay.1
if test "$(HAVE_MAN2HTML)" = "yes" ; then man2html emailrelay.1 > emailrelay-man.html ; fi
if test "$(HAVE_MAN2HTML)" = "yes" ; then man2html emailrelay.1 < /dev/null > emailrelay-man.html.tmp && mv emailrelay-man.html.tmp emailrelay-man.html ; fi
developer.html reference.html userguide.html: $(converter)

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.7.8 from Makefile.am.
# Makefile.in generated by automake 1.7.6 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
@ -111,6 +111,7 @@ e_libexecdir = @e_libexecdir@
e_man1dir = @e_man1dir@
e_sbindir = @e_sbindir@
e_spooldir = @e_spooldir@
e_sysconfdir = @e_sysconfdir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
includedir = @includedir@
@ -165,7 +166,7 @@ SCRIPTS = $(noinst_SCRIPTS)
DIST_SOURCES =
DATA = $(e_doc_DATA) $(e_man1_DATA)
DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
@ -276,7 +277,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f $(CONFIG_CLEAN_FILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@ -286,7 +287,7 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
@ -308,7 +309,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@ -365,7 +366,7 @@ $(converter_helper3): $(converter_helper3_src)
if test "$(HAVE_DOXYGEN)" = "yes" ; then cat $(top_srcdir)/src/main/doxygen.cfg | sed "s:__TOP_SRC__:$(top_srcdir):g" | sed "s:__TOP_BUILD__:$(top_builddir):g" | doxygen - && touch .dox ; else echo no doxygen ; fi
emailrelay-man.html: emailrelay.1
if test "$(HAVE_MAN2HTML)" = "yes" ; then man2html emailrelay.1 > emailrelay-man.html ; fi
if test "$(HAVE_MAN2HTML)" = "yes" ; then man2html emailrelay.1 < /dev/null > emailrelay-man.html.tmp && mv emailrelay-man.html.tmp emailrelay-man.html ; fi
developer.html reference.html userguide.html: $(converter)

View File

@ -271,4 +271,4 @@ to reassign a std::auto_ptr<>.
Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.
Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.

View File

@ -1,6 +1,23 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>E-MailRelay: $title</title>
<meta name="robots" content="noindex,nofollow">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<style type="text/css">
<!--
h1 { text-align: center; font-family: veranda, arial, helvetica, sans-serif; color: #09c ; }
h2 { font-family: veranda, geneva, arial, helvetica, sans-serif; color: #09c ; }
h3 { font-family: veranda, geneva, arial, helvetica, sans-serif; color: #09c ; }
a { color: #09c }
a.qindex { color: #09c }
a.qindex:visited { color: #09c }
a.qindex:hover { background-color: #ccf }
a.qindexHL { color: #09c ; background-color: #eeeeff ; }
a.qindexHL:visited { color: #09c ; background-color: #eeeeff ; }
a.qindexHL:hover { color: #09c ; background-color: #ccf; }
-->
</style>
</head>
<body bgcolor="#ffffff">

View File

@ -74,6 +74,10 @@ Enables the administration interface and specifies its listening port number.
<DD>
Enables the terminate command on the admin interface.
<DT><B>-A,--anonymous </B>
<DD>
Disables the smtp vrfy command and sends less verbose smtp responses.
<DT><B>-q,--as-client </B><I>host:port</I>
<DD>
@ -129,7 +133,7 @@ Forwards stored mail on startup (requires <I>--forward-to</I>).
<DT><B>-o,--forward-to </B><I>host:port</I>
<DD>
Specifies the remote smtp server (required by <I>--forward</I> and <I>--admin</I>).
Specifies the remote smtp server (required by <I>--forward</I>, <I>--poll</I>, <I>--immediate</I> and <I>--admin</I>).
<DT><B>-h,--help </B>
<DD>
@ -173,7 +177,7 @@ Specifies the smtp listening port number.
<DT><B>-P,--postmaster </B>
<DD>
Deliver to postmaster and reject all other local mailbox addresses.
Allow delivery to postmaster but reject all other local mailbox addresses.
<DT><B>-r,--remote-clients </B>
<DD>
@ -213,6 +217,9 @@ Displays version information and exits.
GNU style...
<BR>
/usr/local/etc/emailrelay.conf
<BR>
/usr/local/libexec/emailrelay
<BR>
@ -228,9 +235,18 @@ GNU style...
/usr/local/libexec/emailrelay-process.sh
<BR>
/usr/local/libexec/emailrelay-resubmit.js
<BR>
/usr/local/libexec/emailrelay-resubmit.sh
<BR>
/usr/local/libexec/emailrelay-runperl.js
<BR>
/usr/local/man/man1/emailrelay.1.gz
<BR>
/usr/local/man/man1/emailrelay-passwd.1.gz
<BR>
@ -240,9 +256,6 @@ GNU style...
/usr/local/man/man1/emailrelay-submit.1.gz
<BR>
/usr/local/man/man1/emailrelay.1.gz
<BR>
/usr/local/sbin/emailrelay
<BR>
@ -252,12 +265,6 @@ GNU style...
/usr/local/sbin/emailrelay-submit
<BR>
/usr/local/share/emailrelay/doc/NEWS
<BR>
/usr/local/share/emailrelay/doc/README
<BR>
/usr/local/share/emailrelay/doc/changelog.gz
<BR>
@ -273,9 +280,21 @@ GNU style...
/usr/local/share/emailrelay/doc/emailrelay.css
<BR>
/usr/local/share/emailrelay/doc/emailrelay-man.html
<BR>
/usr/local/share/emailrelay/doc/index.html
<BR>
/usr/local/share/emailrelay/doc/NEWS
<BR>
/usr/local/share/emailrelay/doc/*.png
<BR>
/usr/local/share/emailrelay/doc/README
<BR>
/usr/local/share/emailrelay/doc/readme.html
<BR>
@ -306,6 +325,9 @@ GNU style...
FHS style...
<BR>
/etc/emailrelay.conf
<BR>
/etc/init.d/emailrelay
<BR>
@ -321,12 +343,6 @@ FHS style...
/usr/sbin/emailrelay-submit
<BR>
/usr/share/doc/emailrelay/NEWS
<BR>
/usr/share/doc/emailrelay/README
<BR>
/usr/share/doc/emailrelay/changelog.gz
<BR>
@ -342,6 +358,9 @@ FHS style...
/usr/share/doc/emailrelay/emailrelay.css
<BR>
/usr/share/doc/emailrelay/emailrelay-man.html
<BR>
/usr/share/doc/emailrelay/examples/emailrelay-deliver.sh
<BR>
@ -357,6 +376,15 @@ FHS style...
/usr/share/doc/emailrelay/index.html
<BR>
/usr/share/doc/emailrelay/NEWS
<BR>
/usr/share/doc/emailrelay/*.png
<BR>
/usr/share/doc/emailrelay/README
<BR>
/usr/share/doc/emailrelay/readme.html
<BR>
@ -378,6 +406,9 @@ FHS style...
/usr/share/doc/emailrelay/windows.txt
<BR>
/usr/share/man/man1/emailrelay.1.gz
<BR>
/usr/share/man/man1/emailrelay-passwd.1.gz
<BR>
@ -387,9 +418,6 @@ FHS style...
/usr/share/man/man1/emailrelay-submit.1.gz
<BR>
/usr/share/man/man1/emailrelay.1.gz
<BR>
/var/spool/emailrelay/emailrelay.*.content
<BR>
@ -436,7 +464,7 @@ Graeme Walker, mailto:<A HREF="mailto:graeme_walker@users.sourceforge.net">graem
This document was created by
<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
Time: 21:06:55 GMT, November 06, 2003
Time: 20:53:37 GMT, February 26, 2004
</BODY>
</HTML>
<!-- Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved. -->
<!-- Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved. -->

View File

@ -1,4 +1,4 @@
.\" Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
.\" Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
.\"
.\" This program is free software; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License
@ -22,12 +22,26 @@ emailrelay-passwd \- a password encoding utility for E-MailRelay
.B emailrelay-passwd
.SH DESCRIPTION
.I emailrelay-passwd
is a utility which reads a plaintext password from the standard
input, and writes it out in an encoded form onto the standard
is a utility which reads a single plaintext password from the standard
input, and writes out an encoded form onto the standard
output. The encoded form is suitable for pasting into a CRAM-MD5
line in an
.B emailrelay
secrets file.
.LP
A secrets file containing two CRAM-MD5 passwords might look like
this:
.LP
#
.br
# emailrelay.auth
.br
#
.br
server cram-md5 bob 1465267825.1002706143.2005162520.2739353706.4126076156.3423185672.2674269368.3056934447
.br
server cram-md5 alice 4039336516.3719314525.4148590512.4209236927.1897255360.1012201638.2279588408.1076355329
.br
.SH SEE ALSO
.BR emailrelay (1),
.BR emailrelay-submit (1),

View File

@ -1,4 +1,4 @@
.\" Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
.\" Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
.\"
.\" This program is free software; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License

View File

@ -1,4 +1,4 @@
.\" Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
.\" Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
.\"
.\" This program is free software; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License

View File

@ -1,4 +1,4 @@
.\" Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
.\" Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
.\"
.\" This program is free software; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License
@ -59,6 +59,9 @@ Enables the administration interface and specifies its listening port number.
.B \-Q,--admin-terminate
Enables the terminate command on the admin interface.
.TP
.B \-A,--anonymous
Disables the smtp vrfy command and sends less verbose smtp responses.
.TP
.B \-q,--as-client \fIhost:port\fR
Runs as a client, forwarding spooled mail to <host>: equivalent to \fI--log\fR \fI--no-syslog\fR \fI--no-daemon\fR \fI--dont-serve\fR \fI--forward\fR \fI--forward-to\fR.
.TP
@ -99,7 +102,7 @@ Defines a mail processor program for when storing.
Forwards stored mail on startup (requires \fI--forward-to\fR).
.TP
.B \-o,--forward-to \fIhost:port\fR
Specifies the remote smtp server (required by \fI--forward\fR and \fI--admin\fR).
Specifies the remote smtp server (required by \fI--forward\fR, \fI--poll\fR, \fI--immediate\fR and \fI--admin\fR).
.TP
.B \-h,--help
Displays help text and exits.
@ -132,7 +135,7 @@ Enables polling with the specified period (requires \fI--forward-to\fR).
Specifies the smtp listening port number.
.TP
.B \-P,--postmaster
Deliver to postmaster and reject all other local mailbox addresses.
Allow delivery to postmaster but reject all other local mailbox addresses.
.TP
.B \-r,--remote-clients
Allows remote clients to connect.
@ -160,6 +163,8 @@ Displays version information and exits.
.SH FILES
GNU style...
.br
/usr/local/etc/emailrelay.conf
.br
/usr/local/libexec/emailrelay
.br
/usr/local/libexec/emailrelay-deliver.sh
@ -170,26 +175,26 @@ GNU style...
.br
/usr/local/libexec/emailrelay-process.sh
.br
/usr/local/libexec/emailrelay-resubmit.js
.br
/usr/local/libexec/emailrelay-resubmit.sh
.br
/usr/local/libexec/emailrelay-runperl.js
.br
/usr/local/man/man1/emailrelay.1.gz
.br
/usr/local/man/man1/emailrelay-passwd.1.gz
.br
/usr/local/man/man1/emailrelay-poke.1.gz
.br
/usr/local/man/man1/emailrelay-submit.1.gz
.br
/usr/local/man/man1/emailrelay.1.gz
.br
/usr/local/sbin/emailrelay
.br
/usr/local/sbin/emailrelay-passwd
.br
/usr/local/sbin/emailrelay-submit
.br
/usr/local/share/emailrelay/doc/NEWS
.br
/usr/local/share/emailrelay/doc/README
.br
/usr/local/share/emailrelay/doc/changelog.gz
.br
/usr/local/share/emailrelay/doc/changelog.html
@ -200,8 +205,16 @@ GNU style...
.br
/usr/local/share/emailrelay/doc/emailrelay.css
.br
/usr/local/share/emailrelay/doc/emailrelay-man.html
.br
/usr/local/share/emailrelay/doc/index.html
.br
/usr/local/share/emailrelay/doc/NEWS
.br
/usr/local/share/emailrelay/doc/*.png
.br
/usr/local/share/emailrelay/doc/README
.br
/usr/local/share/emailrelay/doc/readme.html
.br
/usr/local/share/emailrelay/doc/reference.html
@ -222,6 +235,8 @@ GNU style...
.LP
FHS style...
.br
/etc/emailrelay.conf
.br
/etc/init.d/emailrelay
.br
/usr/lib/emailrelay/emailrelay-poke
@ -232,10 +247,6 @@ FHS style...
.br
/usr/sbin/emailrelay-submit
.br
/usr/share/doc/emailrelay/NEWS
.br
/usr/share/doc/emailrelay/README
.br
/usr/share/doc/emailrelay/changelog.gz
.br
/usr/share/doc/emailrelay/changelog.html
@ -246,6 +257,8 @@ FHS style...
.br
/usr/share/doc/emailrelay/emailrelay.css
.br
/usr/share/doc/emailrelay/emailrelay-man.html
.br
/usr/share/doc/emailrelay/examples/emailrelay-deliver.sh
.br
/usr/share/doc/emailrelay/examples/emailrelay-notify.sh
@ -256,6 +269,12 @@ FHS style...
.br
/usr/share/doc/emailrelay/index.html
.br
/usr/share/doc/emailrelay/NEWS
.br
/usr/share/doc/emailrelay/*.png
.br
/usr/share/doc/emailrelay/README
.br
/usr/share/doc/emailrelay/readme.html
.br
/usr/share/doc/emailrelay/reference.html
@ -270,14 +289,14 @@ FHS style...
.br
/usr/share/doc/emailrelay/windows.txt
.br
/usr/share/man/man1/emailrelay.1.gz
.br
/usr/share/man/man1/emailrelay-passwd.1.gz
.br
/usr/share/man/man1/emailrelay-poke.1.gz
.br
/usr/share/man/man1/emailrelay-submit.1.gz
.br
/usr/share/man/man1/emailrelay.1.gz
.br
/var/spool/emailrelay/emailrelay.*.content
.br
/var/spool/emailrelay/emailrelay.*.envelope

View File

@ -21,4 +21,4 @@
</div>
</body>
</html>
<!-- Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved. -->
<!-- Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved. -->

View File

@ -19,6 +19,9 @@ where <switch> is:
# --admin-terminate (-Q)
Enables the terminate command on the admin interface.
# --anonymous (-A)
Disables the smtp vrfy command and sends less verbose smtp responses.
# --as-client (-q)
Runs as a client, forwarding spooled mail to <host>: equivalent to "--log --no-syslog --no-daemon --dont-serve --forward --forward-to".
@ -59,7 +62,7 @@ where <switch> is:
Forwards stored mail on startup (requires --forward-to).
# --forward-to (-o)
Specifies the remote smtp server (required by --forward and --admin).
Specifies the remote smtp server (required by --forward, --poll, --immediate and --admin).
# --help (-h)
Displays help text and exits.
@ -92,7 +95,7 @@ where <switch> is:
Specifies the smtp listening port number.
# --postmaster (-P)
Deliver to postmaster and reject all other local mailbox addresses.
Allow delivery to postmaster but reject all other local mailbox addresses.
# --remote-clients (-r)
Allows remote clients to connect.
@ -130,13 +133,12 @@ behaviour is:
* disable the administration interface
* generate no logging or diagnostic messages
The "--as-server" switch makes sure that logging is enabled and that
the standard error stream is closed.
Adding the "--as-server" switch makes sure that logging is enabled and that the
standard error stream is closed.
To foward spooled messages to the ISP the command-line switch "--as-client"
is provided to run the program...
To forward spooled messages the "--as-client" switch is provided to run the program
* in foreground, exiting when all spooled mail has been processed
* forwarding spooled mail from "/usr/local/var/spool/emailrelay" or "/var/spool/emailrelay"
* taking spooled mail from "/usr/local/var/spool/emailrelay" or "/var/spool/emailrelay"
* without listening on any port
* with error, warning and information messages sent to stderr
* without using syslog
@ -231,9 +233,9 @@ command to an E-MailRelay server. For example:
To use the "flush" command the next SMTP server address must have been defined
on the "emailrelay" command line at start-up using the "--forward-to" switch.
Also, the "list" command lists the messages in the spool directory, the "info"
command provides network status information and activity statistics, and the
"notify" command enables asynchronous event notification.
Also, the "list" command lists the messages in the spool directory, "info"
provides network status information and activity statistics, and "notify"
enables asynchronous event notification.
Mail processing
---------------
@ -319,21 +321,24 @@ For Windows this example can be rewritten in JavaScript:
}
WScript.Quit( 0 ) ;
Pre-processor programs written in JavaScript can be run with "cscript", using an
E-MailRelay command line with a "--filter" switch something like this (V1.1.3
or later):
Windows pre-processor programs written in JavaScript can be run using "cscript",
with an E-MailRelay "--filter" switch something like this (V1.1.3 or later):
--filter "c:/winnt/system32/cscript.exe \\nologo c:/program\ files/emailrelay/filter.js"
--filter "c:/winnt/system32/cscript.exe //nologo c:/program\ files/emailrelay/filter.js"
A more complex example script which does rot-13 masking is also provided in the
distribution ("emailrelay-process.sh"). This does some simple MIME encoding, and
could be used as a template for more sophisticated message encryption.
Note how the space character in the path is escaped with a backslash.
There also a "--client-filter" switch that enables pre-processing of messages
just before they are forwarded, rather then when stored. But note that by then
it is too late to notify the SMTP client of any processing failures.
As an example of more complex processing there is a "--filter" script included in
the distribution ("emailrelay-process.sh") that does rot-13 masking of messages.
This script also does some simple MIME encoding, so that the masked message
appears as an attachment within a plaintext bearer message.
Some points to note when writing "--filter" programs:
E-MailRelay also has a "--client-filter" switch that enables pre-processing of
messages just before they are forwarded, rather then after they are stored. The
problem is that by then it is too late to notify the SMTP client of any
processing failures, so in many applications using "--filter" is more useful.
Bear in mind the following points when writing "--filter" programs:
* The standard input and output are not used; the content filename is passed on the command line.
* Programs run with a reduced set of environment variables.
* The E-MailRelay process is completely blocked while the "--filter" program runs.
@ -344,21 +349,24 @@ Some points to note when writing "--filter" programs:
Address verification
--------------------
In proxy mode all addresses supplied to the SMTP commands "RCPT" and "VRFY" are
accepted by E-MailRelay as valid. In server mode (or more accurately when
"--postmater" is in effect) addresses are accepted if they contain an at sign
or if they are some sort of local "postmaster" address, as described in the SMTP
section above.
accepted by E-MailRelay as valid. But in server mode (or more accurately when
"--postmater" is in effect) addresses are only accepted if they contain an at
sign ("@") or if they are some sort of local "postmaster" address: "postmaster",
"postmaster@localhost" or "postmaster@<fqdn>".
However, this behaviour can be modified by using an external verifier program,
using the "--verifier" command-line switch.
specified with the "--verifier" command-line switch.
The verifier program is passed a command-line containing: (1) the full
address, (2) the user-name part of the address, (3) the host-name part, (4) the
local host's fully qualified domain name, (5) the current "MAIL" command's "FROM:"
address or the empty string for the "VRFY" command, (6) the IP address of the
client connection, (7) the authentication mechanism used by the client ("NONE"
if trusted), and (8) either the authentication name or the fourth field from
authentication secrets file if a trusted IP address.
The external verifier program is passed a command-line containing: (1) the full
address, (2) the user-name part of the address in upper-case, (3) the host-name
part in upper-case, (4) the local host's fully qualified domain name, (5) the
current "MAIL" command's "FROM:" address or the empty string for the "VRFY"
command, (6) the IP address of the client connection, (7) the authentication
mechanism used by the client ("NONE" if trusted), and (8) either the
authentication name or the fourth field from authentication secrets file if a
trusted IP address:
myverifier me@myhost.mydomain ME MYHOST.MYDOMAIN MYHOST.MYDOMAIN bob@other.net 192.168.0.1 LOGIN bob
For valid local mailbox addresses the verifier is expected to write two lines to
the standard output -- the full name associated with the mailbox, and the
@ -367,19 +375,17 @@ addresses the first line of output should be empty, the second line should be
copied from the first command-line argument, and the exit value should be one.
For invalid addresses the exit value should be greater than one, and anything
written to the standard output is taken as the failure reason. (Only the few
few thousand characters are read from the verifier's standard output stream;
any more is thrown away.)
few thousand characters are read from the verifier's standard output stream; any
more is thrown away.) If the exit code is 100 then the connection is aborted
immediately.
In this simple example script all addresses are accepted as long as they contain
an at sign. This is equivalent to removing the "--postmaster" command-line
switch:
an at sign:
#!/bin/sh
# verifier.sh
address="${1}"
user="${2}"
host="${3}"
if test "${address}" != "${user}@${host}" ; then exit 2 ; fi
address="$1"
expr "${address}" : ".*@" > /dev/null || exit 2
echo "${address}"
echo "${address}" # again
exit 1 # accept
@ -390,7 +396,7 @@ by connecting on a trusted IP address:
#!/bin/sh
# verifier.sh
address="${1}"
address="$1"
host="$3"
local_domain="$4"
auth_mechanism="$7"
@ -475,15 +481,24 @@ plaintext passwords, and the "CRAM-MD5" mechanism, as defined in RFC2195.
Authentication is enabled with the "--auth-client" and "--auth-server"
command-line switches. The switch parameter is the name of a "secrets" file,
containing usernames and passwords.
containing usernames and passwords:
emailrelay --as-server --auth-server /etc/client-secrets.txt
emailrelay --as-client myisp.net:smtp --auth-client /etc/myisp-secret.txt
The secrets file has a line-based format: blank lines are ignored and the hash
character (#) is used for comments. Lines have four white-space delimited
fields: "mechanism", "client-or-server", "userid", and "secret". The "mechanism"
field must be "LOGIN" or "CRAM-MD5" (case-insensitive); the "client-or-server"
field must be "client" or "server"; the "userid" field is xtext-encoded user
identifier; and the "secret" field is the xtext-encoded "LOGIN" password or
"CRAM-MD5" key.
character (#) is used for comments.
Lines have four white-space delimited fields:
* "mechanism"
* "client-or-server"
* "userid"
* "secret"
The "mechanism" field must be "LOGIN" or "CRAM-MD5" (case-insensitive); the
"client-or-server" field must be "client" or "server"; the "userid" field is
xtext-encoded user identifier; and the "secret" field is the xtext-encoded
"LOGIN" password or "CRAM-MD5" key.
The "xtext" encoding scheme is defined properly in RFC1891, but basically it
says that non alphanumeric characters should be represented in hexadecimal as
@ -526,7 +541,7 @@ A "CRAM-MD5" version would look like this:
When using the LOGIN mechanism you have to store plaintext passwords in a file
and then send them unencypted over a network. This is a bad thing. You should at
least make sure that the secrets file has tight permissions, and that the
passwords in it are not also used for anything important (such as root access).
passwords in it are not also used for anything important.
On the server side authentication is advertised by E-MailRealy in the response
to the SMTP "EHLO" command if the "--auth-server" command-line switch is used.
@ -541,7 +556,7 @@ the third field, and an arbitrary keyword in the fourth field. The keyword
is passed to any external address verifier program specified by the "--verifier"
command-line switch.
For example this secrets file allows any client connecting from the 192.168.0.0
For example this secrets file allows any client connecting from the 192.168.0.0/24
domain to connect without authentication desipte the "--auth-server" switch:
#
@ -567,27 +582,32 @@ Files and directories
---------------------
Following a normal build from source, a "make install" puts files in the
following locations:
* /usr/local/etc/emailrelay.conf
* /usr/local/libexec/emailrelay
* /usr/local/libexec/emailrelay-deliver.sh
* /usr/local/libexec/emailrelay-notify.sh
* /usr/local/libexec/emailrelay-poke
* /usr/local/libexec/emailrelay-process.sh
* /usr/local/libexec/emailrelay-resubmit.js
* /usr/local/libexec/emailrelay-resubmit.sh
* /usr/local/libexec/emailrelay-runperl.js
* /usr/local/man/man1/emailrelay.1.gz
* /usr/local/man/man1/emailrelay-passwd.1.gz
* /usr/local/man/man1/emailrelay-poke.1.gz
* /usr/local/man/man1/emailrelay-submit.1.gz
* /usr/local/man/man1/emailrelay.1.gz
* /usr/local/sbin/emailrelay
* /usr/local/sbin/emailrelay-passwd
* /usr/local/sbin/emailrelay-submit
* /usr/local/share/emailrelay/doc/NEWS
* /usr/local/share/emailrelay/doc/README
* /usr/local/share/emailrelay/doc/changelog.gz
* /usr/local/share/emailrelay/doc/changelog.html
* /usr/local/share/emailrelay/doc/developer.html
* /usr/local/share/emailrelay/doc/developer.txt
* /usr/local/share/emailrelay/doc/emailrelay.css
* /usr/local/share/emailrelay/doc/emailrelay-man.html
* /usr/local/share/emailrelay/doc/index.html
* /usr/local/share/emailrelay/doc/NEWS
* /usr/local/share/emailrelay/doc/*.png
* /usr/local/share/emailrelay/doc/README
* /usr/local/share/emailrelay/doc/readme.html
* /usr/local/share/emailrelay/doc/reference.html
* /usr/local/share/emailrelay/doc/reference.txt
@ -604,23 +624,26 @@ than the Filesystem Hierarchy Standard (FHS).
To force FHS compliance you can use the "--enable-fhs" switch when running
"configure", as is done for the RPMs. This results in the following file
locations:
* /etc/emailrelay.conf
* /etc/init.d/emailrelay
* /usr/lib/emailrelay/emailrelay-poke
* /usr/sbin/emailrelay
* /usr/sbin/emailrelay-passwd
* /usr/sbin/emailrelay-submit
* /usr/share/doc/emailrelay/NEWS
* /usr/share/doc/emailrelay/README
* /usr/share/doc/emailrelay/changelog.gz
* /usr/share/doc/emailrelay/changelog.html
* /usr/share/doc/emailrelay/developer.html
* /usr/share/doc/emailrelay/developer.txt
* /usr/share/doc/emailrelay/emailrelay.css
* /usr/share/doc/emailrelay/emailrelay-man.html
* /usr/share/doc/emailrelay/examples/emailrelay-deliver.sh
* /usr/share/doc/emailrelay/examples/emailrelay-notify.sh
* /usr/share/doc/emailrelay/examples/emailrelay-process.sh
* /usr/share/doc/emailrelay/examples/emailrelay-resubmit.sh
* /usr/share/doc/emailrelay/index.html
* /usr/share/doc/emailrelay/NEWS
* /usr/share/doc/emailrelay/*.png
* /usr/share/doc/emailrelay/README
* /usr/share/doc/emailrelay/readme.html
* /usr/share/doc/emailrelay/reference.html
* /usr/share/doc/emailrelay/reference.txt
@ -628,10 +651,10 @@ locations:
* /usr/share/doc/emailrelay/userguide.txt
* /usr/share/doc/emailrelay/windows.html
* /usr/share/doc/emailrelay/windows.txt
* /usr/share/man/man1/emailrelay.1.gz
* /usr/share/man/man1/emailrelay-passwd.1.gz
* /usr/share/man/man1/emailrelay-poke.1.gz
* /usr/share/man/man1/emailrelay-submit.1.gz
* /usr/share/man/man1/emailrelay.1.gz
* /var/spool/emailrelay/emailrelay.*.content
* /var/spool/emailrelay/emailrelay.*.envelope
@ -641,6 +664,7 @@ can be specified on the "configure" command-line (but note that the
* e_sbindir
* e_libexecdir
* e_docdir
* e_sysconfdir
* e_initdir
* e_spooldir
* e_man1dir
@ -674,4 +698,4 @@ if the directory exists, or in "/tmp" otherwise.
Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.
Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.

View File

@ -44,29 +44,33 @@ E-MailRelay is designed to be policy-free, so that you can implement your own
policies for message retries, bounces, local mailbox delivery, spam filtering
etc. through external scripts.
It has no dependencies on third-party libraries or run-time environments, so it
is easy to build and install.
Typical applications of E-MailRelay include:
* spam filtering and virus checking incoming mail
* adding digital signatures or legal disclaimers to outgoing mail
* doing store-and-forward for outgoing mail across a dial-up internet connection
* doing store-and-forward for outgoing mail across a dial-up Internet connection
* adding authentication where the existing infrastructure does not support it
* simple proxying on a firewall host or DMZ
Running E-MailRelay
-------------------
To run the program as a proxy use the "--as-proxy" command-line switch, followed by the
address of the target SMTP server. If you want to edit or filter e-mail as it passes
through the proxy then specify your pre-processor program with the "--filter" switch.
You can optionally change the listening port number using "--port" and the
spool directory using "--spool-dir".
To run the program as a proxy use the "--as-proxy" command-line switch followed
by the address of the target SMTP server. If you want to edit or filter e-mail
as it passes through the proxy then specify your pre-processor program with the
"--filter" switch. You can optionally change the listening port number using
"--port" and the spool directory using "--spool-dir".
For example, to start up a local proxy which passes messages to some "addsig" script
and then forwards them to an MTA running on "smarthost", use a command like this:
For example, to start up a local proxy that passes messages to some "addsig"
script and then forwards them to an MTA running on "smarthost", use a command
like this:
emailrelay --as-proxy smarthost:smtp --filter $HOME/bin/addsig --spool-dir $HOME/tmp
To use E-MailRelay as a store-and-forward MTA use the "--as-server" switch
to start the storage daemon in the background. And then trigger delivery of
spooled messages by running emailrelay with the "--as-client" switch, followed
spooled messages by running emailrelay with the "--as-client" switch followed
by the address of the target SMTP server.
For example, to start a storage daemon listening on port 10025 use a command
@ -78,6 +82,9 @@ And then to forward the spooled mail to "smarthost" run somthing like this:
emailrelay --as-client smarthost:smtp --spool-dir $HOME/tmp
You can also have an E-MailRelay storage daemon forward spooled e-mails
periodically by using the "--poll" switch.
By default E-MailRelay will reject connections from remote machines. To
allow connections from anywhere use the "--remote-clients" switch.
@ -109,7 +116,7 @@ script in the parent directory, using a "S" prefix for the starting link, and a
the order in which the links are called.
So the goal is to set up symbolic links to the "emailrelay" start/stop script
(not the binary) which "make install" will have put in "/etc/init.d" or
(not the binary) which "make install" should have put in "/etc/init.d" or
"/usr/local/libexec".
Before you start you will need to know where your "init.d" directory can be
@ -125,7 +132,7 @@ there):
$ cp /usr/local/libexec/emailrelay /etc/init.d
Then determine an appropriate numeric value for the link names by looking at
the "sendmail" links:
similar server programs like "sendmail":
$ cd /etc/init.d/rc5.d
$ ls *sendmail*
@ -137,8 +144,8 @@ the "emailrelay" links in the same format:
$ ln -s ../emailrelay S10emailrelay
$ ln -s ../emailrelay K10emailrelay
And finally remove sendmail from the run-level (otherwise both
daemons compete for the standard SMTP listening port):
And finally remove any incomatible SMTP servers from the run-level that might
otherwise compete for the same SMTP listening port:
$ cd /etc/init.d/rc5.d
$ rm *sendmail
@ -146,12 +153,12 @@ daemons compete for the standard SMTP listening port):
Triggering onward delivery
--------------------------
If you are using E-MailRelay to store and forward e-mail over a dial-up link to
the internet, then you will need to set things up so that the dialler tells
the Internet, then you will need to set things up so that the dialler tells
E-MailRelay when to start forwarding.
This section assumes that you are using "pppd" to establish your dial-up
Internet connection. (Note that KDE's "kppp" and Red Hat's "rp3" are graphical
front-ends to the underlying "pppd" daemon.)
Internet connection. (KDE's "kppp" and Red Hat's "rp3" are graphical
front-ends to an underlying "pppd" daemon.)
The ppp daemon calls the script "/etc/ppp/ip-up" when it has successfully
established a dial-up link to your ISP. This script will probably set up IP
@ -208,8 +215,8 @@ too many times already.
Logging
-------
If the "--log" switch is used then E-MailRelay program issues warnings and error
messages to the "syslog" system using the "LOG_MAIL" facility. Under Windows NT
it writes to the "Application" event log.
messages to the "syslog" system using the "LOG_MAIL" facility. Under Windows it
writes to the "Application" event log.
The "syslog" system is configured through the "/etc/syslog.conf" file (try
"man syslog.conf"), and in most cases you will find that "LOG_MAIL" warnings and
@ -232,13 +239,12 @@ remote server and drive the SMTP protocol manually. Telnet can be told to
connect to the remote SMTP port by putting the port number (25) on the command
line after the remote hostname, for example: "telnet smtp.myisp.net 25".
Once connected you should get a startup banner from the server, which will
probably tell you what server software you have connected to. From there you
should type something like "EHLO myhost.mydomain". The response to the EHLO
command should contain a list of SMTP extensions which the server software
supports. If this includes the AUTH extension then the set of supported
authentication mechanisms (such as LOGIN, CRAM-MD5 etc.) will be listed on the
same line.
Once connected you should get a startup banner from the server, which may tell
you what server software you have connected to. From there you should type
something like "EHLO myhost.mydomain". The response to the EHLO command should
contain a list of SMTP extensions which the server software supports. If this
includes the AUTH extension then the set of supported authentication mechanisms
(such as LOGIN, CRAM-MD5 etc.) will be listed on the same line.
After the EHLO response you should type "MAIL FROM:<myhost.mydomain>", retaining
the angle brackets but substituing your own address. If this is accepted then
@ -253,8 +259,8 @@ to do things properly you should have at least a "To:" line, a "From:" line and
a "Subject:" line in the header.
At the end of the message text type a "." on a line of its own. At that point the
message should get dispatched, and end up in your in-box in the usual way
(assuming you put your own address in the "RCPT TO" command).
message should get dispatched, and eventually end up in your in-box in the usual
way (assuming you put your own address in the "RCPT TO" command).
The following is an example SMTP dialogue, with ">>" and "<<" marks added to
show what was typed and what was received:
@ -331,9 +337,9 @@ not authenticated. Again, refer to the reference guide for further details.
SpamAssassin
------------
The E-MailRelay server can use *Spam Assassin* [http://spamassassin.org] to mark
potential spam by having a small shell script which calls "spamassassin"
installed as the E-MailRelay mail pre-processor using the "--filter" command-line
switch.
potential spam. To do this you will need to have a small shell script to call
"spamassassin", and pass the name of this script to E-MailRelay using the
"--filter" command-line switch.
Your "--filter" shell script could look something like this:
@ -364,13 +370,18 @@ to the exit code:
exit 0
On Windows there is less of a problem with carriage returns, but because
"spamassassin" is a perl script it takes a bit of work to call it correctly.
"spamassassin" is a perl script it takes a bit of work to call it correctly: on
Windows only ".exe" and ".bat" files can be executed directly by the operating
system. One solution is to have E-MailRelay run some JavaScript using
"cscript.exe", and the JavaScript can then run perl/spamassassin and pass the
results back to E-MailRelay.
An example JavaScript wrapper called "emailrelay-runperl.js" is included in
the distribution that by default calls "spamassassin".
Try an E-MailRelay command line like this:
emailrelay --as-server --filter "cscript //nologo c:/program\ files/emailrelay/emailrelay-runperl.js"
emailrelay --as-server --filter "c:/winnt/system32/cscript.exe //nologo c:/program\ files/emailrelay/emailrelay-runperl.js"
But note that you may have to add explicit paths if perl or spamassassin are not
on your path.
@ -378,4 +389,4 @@ on your path.
Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.
Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.

View File

@ -6,21 +6,21 @@ Introduction
E-MailRelay was originally developed on Linux and so most of the documentation
relates to Unix-like operating systems rather than Microsoft Windows. This
document provides some help on installing and setting up E-MailRelay as a
store-and-forward MTA on Windows.
store-and-forward MTA on Windows 98.
Quick start
------------
In summary, the Windows installation process is as follows:
* Unpack the zip file to "Program Files\emailrelay".
* Create a shortcut to the E-MailRelay executable in "Start->Programs->StartUp".
* Add "storage-daemon" configuration options (if any) to the "StartUp" shortcut's command line.
* Create a shortcut to the executable on the taskbar and/or desktop.
* Add "forwarding-client" configuration options to the taskbar/desktop shortcut's command line. These configuration options will normally include something like "--as-client smtp.myisp.com:smtp".
* Create a spool directory under "<windir>\spool", eg. "c:\win98\spool\emailrelay".
* Create a shortcut to the E-MailRelay executable in "Start->Programs->StartUp".
* Add "storage-daemon" configuration options such as "--as-server" to the "StartUp" shortcut's command line.
* Create a shortcut to the executable on the taskbar and/or desktop.
* Add "forwarding-client" configuration options such as "--as-client smtp.myisp.com:smtp" to the taskbar/desktop shortcut's command line.
* Configure your e-mail client (eg. Outlook) to use SMTP on the local machine for outgoing e-mail.
* Run the forwarding client from the taskbar/desktop shortcut once connected to the Internet.
These steps are explained in more detail below.
These steps are described in more detail below.
On versions of Windows that support services you could also try using Microsoft's
"srvany.exe" utility to run emailrelay as a service; you will need to add the
@ -102,4 +102,4 @@ taskbar, desktop or "Start->Programs->StartUp" shortcuts.
Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.
Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.

View File

@ -1,14 +1,12 @@
Summary: Simple e-mail message transfer agent using SMTP
Name: emailrelay
Version: 1.2
Version: 1.3
Release: 1
Copyright: GPL
Group: System Environment/Daemons
Source: http://emailrelay.sourceforge.net/.../emailrelay-src-1.2.tar.gz
Source: http://emailrelay.sourceforge.net/.../emailrelay-src-1.3.tar.gz
BuildRoot: /tmp/emailrelay-install
%define prefix /usr
%description
E-MailRelay is a simple SMTP proxy and store-and-forward message transfer agent
(MTA). When running as a proxy all e-mail messages can be passed through a
@ -17,7 +15,7 @@ messages as they pass through. When running as a store-and-forward MTA incoming
messages are stored in a local spool directory, and then forwarded to the next
SMTP server on request.
Because of its functional simplicity E-MailRelay is easy to configure, typically
Because of its functional simplicity E-MailRelay is easy to configure, typically
only requiring the address of the target SMTP server to be put on the command
line.
@ -28,11 +26,11 @@ Distribution is under the GNU General Public License.
%setup
%build
./configure --enable-fhs
make HAVE_DOXYGEN=no HAVE_MAN2HTML=no
./configure --enable-fhs --without-man2html --without-doxygen
make
%install
make install-strip destdir=$RPM_BUILD_ROOT DESTDIR=$RPM_BUILD_ROOT HAVE_DOXYGEN=no HAVE_MAN2HTML=no
make install-strip destdir=$RPM_BUILD_ROOT DESTDIR=$RPM_BUILD_ROOT
%post
test -f /usr/lib/lsb/install_initd && cd /etc/init.d && /usr/lib/lsb/install_initd emailrelay || true
@ -41,38 +39,41 @@ test -f /usr/lib/lsb/install_initd && cd /etc/init.d && /usr/lib/lsb/install_ini
test $1 -eq 0 && test -f /usr/lib/lsb/remove_initd && cd /etc/init.d && /usr/lib/lsb/remove_initd emailrelay || true
%clean
rm -rf $RPM_BUILD_ROOT
test "$RPM_BUILD_ROOT" = "/" || rm -rf "$RPM_BUILD_ROOT"
%files
%config /etc/emailrelay.conf
/etc/init.d/emailrelay
%{prefix}/lib/emailrelay/emailrelay-poke
%{prefix}/sbin/emailrelay
%{prefix}/sbin/emailrelay-passwd
%{prefix}/sbin/emailrelay-submit
%{prefix}/share/doc/emailrelay/NEWS
%{prefix}/share/doc/emailrelay/README
%{prefix}/share/doc/emailrelay/changelog.gz
%{prefix}/share/doc/emailrelay/changelog.html
%{prefix}/share/doc/emailrelay/developer.html
%{prefix}/share/doc/emailrelay/developer.txt
%{prefix}/share/doc/emailrelay/emailrelay.css
%{prefix}/share/doc/emailrelay/examples/emailrelay-deliver.sh
%{prefix}/share/doc/emailrelay/examples/emailrelay-notify.sh
%{prefix}/share/doc/emailrelay/examples/emailrelay-process.sh
%{prefix}/share/doc/emailrelay/examples/emailrelay-resubmit.sh
%{prefix}/share/doc/emailrelay/index.html
%{prefix}/share/doc/emailrelay/readme.html
%{prefix}/share/doc/emailrelay/reference.html
%{prefix}/share/doc/emailrelay/reference.txt
%{prefix}/share/doc/emailrelay/userguide.html
%{prefix}/share/doc/emailrelay/userguide.txt
%{prefix}/share/doc/emailrelay/windows.html
%{prefix}/share/doc/emailrelay/windows.txt
%{prefix}/share/man/man1/emailrelay-passwd.1.gz
%{prefix}/share/man/man1/emailrelay-poke.1.gz
%{prefix}/share/man/man1/emailrelay-submit.1.gz
%{prefix}/share/man/man1/emailrelay.1.gz
/usr/lib/emailrelay/emailrelay-poke
/usr/sbin/emailrelay
/usr/sbin/emailrelay-passwd
/usr/sbin/emailrelay-submit
/usr/share/doc/emailrelay/changelog.gz
/usr/share/doc/emailrelay/changelog.html
/usr/share/doc/emailrelay/developer.html
/usr/share/doc/emailrelay/developer.txt
/usr/share/doc/emailrelay/emailrelay.css
/usr/share/doc/emailrelay/emailrelay-man.html
/usr/share/doc/emailrelay/examples/emailrelay-deliver.sh
/usr/share/doc/emailrelay/examples/emailrelay-notify.sh
/usr/share/doc/emailrelay/examples/emailrelay-process.sh
/usr/share/doc/emailrelay/examples/emailrelay-resubmit.sh
/usr/share/doc/emailrelay/index.html
/usr/share/doc/emailrelay/NEWS
/usr/share/doc/emailrelay/*.png
/usr/share/doc/emailrelay/README
/usr/share/doc/emailrelay/readme.html
/usr/share/doc/emailrelay/reference.html
/usr/share/doc/emailrelay/reference.txt
/usr/share/doc/emailrelay/userguide.html
/usr/share/doc/emailrelay/userguide.txt
/usr/share/doc/emailrelay/windows.html
/usr/share/doc/emailrelay/windows.txt
/usr/share/man/man1/emailrelay.1.gz
/usr/share/man/man1/emailrelay-passwd.1.gz
/usr/share/man/man1/emailrelay-poke.1.gz
/usr/share/man/man1/emailrelay-submit.1.gz
/var/spool/emailrelay/
%changelog

21
etc/Makefile.am Normal file
View File

@ -0,0 +1,21 @@
#
## Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
##
## 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 the Free Software Foundation; either
## version 2 of the License, or (at your option) any later
## version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
#
EXTRA_DIST = emailrelay.conf
e_sysconf_DATA = emailrelay.conf

292
etc/Makefile.in Normal file
View File

@ -0,0 +1,292 @@
# Makefile.in generated by automake 1.7.6 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
COMPILER_VERSION = @COMPILER_VERSION@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GZIP = @GZIP@
HAVE_DOXYGEN = @HAVE_DOXYGEN@
HAVE_MAN2HTML = @HAVE_MAN2HTML@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAKE = @MAKE@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
bindir = @bindir@
build_alias = @build_alias@
datadir = @datadir@
e_docdir = @e_docdir@
e_examplesdir = @e_examplesdir@
e_initdir = @e_initdir@
e_libexecdir = @e_libexecdir@
e_man1dir = @e_man1dir@
e_sbindir = @e_sbindir@
e_spooldir = @e_spooldir@
e_sysconfdir = @e_sysconfdir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
#
#
EXTRA_DIST = emailrelay.conf
e_sysconf_DATA = emailrelay.conf
subdir = etc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
DATA = $(e_sysconf_DATA)
DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu etc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
uninstall-info-am:
e_sysconfDATA_INSTALL = $(INSTALL_DATA)
install-e_sysconfDATA: $(e_sysconf_DATA)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(e_sysconfdir)
@list='$(e_sysconf_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " $(e_sysconfDATA_INSTALL) $$d$$p $(DESTDIR)$(e_sysconfdir)/$$f"; \
$(e_sysconfDATA_INSTALL) $$d$$p $(DESTDIR)$(e_sysconfdir)/$$f; \
done
uninstall-e_sysconfDATA:
@$(NORMAL_UNINSTALL)
@list='$(e_sysconf_DATA)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(e_sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(e_sysconfdir)/$$f; \
done
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkinstalldirs) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
$(mkinstalldirs) $(DESTDIR)$(e_sysconfdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am: install-e_sysconfDATA
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-e_sysconfDATA uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am info info-am install \
install-am install-data install-data-am install-e_sysconfDATA \
install-exec install-exec-am install-info install-info-am \
install-man install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
uninstall-am uninstall-e_sysconfDATA uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

136
etc/emailrelay.conf Normal file
View File

@ -0,0 +1,136 @@
#
# emailrelay.conf
#
# This is a configuration file for emailrelay (http://emailrelay.sf.net).
# It is used by the emailrelay init.d script when it starts up an emailrelay
# server.
#
# The init.d script constructs an emailrelay command-line by starting
# with "--as-server --pid-file ..." and then contatenating uncommented lines
# from this file, prefixing each with "--".
#
# To enable one of the configuration switches below remove the '#' character
# on the last line in the block.
#
# Name: remote-clients
# Format: remote-clients
# Description: Allows remote clients to connect.
#
#remote-clients
# Name: spool-dir
# Format: spool-dir <dir>
# Description: Specifies the spool directory. The default is compiled into the
# program, but it is typically /var/spool/emailrelay.
#
#spool-dir /var/spool/emailrelay
# Name: interface
# Format: interface <ip-address>
# Description: Specifies an interface to listen on.
#
#interface 192.168.0.10
# Name: filter
# Format: filter <program>
# Description: Defines a mail processor program which is run as each message is stored.
#
#filter /usr/local/bin/emailrelay-filter
# Name: server-auth
# Format: server-auth <file>
# Description: Enables authentication of remote clients, using the given secrets file.
#
#server-auth /etc/emailrelay.auth
# Name: admin
# Format: admin <admin-port>
# Description: Enables the administration interface and specifies its listening port number.
#
#admin 10026
# Name: client-auth
# Format: client-auth <file>
# Description: Enables authentication with the remote server, using the given secrets file.
#
#client-auth /etc/emailrelay.auth
# Name: connection-timeout
# Format: connection-timeout <time>
# Description: Sets the timeout (in seconds) when connecting to a remote server. The default is 40.
#
#connection-timeout 10
# Name: domain
# Format: domain <fqdn>
# Description: Sets an override for this host's fully qualified domain name.
#
#domain myhost.mydomain.net
# Name: forward
# Format: forward
# Description: Forwards stored mail on startup. Requires --forward-to.
#
#forward
# Name: forward-to
# Format: forward-to <host:port>
# Description: Specifies the remote SMTP server when using --forward or --admin.
#
#forward-to smarthost.mydomain.net
# Name: immediate
# Format: immediate
# Description: Forwards each message as soon as it is received. Requires --forward-to.
#
#immediate
# Name: log-time
# Format: log-time
# Description: Adds a timestamp to the logging output.
#
#log-time
# Name: no-syslog
# Format: no-syslog
# Description: Disables syslog output.
#
#no-syslog
# Name: poll
# Format: poll <period>
# Description: Enables polling with the specified period. Requires --forward-to.
#
#poll 120
# Name: port
# Format: port <port>
# Description: Specifies the SMTP listening port number.
#
#port 587
# Name: response-timeout
# Format: response-timeout <time>
# Description: Sets the response timeout (in seconds) when talking to a remote server. The default is 1800.
#
#response-timeout 60
# Name: user
# Format: user <username>
# Description: Names the effective user to switch to when started as root (default is "daemon").
#
#user nobody
# Name: verbose
# Format: verbose
# Description: Generates more verbose logging output.
#
#verbose
# Name: verifier
# Format: verifier <program>
# Description: Defines an external address verifier program.
#
#verifier /usr/local/bin/emailrelay-verifier

View File

@ -1,5 +1,5 @@
#
## Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
## Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.7.8 from Makefile.am.
# Makefile.in generated by automake 1.7.6 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
@ -108,6 +108,7 @@ e_libexecdir = @e_libexecdir@
e_man1dir = @e_man1dir@
e_sbindir = @e_sbindir@
e_spooldir = @e_spooldir@
e_sysconfdir = @e_sysconfdir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
includedir = @includedir@
@ -140,7 +141,7 @@ RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive
DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
DIST_COMMON = Makefile.am Makefile.in
DIST_SUBDIRS = $(SUBDIRS)
all: all-recursive
@ -345,7 +346,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f $(CONFIG_CLEAN_FILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@ -355,7 +356,7 @@ clean: clean-recursive
clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-tags
dvi: dvi-recursive
@ -377,7 +378,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive

View File

@ -1,5 +1,5 @@
#
## Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
## Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.7.8 from Makefile.am.
# Makefile.in generated by automake 1.7.6 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
@ -111,6 +111,7 @@ e_libexecdir = @e_libexecdir@
e_man1dir = @e_man1dir@
e_sbindir = @e_sbindir@
e_spooldir = @e_spooldir@
e_sysconfdir = @e_sysconfdir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
includedir = @includedir@
@ -135,7 +136,7 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
@ -207,7 +208,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f $(CONFIG_CLEAN_FILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@ -217,7 +218,7 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
@ -239,7 +240,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
#
## Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
## Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License
@ -18,5 +18,5 @@
##
#
EXTRA_DIST = cstdio cstdlib cstring ctime cmath
EXTRA_DIST = cstdio cstdlib cstring ctime cmath cstddef

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.7.8 from Makefile.am.
# Makefile.in generated by automake 1.7.6 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
@ -111,6 +111,7 @@ e_libexecdir = @e_libexecdir@
e_man1dir = @e_man1dir@
e_sbindir = @e_sbindir@
e_spooldir = @e_spooldir@
e_sysconfdir = @e_sysconfdir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
includedir = @includedir@
@ -128,14 +129,14 @@ sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
EXTRA_DIST = cstdio cstdlib cstring ctime cmath
EXTRA_DIST = cstdio cstdlib cstring ctime cmath cstddef
subdir = lib/msvc6.0
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
@ -207,7 +208,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f $(CONFIG_CLEAN_FILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@ -217,7 +218,7 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
@ -239,7 +240,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

35
lib/msvc6.0/cstddef Normal file
View File

@ -0,0 +1,35 @@
//
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// 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 the Free Software Foundation; either
// version 2 of the License, or (at your option) any later
// version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// ===
//
// cstddef
//
#ifndef G_PORT_CSTDDEF_H
#define G_PORT_CSTDDEF_H
#include <stddef.h>
namespace std
{
using ::size_t ;
}
#endif

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@ -25,6 +25,7 @@
#define G_PORT_CSTDIO_H
#include <stdio.h>
namespace std
{
using ::remove ;

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@ -24,7 +24,8 @@
#ifndef G_PORT_CSTDLIB_H
#define G_PORT_CSTDLIB_H
#include "stdlib.h"
#include <stdlib.h>
namespace std
{
using ::rand ;

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@ -24,7 +24,8 @@
#ifndef G_PORT_CSTRING_H
#define G_PORT_CSTRING_H
#include "string.h"
#include <string.h>
namespace std
{
using ::strlen ;

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@ -25,6 +25,7 @@
#define G_PORT_CTIME_H
#include <time.h>
namespace std
{
using ::time_t ;

View File

@ -1,5 +1,5 @@
#
## Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
## Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.7.8 from Makefile.am.
# Makefile.in generated by automake 1.7.6 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
@ -108,6 +108,7 @@ e_libexecdir = @e_libexecdir@
e_man1dir = @e_man1dir@
e_sbindir = @e_sbindir@
e_spooldir = @e_spooldir@
e_sysconfdir = @e_sysconfdir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
includedir = @includedir@
@ -134,7 +135,7 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
@ -206,7 +207,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f $(CONFIG_CLEAN_FILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@ -216,7 +217,7 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
@ -238,7 +239,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am

View File

@ -1,5 +1,24 @@
#!/bin/sh
#
# Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
#
# 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 the Free Software Foundation; either
# version 2 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# ===
#
# xar
#
# A replacement for 'ar' that does 'CC -xar' ignoring

View File

@ -1,6 +1,6 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
@ -165,7 +165,7 @@ WARNING: \`$1' is missing on your system. You should only need it if
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them.
You can get \`$1' as part of \`Autoconf' from any GNU
You can get \`$1Help2man' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
@ -326,7 +326,7 @@ WARNING: I can't seem to be able to run \`tar' with the given arguments.
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequisites for installing
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1

View File

@ -1,5 +1,5 @@
#
## Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
## Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License
@ -17,5 +17,5 @@
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
#
SUBDIRS = glib gnet gsmtp main win32
EXTRA_DIST = mingw.mak mingw-common.mak
SUBDIRS = glib gnet gsmtp main win32

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.7.8 from Makefile.am.
# Makefile.in generated by automake 1.7.6 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
@ -108,6 +108,7 @@ e_libexecdir = @e_libexecdir@
e_man1dir = @e_man1dir@
e_sbindir = @e_sbindir@
e_spooldir = @e_spooldir@
e_sysconfdir = @e_sysconfdir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
includedir = @includedir@
@ -127,8 +128,8 @@ target_alias = @target_alias@
#
#
SUBDIRS = glib gnet gsmtp main win32
EXTRA_DIST = mingw.mak mingw-common.mak
SUBDIRS = glib gnet gsmtp main win32
subdir = src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@ -141,7 +142,7 @@ RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive
DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
DIST_COMMON = Makefile.am Makefile.in
DIST_SUBDIRS = $(SUBDIRS)
all: all-recursive
@ -346,7 +347,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f $(CONFIG_CLEAN_FILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@ -356,7 +357,7 @@ clean: clean-recursive
clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-tags
dvi: dvi-recursive
@ -378,7 +379,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive

View File

@ -1,5 +1,5 @@
#
## Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
## Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License
@ -31,12 +31,12 @@ EXTRA_DIST=\
gfile_win32.cpp \
gregistry_win32.cpp \
gregistry.h \
md5c.c \
md5.h \
mingw.mak
INCLUDES = -I$(top_srcdir)/lib/$(COMPILER_VERSION)
noinst_LIBRARIES = libglib.a
libglib_a_SOURCES = \
md5.cpp \
md5.h \
garg.cpp \
garg.h \
garg_unix.cpp \
@ -74,7 +74,7 @@ libglib_a_SOURCES = \
glogoutput.cpp \
glogoutput.h \
glogoutput_unix.cpp \
gmd5_rsa.cpp \
gmd5_native.cpp \
gmd5.h \
gmemory.h \
gnoncopyable.h \

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.7.8 from Makefile.am.
# Makefile.in generated by automake 1.7.6 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
@ -108,6 +108,7 @@ e_libexecdir = @e_libexecdir@
e_man1dir = @e_man1dir@
e_sbindir = @e_sbindir@
e_spooldir = @e_spooldir@
e_sysconfdir = @e_sysconfdir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
includedir = @includedir@
@ -141,13 +142,13 @@ EXTRA_DIST = \
gfile_win32.cpp \
gregistry_win32.cpp \
gregistry.h \
md5c.c \
md5.h \
mingw.mak
INCLUDES = -I$(top_srcdir)/lib/$(COMPILER_VERSION)
noinst_LIBRARIES = libglib.a
libglib_a_SOURCES = \
md5.cpp \
md5.h \
garg.cpp \
garg.h \
garg_unix.cpp \
@ -185,7 +186,7 @@ libglib_a_SOURCES = \
glogoutput.cpp \
glogoutput.h \
glogoutput_unix.cpp \
gmd5_rsa.cpp \
gmd5_native.cpp \
gmd5.h \
gmemory.h \
gnoncopyable.h \
@ -216,14 +217,14 @@ LIBRARIES = $(noinst_LIBRARIES)
libglib_a_AR = $(AR) cru
libglib_a_LIBADD =
am_libglib_a_OBJECTS = garg.$(OBJEXT) garg_unix.$(OBJEXT) \
am_libglib_a_OBJECTS = md5.$(OBJEXT) garg.$(OBJEXT) garg_unix.$(OBJEXT) \
gcleanup_unix.$(OBJEXT) gdaemon_unix.$(OBJEXT) gdate.$(OBJEXT) \
gdatetime.$(OBJEXT) gdatetime_unix.$(OBJEXT) \
gdirectory.$(OBJEXT) gdirectory_unix.$(OBJEXT) \
gexception.$(OBJEXT) gexe.$(OBJEXT) gfile.$(OBJEXT) \
gfile_unix.$(OBJEXT) gfs_unix.$(OBJEXT) ggetopt.$(OBJEXT) \
gidentity_unix.$(OBJEXT) glog.$(OBJEXT) glogoutput.$(OBJEXT) \
glogoutput_unix.$(OBJEXT) gmd5_rsa.$(OBJEXT) gpath.$(OBJEXT) \
glogoutput_unix.$(OBJEXT) gmd5_native.$(OBJEXT) gpath.$(OBJEXT) \
gpidfile.$(OBJEXT) gprocess_unix.$(OBJEXT) groot.$(OBJEXT) \
gslot.$(OBJEXT) gstr.$(OBJEXT) gtime.$(OBJEXT)
libglib_a_OBJECTS = $(am_libglib_a_OBJECTS)
@ -244,11 +245,11 @@ am__depfiles_maybe = depfiles
@AMDEP_TRUE@ ./$(DEPDIR)/gidentity_unix.Po ./$(DEPDIR)/glog.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/glogoutput.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/glogoutput_unix.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/gmd5_rsa.Po ./$(DEPDIR)/gpath.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/gmd5_native.Po ./$(DEPDIR)/gpath.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/gpidfile.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/gprocess_unix.Po ./$(DEPDIR)/groot.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/gslot.Po ./$(DEPDIR)/gstr.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/gtime.Po
@AMDEP_TRUE@ ./$(DEPDIR)/gtime.Po ./$(DEPDIR)/md5.Po
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
@ -259,7 +260,7 @@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DIST_SOURCES = $(libglib_a_SOURCES)
DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
DIST_COMMON = Makefile.am Makefile.in
SOURCES = $(libglib_a_SOURCES)
all: all-am
@ -304,7 +305,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glog.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glogoutput.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glogoutput_unix.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmd5_rsa.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmd5_native.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpath.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpidfile.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gprocess_unix.Po@am__quote@
@ -312,6 +313,10 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gslot.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@
distclean-depend:
-rm -rf ./$(DEPDIR)
.cpp.o:
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
@ -445,7 +450,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f $(CONFIG_CLEAN_FILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@ -455,10 +460,9 @@ clean: clean-am
clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi: dvi-am
@ -479,8 +483,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@ -499,13 +502,14 @@ uninstall-am: uninstall-info-am
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-noinstLIBRARIES ctags distclean distclean-compile \
distclean-generic distclean-tags distdir dvi dvi-am info \
info-am install install-am install-data install-data-am \
install-exec install-exec-am install-info install-info-am \
install-man install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
ps ps-am tags uninstall uninstall-am uninstall-info-am
distclean-depend distclean-generic distclean-tags distdir dvi \
dvi-am info info-am install install-am install-data \
install-data-am install-exec install-exec-am install-info \
install-info-am install-man install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
uninstall-am uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@ -107,7 +107,7 @@ public:
void removeAt( size_t sw_index , size_t sw_args = 0U ) ;
// Removes the given argument and the
// following <sw_args> ones.
// following 'sw_args' ones.
Arg & operator=( const Arg & ) ;
// Assignment operator.

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@ -26,6 +26,7 @@
#include "gdebug.h"
#include <ctime>
#include <iomanip>
#include <sstream>
//static
int G::Date::yearUpperLimit()

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@ -37,7 +37,7 @@ namespace G
// Class: G::Date
// Description: A date (dd/mm/yyyy) class.
// See also: Time, DateTime
// See also: G::Time, G::DateTime
//
class G::Date
{

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@ -145,6 +145,10 @@
#endif
#endif
// Pull some std types into the global namespace
//
using std::size_t ;
// Modify compiler error handling
//
#if defined(G_COMPILER_IS_MICROSOFT)

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@ -41,7 +41,7 @@ namespace G
// Description: An encapsulation of a file system directory
// which allows for iterating through the set of contained
// files.
// See also: Path, FileSystem, File
// See also: G::Path, G::FileSystem, G::File
//
class G::Directory
{
@ -119,7 +119,7 @@ public:
std::string sizeString() const ;
// Returns the file size as a decimal string. The value
// may be more than 32 bits. See also class Number.
// may be more than 32 bits. See also class G::Number.
Path filePath() const ;
// Returns the path of the current item.

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@ -37,7 +37,7 @@ namespace G
// Class: G::File
// Description: A simple static class for dealing with files.
// See also: Path, FileSystem, Directory
// See also: G::Path, G::FileSystem, G::Directory
//
class G::File
{

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
//
// Copyright (C) 2001-2003 Graeme Walker <graeme_walker@users.sourceforge.net>
// Copyright (C) 2001-2004 Graeme Walker <graeme_walker@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

Some files were not shown because too many files have changed in this diff Show More