Bunch of updates from Proofpoint. See ChangeLog

This commit is contained in:
dac%x.cx 2004-06-14 22:20:26 +00:00
parent 7a5736e42a
commit 411065e866
13 changed files with 115 additions and 41 deletions

View File

@ -1,3 +1,17 @@
2004-06-14 Dan Christian <robodan@idiom.com>
* Makefile (VERSION): Bump version to 4.3
* Make build work on recent versions of Linux and Solaris
* Make ssh the default way to get a remote shell
* Support SVG graph output (not supported by all browsers)
* Use rfc822 style from addresses
* Fix documentation link on index page to be local
2000-04-28 Dan Christian <dac@x.cx>
* http and wmap now use common routines from http-util

View File

@ -20,7 +20,7 @@ PERL_DIR = $(wildcard perl5.*)
GDFILES = gd.txt gd.html libgd.* gd.h demoin.gif gddemo giftogd webgif
GNUPLOTFILES = gnuplot Copyright gnuplot_x11 gnuplot.1 gnuplot.gih
VERSION = 4.2
VERSION = 4.3
TARBALL = mstone-$(VERSION)-$(NSARCH)$(OBJDIR_TAG).tar.gz
ZIPFILE = mstone-$(VERSION)-$(NSARCH)$(OBJDIR_TAG).zip
TARBALL_ALL = mstone-$(VERSION)-all$(OBJDIR_TAG).tar.gz

View File

