X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/48df7d969b4530c7053118fda5dbb024adf82cf8..9a919c3de59ddf85e27d7a7848bd1c1a78ad8bfc:/procmail/logging

diff --git a/procmail/logging b/procmail/logging
index d683e49..7068e4d 100644
--- a/procmail/logging
+++ b/procmail/logging
@@ -5,23 +5,45 @@ MSGIDDIR=$PMVAR/msgid
 :0
 * MSGID ?? ^<\/[^>]+
 {
-  THISLOGFILE_REL=`echo $MATCH | tr -d "'\"?[:cntrl:]" | tr ' /*' '__+'`%$OURDATE_SHORT
+  MSGID_NAME=`echo $MATCH | tr -d "'\"?[:cntrl:]" | tr ' /*$' '__+S'`
+
+  #VERBOSE=yes
+  # check if filename > 228 characters and if so, then shorten it to prevent
+  # hitting filesystem limit after we append the timestamp
+  :0
+  * MSGID_NAME ?? ^.....................................................................................................................................................................................................................................
+  {
+    HASH=`echo $MSGID_NAME | md5sum | cut -d' ' -f1`
+    MSGID_NAME=`echo $MSGID_NAME | cut -c-196`$HASH
+  }
+
+  THISLOGFILE_REL=$MSGID_NAME%$OURDATE_SHORT
   THISLOGFILE="$MSGIDDIR/$THISLOGFILE_REL"
+
+  MSGID_NAME
+  #VERBOSE=no
 }
 
 MASTERLOGFILE="$LOGFILE"
 LOGFILE="$THISLOGFILE"
 
-LOG="==============================================================================
-msgid:       $MSGID
+LOG="==============================================================================$NL"
+
+:0
+* LOGLATER ?? .
+{ LOG="$LOGLATER" }
+
+LOG="msgid:       $MSGID
 logfile:     $THISLOGFILE_REL
 date:        $DATE (@$OURDATE)
 from:        $FROM
 original-to: $ORIGINAL_TO
 subject:     $SUBJECT$NL"
 
-TRAP="echo \"delivered:   \${LASTFOLDER#$BASE/}\" >> '$THISLOGFILE';
-      echo >> '$THISLOGFILE';
-      egrep -v '^XX(procmail:)?[[:space:]\"]' '$THISLOGFILE' >> $MASTERLOGFILE"
+TRAP="DESTFILE=\"\${LASTFOLDER#$BASE/}\";
+      /usr/bin/lockfile -4 -r50 -l180 $PMVAR/lock;
+      trap \"echo >> '$THISLOGFILE';
+             /bin/cat '$THISLOGFILE' >> $MASTERLOGFILE;
+             /bin/rm -f $PMVAR/lock\" 0"
 
-#VERBOSE=yes
+THISLOGFILE_REL