steffen: server/kolab-resource-handlers/kolab-resource-handlers/resmgr kolabfilter.php, 1.24, 1.25 resmgr.conf, 1.6, 1.7

cvs at intevation.de cvs at intevation.de
Sat Jun 11 01:54:39 CEST 2005


Author: steffen

Update of /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr
In directory doto:/tmp/cvs-serv1169/kolab-resource-handlers/kolab-resource-handlers/resmgr

Modified Files:
	kolabfilter.php resmgr.conf 
Log Message:
rewite from header (Issue783)

Index: kolabfilter.php
===================================================================
RCS file: /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr/kolabfilter.php,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- kolabfilter.php	17 May 2005 10:25:18 -0000	1.24
+++ kolabfilter.php	10 Jun 2005 23:54:37 -0000	1.25
@@ -151,6 +151,7 @@
 $from = false;
 $subject = false;
 $senderok = true;
+$rewrittenfrom = false;
 while (!feof(STDIN) && !$headers_done) {
   $buffer = fgets(STDIN, 8192);
   $line = rtrim( $buffer, "\r\n");
@@ -159,7 +160,13 @@
     $headers_done = true;
     if( $from && $params['verify_from_header'] ) {
       if( !verify_sender( strtolower($sender), strtolower($from), $client_address) ) {
-	$senderok = false;
+		myLog("$sender and $from differ!", RM_LOG_DEBUG);
+		if( $params['reject_forged_from_header'] ) {
+		  $senderok = false;
+		} else {
+		  myLog("Rewriting From header", RM_LOG_DEBUG);
+		  $rewrittenfrom = "From: $from (UNTRUSTED, sender is \"$sender\")\r\n";
+		}
       }
     }
   } else if( !$headers_done && $params['allow_sender_header'] && eregi( '^Sender: (.*)', $line, $regs ) ) {
@@ -222,6 +229,14 @@
 $headers_done = false;
 while (!feof($tmpf) && !$headers_done) {
   $buffer = fgets($tmpf, 8192);
+  if( !$headers_done && $rewrittenfrom && eregi( '^From: (.*)', $buffer ) ) {
+	if( PEAR::isError($error = $smtp->data( $rewrittenfrom )) ) {
+	  fwrite(STDOUT, $error->getMessage().", code ".$error->getCode()."\n"); 
+	  if( $error->getCode() < 500 ) exit(EX_TEMPFAIL);
+	  else exit(EX_UNAVAILABLE);
+	}
+	continue;
+  } 
   if( !$headers_done && rtrim( $buffer, "\r\n" ) == '' ) {
     $headers_done = true;
     foreach( $add_headers as $h ) {

Index: resmgr.conf
===================================================================
RCS file: /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr/resmgr.conf,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- resmgr.conf	3 Apr 2005 23:17:34 -0000	1.6
+++ resmgr.conf	10 Jun 2005 23:54:37 -0000	1.7
@@ -22,16 +22,20 @@
 // that origins on this server?
 $params['verify_from_header'] = true;
 
+// Should we perform this check on mail from our
+// subdomains too?
+$params['verify_subdomains'] = true;
+
 // Should the Sender: header be used over From: if present?
 $params['allow_sender_header'] = true;
 
+// Should reject messages with From headers that dont match
+// the envelope? Default is to rewrite the header
+$params['reject_forged_from_header'] = false;
+
 // Should we allow forwarded ical messages from Outlook
 // by encapsulating them in a MIME multipart
 $params['allow_outlook_ical_forward']  = true;
-
-// Should we perform this check on mail from our
-// subdomains too?
-$params['verify_subdomains'] = true;
 
 // LDAP data
 // What is the address of the LDAP server address where user objects reside





More information about the commits mailing list