...
 
Commits (2)
0.18
2019-07-01 Sam Varshavchik <mrsam@courier-mta.com>
* Warning fixes.
0.17
2016-06-02 Sam Varshavchik <mrsam@courier-mta.com>
......
#
# Copyright 2004-2016 Double Precision, Inc. See COPYING for
# Copyright 2004-2019 Double Precision, Inc. See COPYING for
# distribution information.
AC_PREREQ(2.59)
AC_INIT(courier-analog, 0.17, [courier-users@lists.sourceforge.net])
AC_INIT(courier-analog, 0.18, [courier-users@lists.sourceforge.net])
AM_INIT_AUTOMAKE
LPATH="$PATH:/usr/local/bin"
......
#! @PERL@
#
#
# Copyright 2004-2016 Double Precision, Inc. See COPYING for
# Copyright 2004-2019 Double Precision, Inc. See COPYING for
# distribution information.
# Courier log analyzer
......@@ -1231,6 +1231,8 @@ while (<>)
{
my ($login,$ip,$headers,$body,$seconds,$tls)=($1,$2,$5,$7,$9,$10);
$seconds=0 unless defined $seconds;
my $hash=$$conn{"user"};
$$hash{$login}=[] unless defined $$hash{$login};
......@@ -1262,7 +1264,7 @@ while (<>)
next;
}
if ($logline =~ /^id=[^,]*,from=(<>),addr=(<.*>),status: defer/)
if ($logline =~ /^id=[^,]*,from=(<.*>),addr=(<.*>),status: defer/)
{
my ($sender,$recipient)=($1,$2);
track_esmtp_out($ESMTP_OUTBOUND{"defer"}, $sender, $recipient,
......@@ -1270,7 +1272,7 @@ while (<>)
next;
}
if ($logline =~ /^id=[^,]*,from=(<>),addr=(<.*>),status: fail/)
if ($logline =~ /^id=[^,]*,from=(<.*>),addr=(<.*>),status: fail/)
{
my ($sender,$recipient)=($1,$2);
track_esmtp_out($ESMTP_OUTBOUND{"fail"}, $sender, $recipient,
......
2019-07-21 Sam Varshavchik <mrsam@courier-mta.com>
* courier/module.esmtp/esmtp.c (isindomaindb): use ualllower instead
of tolower.
1.0.8
2019-06-08 Sam Varshavchik <mrsam@courier-mta.com>
......
......@@ -5,7 +5,7 @@ dnl distribution information.
AC_PREREQ(2.59)
AC_INIT(courier, 1.0.8, [courier-users@lists.sourceforge.net])
AC_INIT(courier, 1.0.8.20190721, [courier-users@lists.sourceforge.net])
version=$PACKAGE_VERSION
AC_CONFIG_SRCDIR(courier/courier.c)
AM_INIT_AUTOMAKE
......
......@@ -152,13 +152,10 @@ struct rfc822token *p, *q;
return (0);
}
static int isindomaindb(char *address, struct dbobj *db)
static int isindomaindb_utf8(const char *address, struct dbobj *db)
{
char *p;
int n=8;
for (p=address; *p; p++)
*p=tolower(*p);
const char *p;
int n=8;
p=address;
......@@ -169,10 +166,20 @@ int n=8;
if (*p == '.') ++p;
while (*p && *p != '.')
++p;
--n;
}
return (0);
}
static int isindomaindb(const char *p, struct dbobj *db)
{
char *q=ualllower(p);
int ret=isindomaindb_utf8(q, db);
free(q);
return ret;
}
static int ispercenthack(struct rfc822token *ptr)
{
static char *percenthack=0;
......