@ -36,10 +36,11 @@
# Where the online docs live
#$mailstoneURL =
# "http://home.netscape.com/eng/server/messaging/4.1/mailston/stone.htm";
$mailstoneURL =
"http://developer.iplanet.com/docs/manuals/messaging.html";
#$mailstoneURL =
# "http://developer.iplanet.com/docs/manuals/messaging.html";
#$mailstoneURL =
# "http://docs.iplanet.com/docs/manuals/messaging/nms415/mailstone/stone.htm"
$mailstoneURL = "http:doc/MailStone.html";
# Subdirs for results (each under a timestamp dir). Should just hardwire.
$tmpbase = "tmp";
@ -695,11 +696,13 @@ sub setConfigDefaults { # set CONFIG defaults
unless($params{TEMPDIR});
# Set default remote shell
$params{RSH} = "/usr/bin/rsh"
#$params{RSH} = "/usr/bin/rsh"
$params{RSH} = "ssh"
unless($params{RSH});
# Set default remote copy
$params{RCP} = "/usr/bin/rcp"
#$params{RCP} = "/usr/bin/rcp"
$params{RCP} = "scp"
unless($params{RCP});
# Size of generated gifs

View File

@ -34,10 +34,10 @@
# This file deals with the graphs data only
# Interfaces to gnuplot to generate gifs for HTML inclusion.
# Type of images to hold plots (e.g. png, gif, jpeg, tiff, etc)
# Type of images to hold plots (e.g. png, gif, jpeg, svg, tiff, pbm, etc)
unless ($params{IMAGETYPE}) {
# Should probe gnuplot and see if it can generate one of:
# png, gif, jpeg, tiff, or pbm.
# png, gif, jpeg, svg, tiff, or pbm.
# Not all the programs that use args.pl need this (or have gnuplot, yet)
my $outfile = "$tmpbase/termtypes.out";
my %types = (); # hash of interesting types that we spot
@ -73,9 +73,10 @@ unless ($params{IMAGETYPE}) {
# now check through the output for terminal types we can use.
# I havent verified the jpeg or tiff types. e-mail me success or failure
while (<NEW>) {
(/\sgif\s/) && ++$types{"gif"} && next;
(/\spng\s/) && ++$types{"png"} && next;
(/\sgif\s/) && ++$types{"gif"} && next;
(/\sjpeg\s/) && ++$types{"jpeg"} && next;
(/\ssvg\s/) && ++$types{"svg"} && next;
(/\stiff\s/) && ++$types{"tiff"} && next;
(/\spbm\s/) && ++$types{"pbm"} && next;
}
@ -87,10 +88,12 @@ unless ($params{IMAGETYPE}) {
# The ordering here determines our preferences
# This list is by likely browser compatibility and image compactness
# png is about 10x smaller than gif
# svg is smooth and scalable but usually requires a plug-in
# jpeg will probably look bad, but will be directly supported
if ($types{"png"}) { $params{IMAGETYPE}="png"; }
elsif ($types{"gif"}) { $params{IMAGETYPE}="gif"; }
elsif ($types{"jpeg"}) { $params{IMAGETYPE}="jpeg"; }
elsif ($types{"svg"}) { $params{IMAGETYPE}="svg"; }
elsif ($types{"tiff"}) { $params{IMAGETYPE}="tiff"; }
elsif ($types{"pbm"}) { $params{IMAGETYPE}="pbm"; }
else {
@ -273,6 +276,8 @@ sub genPlot {
# Setup output "terminal type"
if ($params{IMAGETYPE} eq "gif") { # gif type has different arguments
print SCRIPT "set terminal $params{IMAGETYPE} small size $params{CHARTWIDTH},$params{CHARTHEIGHT}\n";
} elsif ($params{IMAGETYPE} eq "svg") { # svg type has different args too
print SCRIPT "set terminal $params{IMAGETYPE} size $params{CHARTWIDTH} $params{CHARTHEIGHT}\n";
} else { # most types work like this
print SCRIPT "set terminal $params{IMAGETYPE} small color\n";
if (($params{CHARTWIDTH} != 640) || ($params{CHARTHEIGHT} != 480)) {

View File

@ -58,6 +58,7 @@ if (-r "$resultbase/index.html") {
"^<!-- INSERT TAGS HERE",
$entry);
} else { # create index from scratch
system ("cd $resultbase; ln -s ../doc .");
open(INDEXNEW, ">$resultbase/index.new") ||
die "Couldn't open $resultbase/index.new: $!";

View File

@ -1,4 +1,4 @@
#!/usr/local/bin/perl
#!/usr/bin/perl
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
@ -55,7 +55,7 @@
# [ -x maxstores ]
# [ -3 ]
#
# perl/bin/perl -Ibin -- bin/makeusers.pl -d mailhost.example.com -m mailhost.example.com -b 'o=example.com' -u mailhost-test -n 100 -4 -o mailhost100.ldif
#perl -Ibin -- bin/makeusers.pl -d mailhost.example.com -m mailhost.example.com -b 'o=example.com' -u mailhost-test -n 100 -4 -o mailhost100.ldif
# Create the ldif for the user accounts and/or broadcast, postmaster account.
#

View File

@ -25,7 +25,7 @@ export sleep_time=${sleep_time:-5}
export save_dir=${save_dir:-"results.save"}
# Basic sanity test
if [[ ! -x perl/bin/perl || ! -f .license ]] ; then # see if setup was ever run
if [[ ! -x /usr/bin/perl || ! -f .license ]] ; then # see if setup was ever run
echo "Critical files are missing. Run setup."
exit 2;
fi
@ -115,7 +115,7 @@ run_test () {
echo "\nRunning:" mstone $testname -b "$desc $desc_conf" $extra_args "$@"
# We actually bypass the mstone script
perl/bin/perl -Ibin -- bin/mailmaster.pl -w conf/$testname.wld -b "$desc $desc_conf" $extra_args "$@"
/usr/bin/perl -Ibin -- bin/mailmaster.pl -w conf/$testname.wld -b "$desc $desc_conf" $extra_args "$@"
stat=$?
# BUG if another test is running at the same time, this is wrong

View File

@ -122,11 +122,13 @@ sub configUserLdif {
$ans = <STDIN>; chomp $ans;
$args = $ans if ($ans);
my $perlbin = "/usr/bin/perl";
$params{DEBUG} &&
print "perl/bin/perl -Ibin -- bin/makeusers.pl $mode -w $params{WORKLOAD} -b '$basedn' -o $name $args\n";
print "$perlbin -Ibin -- bin/makeusers.pl $mode -w $params{WORKLOAD} -b '$basedn' -o $name $args\n";
print "\nGenerating $name (this can take a while)\n";
system "perl/bin/perl -Ibin -- bin/makeusers.pl $mode -w $params{WORKLOAD} -b '$basedn' -o $name $args"
system "$perlbin -Ibin -- bin/makeusers.pl $mode -w $params{WORKLOAD} -b '$basedn' -o $name $args"
|| warn "$@";
print "LDIF generation complete. See $name\n";
print "\tSee the manual or INSTALL to create users using the LDIF file.\n";

View File

@ -46,9 +46,10 @@
# These usually dont need to be set. These are the defaults
GnuPlot gnuplot/gnuplot
RSH /usr/bin/rsh
RSH ssh
# RSH /usr/bin/remsh # HP-UX uses this path
RCP /usr/bin/rcp
RCP scp
# RCP /usr/bin/rcp
tempDir /var/tmp # client machine directory
chartWidth 640
chartHeight 480

View File

@ -35,21 +35,21 @@
# Figure out standard system names
UNAME_REPORTS=`uname`
UNAME_OS_ARCH=`uname -s`
UNAME_OS_SYSTEM=`uname -s`
UNAME_OS_RELEASE=`uname -r`
OS_ARCH=$UNAME_OS_ARCH
OS_RELEASE=$UNAME_OS_RELEASE
OS_CONFIG=${OS_ARCH}${OS_RELEASE}
OS_SYSTEM=${UNAME_OS_SYSTEM}
OS_RELEASE=${UNAME_OS_RELEASE}
OS_CONFIG=${OS_SYSTEM}${OS_RELEASE}
if [ "$UNAME_OS_ARCH" = "SunOS" ]; then
if [ "$UNAME_OS_SYSTEM" = "SunOS" ]; then
PROCESSOR=`uname -p`
if [ "$PROCESSOR" = "i386" ]; then
BUILD_ARCH=x86
else
BUILD_ARCH=SPARC
BUILD_ARCH=sparc
fi
BUILD_OS=SOLARIS
BUILD_OS=Solaris
if [ "$UNAME_OS_RELEASE" = "5.5" ]; then
BUILD_VER=2.5
elif [ "$UNAME_OS_RELEASE" = "5.5.1" ]; then
@ -60,41 +60,44 @@ if [ "$UNAME_OS_ARCH" = "SunOS" ]; then
BUILD_VER=7
elif [ "$UNAME_OS_RELEASE" = "5.8" ]; then
BUILD_VER=8
elif [ "$UNAME_OS_RELEASE" = "5.9" ]; then
BUILD_VER=9
fi
OS_CONFIG=${OS_SYSTEM}${OS_RELEASE}_${BUILD_ARCH}
elif [ "$UNAME_OS_ARCH" = "HP-UX" ]; then
elif [ "$UNAME_OS_SYSTEM" = "HP-UX" ]; then
BUILD_ARCH=HPPA
BUILD_OS=$UNAME_OS_ARCH
BUILD_OS=$UNAME_OS_SYSTEM
BUILD_VER=$OS_RELEASE
elif [ "$UNAME_OS_ARCH" = "AIX" ]; then
elif [ "$UNAME_OS_SYSTEM" = "AIX" ]; then
BUILD_ARCH=POWER
BUILD_OS=$UNAME_OS_ARCH
BUILD_OS=$UNAME_OS_SYSTEM
BUILD_VER=`uname -v`.`uname -r`
OS_CONFIG=${BUILD_OS}${BUILD_VER}
elif [ "$UNAME_OS_ARCH" = "OSF1" ]; then
elif [ "$UNAME_OS_SYSTEM" = "OSF1" ]; then
BUILD_ARCH=ALPHA
BUILD_OS=$UNAME_OS_ARCH
BUILD_OS=$UNAME_OS_SYSTEM
BUILD_VER=$OS_RELEASE
elif [ "$UNAME_OS_ARCH" = "IRIX64" -o "$UNAME_OS_ARCH" = "IRIX" ]; then
elif [ "$UNAME_OS_SYSTEM" = "IRIX64" -o "$UNAME_OS_SYSTEM" = "IRIX" ]; then
BUILD_ARCH=MIPS
BUILD_OS=IRIX
BUILD_VER=$OS_RELEASE
OS_CONFIG=${BUILD_OS}${OS_RELEASE}
elif [ "$UNAME_OS_ARCH" = "BSD/386" ]; then
elif [ "$UNAME_OS_SYSTEM" = "BSD/386" ]; then
BUILD_ARCH=x86
BUILD_OS=BSDI
BUILD_VER=$OS_RELEASE
elif [ "$UNAME_OS_ARCH" = "SCO_SV" ]; then
elif [ "$UNAME_OS_SYSTEM" = "SCO_SV" ]; then
BUILD_ARCH=x86
BUILD_OS=SCO
BUILD_VER=$OS_RELEASE
elif [ "$UNAME_OS_ARCH" = "UNIX_SV" ]; then
elif [ "$UNAME_OS_SYSTEM" = "UNIX_SV" ]; then
# Check for braindamage
grep NCR /etc/bcheckrc > /dev/null 2>&1
BUILD_ARCH=x86
@ -105,27 +108,27 @@ elif [ "$UNAME_OS_ARCH" = "UNIX_SV" ]; then
fi
BUILD_VER=$OS_RELEASE
elif [ "$UNAME_OS_ARCH" = "NEWS-OS" ]; then
elif [ "$UNAME_OS_SYSTEM" = "NEWS-OS" ]; then
BUILD_ARCH=`uname -p`
BUILD_OS=SONY
BUILD_VER=$OS_RELEASE
elif [ "$UNAME_OS_ARCH" = "UNIX_System_V" ]; then
elif [ "$UNAME_OS_SYSTEM" = "UNIX_System_V" ]; then
BUILD_ARCH=`uname -p`
BUILD_OS=NEC
BUILD_VER=$OS_RELEASE
elif [ $UNAME_OS_ARCH = Linux ]; then
elif [ $UNAME_OS_SYSTEM = Linux ]; then
BUILD_ARCH=`uname -m`
if [ -n "`echo $BUILD_ARCH | grep -e '86$'`" ] ; then
BUILD_ARCH=x86
fi
BUILD_OS=$UNAME_OS_ARCH
BUILD_OS=$UNAME_OS_SYSTEM
BUILD_VER=`echo $OS_RELEASE | cut -f1,2 -d.`
OS_CONFIG=${BUILD_OS}${BUILD_VER}_${BUILD_ARCH}
fi
case "$UNAME_OS_ARCH" in
case "$UNAME_OS_SYSTEM" in
SINIX*|ReliantUNIX*)
BUILD_ARCH=`uname -p`
BUILD_OS="ReliantUNIX"

View File

@ -111,8 +111,8 @@
#define MAX_USERNAME_LEN 32
#define MAX_MAILADDR_LEN 64
#define MAX_COMMAND_LEN 1024
#define MAX_RESPONSE_LEN 1024
#define MAX_COMMAND_LEN (2*1024)
#define MAX_RESPONSE_LEN (2*1024)
#define MAX_ERRORMSG_LEN 256
#define DATESTAMP_LEN 40

View File

@ -73,6 +73,7 @@ typedef struct pish_command {
char * filename;
int numRecipients; /* recpients per message */
int msgsize; /* message size without trailing CRLF.CRLF */
char * msgMailFrom; /* message mail from (envelope sender) */
char * msgdata; /* cache the file in mem */
int useEHLO; /* use EHLO instead of HELO */
int useAUTHLOGIN; /* use AUTH LOGIN to authenticate */

View File

@ -148,6 +148,7 @@ SmtpParseEnd (pmail_command_t cmd,
#define MSG_TRAILER CRLF "." CRLF
pish->msgsize = statbuf.st_size;
pish->msgMailFrom = NULL;
pish->msgdata = (char *) mycalloc(pish->msgsize+strlen(MSG_TRAILER)+1);
if ((bytesRead = read(fd, pish->msgdata, pish->msgsize)) <= 0) {
@ -165,6 +166,45 @@ SmtpParseEnd (pmail_command_t cmd,
pish->msgdata[pish->msgsize] = 0;
/* clean up message to rfc822 style */
#define PROTO_HEADER "SMTP"
#define PROTO_MAIL_FROM "\nMAIL FROM:"
#define PROTO_DATA "\nDATA\n"
D_PRINTF (stderr, "checking for PROTO_HEADER [%s]\n", PROTO_HEADER);
if (strncmp(pish->msgdata, PROTO_HEADER, strlen(PROTO_HEADER)) == 0) {
char *cp, *cp2;
int off;
D_PRINTF(stderr, "got PROTO_HEADER\n");
D_PRINTF(stderr, "find PROTO_MAIL_FROM...\n");
cp = strstr(pish->msgdata, PROTO_MAIL_FROM);
if (cp != NULL) {
cp += strlen(PROTO_MAIL_FROM);
cp2 = strchr(cp, '\n');
off = cp2 - cp;
pish->msgMailFrom = (char *) mycalloc(off+1);
memcpy(pish->msgMailFrom, cp, off);
pish->msgMailFrom[off] = 0;
D_PRINTF(stderr, "got PROTO_MAIL_FROM:%s\n",pish->msgMailFrom);
}
D_PRINTF(stderr, "find PROTO_DATA...\n");
cp = strstr(pish->msgdata, PROTO_DATA);
if (cp != NULL) {
off = cp - pish->msgdata;
off += strlen(PROTO_DATA);
D_PRINTF(stderr, "got past PROTO_DATA at off=%d\n", off);
char *newmsg = (char *) mycalloc(pish->msgsize+strlen(MSG_TRAILER)+1-off);
memcpy(newmsg, pish->msgdata+off, pish->msgsize-off+1);
myfree(pish->msgdata);
pish->msgdata = newmsg;
D_PRINTF(stderr, "done msg shrink\n");
}
}
strcat(pish->msgdata, MSG_TRAILER);
close(fd);
@ -798,7 +838,11 @@ sendSMTPLoop(ptcx_t ptcx, mail_command_t *cmd, cmd_stats_t *ptimer, void *mystat
pish_command_t *pish = (pish_command_t *)cmd->data;
/* send MAIL FROM:<username> */
sprintf(command, "MAIL FROM:<%s>%s", pish->smtpMailFrom, CRLF);
if (pish->msgMailFrom != NULL) {
sprintf(command, "MAIL FROM:%s%s", pish->msgMailFrom, CRLF);
} else {
sprintf(command, "MAIL FROM:<%s>%s", pish->smtpMailFrom, CRLF);
}
event_start(ptcx, &stats->cmd);
rc = doSmtpCommandResponse(ptcx, ptcx->sock, command, respBuffer, sizeof(respBuffer));
event_stop(ptcx, &stats->cmd);