To stabilize the simscan 1.4.0 2010081502

* strsep bug in Solaris - Tom Collins
* set exit code on errors - Jeremy Kister
* band-aid simscanmk NFS timing issue on solaris - Tom Collins
* RFC2822 Received field compliance - Tullio Andreatta

########################################################################

Common subdirectories: simscan-1.4.0.original//CVS and simscan-1.4.0//CVS
Common subdirectories: simscan-1.4.0.original//autom4te.cache and simscan-1.4.0//autom4te.cache
Common subdirectories: simscan-1.4.0.original//cdb and simscan-1.4.0//cdb
diff -uN simscan-1.4.0.original//configure simscan-1.4.0//configure
--- simscan-1.4.0.original//configure	2007-10-29 10:14:25.000000000 -0400
+++ simscan-1.4.0//configure	2010-08-15 22:33:38.284853498 -0400
@@ -1592,7 +1592,7 @@
 
 # Define the identity of the package.
  PACKAGE=simscan
- VERSION=1.4.0
+ VERSION=1.4.0+stabilize-2010081502
 
 
 cat >>confdefs.h <<_ACEOF
diff -uN simscan-1.4.0.original//configure.in simscan-1.4.0//configure.in
--- simscan-1.4.0.original//configure.in	2007-10-29 10:13:40.000000000 -0400
+++ simscan-1.4.0//configure.in	2010-08-15 22:33:58.639214333 -0400
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 
 AC_INIT(simscan.c)
-AM_INIT_AUTOMAKE(simscan,1.4.0)
+AM_INIT_AUTOMAKE(simscan,1.4.0+stabilize-2010081502)
 AM_CONFIG_HEADER(config.h)
 AC_CANONICAL_HOST
 AC_CHECK_FUNCS([strsep])
Common subdirectories: simscan-1.4.0.original//contrib and simscan-1.4.0//contrib
diff -uN simscan-1.4.0.original//simscan.c simscan-1.4.0//simscan.c
--- simscan-1.4.0.original//simscan.c	2007-10-29 10:15:05.000000000 -0400
+++ simscan-1.4.0//simscan.c	2010-08-15 22:35:32.978706222 -0400
@@ -73,6 +73,9 @@
        91   Envelope format error.
 */
 
+#if HAVE_STRSEP!=1
+char *strsep (char **pp, char *delim);
+#endif
 
 #ifdef QUARANTINEDIR 
 void quarantine_msg(char *message_name);
@@ -214,6 +217,11 @@
 /* write a received line */
 #ifdef ENABLE_RECEIVED
 char runned_scanners[MAX_EMAIL]="";
+struct tm *tm;
+static char monthname[12][4] = {
+   "Jan","Feb","Mar","Apr","May","Jun",
+   "Jul","Aug","Sep","Oct","Nov","Dec"};
+
 void add_run_scanner(char *key);
 #endif
 
@@ -772,10 +780,13 @@
   #ifdef ENABLE_RECEIVED
   gettimeofday(&stop,(struct timezone *) 0);
   utime=SECS(stop)-SECS(start);
-  snprintf(buffer,sizeof(buffer),
-"Received: by simscan %s ppid: %d, pid: %d, t: %3.4fs\n         scanners:%s\n",
-    VERSION,getppid(),getpid(),utime,
-    strlen(runned_scanners) > 0 ? runned_scanners : "none");
+
+  tm = gmtime(&start.tv_sec);
+  snprintf(buffer,sizeof(buffer), "Received: (simscan %s ppid %ld pid %d t %.4fs)\n"
+    " (scanners: %s); %02d %s %04d %02d:%02d:%02d -0000\n",
+    VERSION, getppid(), getpid(), utime, runned_scanners[0] ? runned_scanners : "none",
+    tm->tm_mday,monthname[tm->tm_mon],tm->tm_year,tm->tm_hour,tm->tm_min,tm->tm_sec);
+
   if ( write(pim[1], buffer,strlen(buffer)) == -1 ) {
     if ( DebugFlag > 0 ) {
       fprintf(stderr, "simscan: error writing received line\n");
diff -uN simscan-1.4.0.original//simscanmk.c simscan-1.4.0//simscanmk.c
--- simscan-1.4.0.original//simscanmk.c	2006-10-10 19:15:17.000000000 -0400
+++ simscan-1.4.0//simscanmk.c	2010-08-15 22:37:09.621368363 -0400
@@ -72,10 +72,12 @@
   get_options(argc,argv);
 #ifdef ENABLE_RECEIVED
   if (buildversions){
-    make_version_cdb();
+    int xcode = make_version_cdb();
+    if (xcode != 0) exit(xcode);
   } else {
 #endif
-  make_cdb();
+  int xcode = make_cdb();
+  if (xcode != 0) exit(xcode);
 #ifdef ENABLE_RECEIVED
   }
 #endif
@@ -369,6 +371,7 @@
  static char input[MAX_LINE];
  uint32 h;
 
+ sleep(0); /* some NFS timing crazyness on solaris */
 
   if ( (fs = fopen(ClearFile,"r")) == NULL) {
     printf("Not building simcontrol.cdb file. No %s/simcontrol text file\n",
