steffen: server/kolab-resource-handlers/kolab-resource-handlers/resmgr kolabfilter.php, 1.26.2.1, 1.26.2.2

cvs at intevation.de cvs at intevation.de
Wed Jan 11 05:38:03 CET 2006


Author: steffen

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

Modified Files:
      Tag: kolab_2_0_branch
	kolabfilter.php 
Log Message:
Fix for issue973 (rewritten From header)

Index: kolabfilter.php
===================================================================
RCS file: /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr/Attic/kolabfilter.php,v
retrieving revision 1.26.2.1
retrieving revision 1.26.2.2
diff -u -d -r1.26.2.1 -r1.26.2.2
--- kolabfilter.php	12 Oct 2005 03:24:23 -0000	1.26.2.1
+++ kolabfilter.php	11 Jan 2006 04:38:01 -0000	1.26.2.2
@@ -98,6 +98,19 @@
   return false;
 }
 
+function rewrite_from($sender,$from) {
+  global $params;
+  $adrs = imap_rfc822_parse_adrlist($from, $params['email_domain'][0]);
+  foreach ($adrs as $adr) {
+    $fromadr = $adr->mailbox.'@'.$adr->host;
+    if( !ereg( "\(UNTRUSTED, sender is <$sender>\)", $from ) ) {
+      myLog("$from is not an allowed From address for unauthenticated users, rewriting", RM_LOG_DEBUG);
+      return '"'.$adr->personal.'(UNTRUSTED, sender is <'.$sender.'>)" '.'<'.$fromadr.'>';
+    } /* else already rewritten */
+  }
+  return $from;
+}
+
 // Check that mail from our domains have trustable
 // From: header and that mail from the outside
 // does not impersonate any user from our domain
@@ -186,13 +199,10 @@
 		} else {
 		  // Only rewrite if from is ours and envelope not
 		  if( is_my_domain( $from ) && !is_my_domain( $sender )) {
-		    if( !ereg( "\(UNTRUSTED, sender is $sender\)", $from ) ) {
-		      myLog("Rewriting From header", RM_LOG_DEBUG);
-		      $rewrittenfrom = "From: $from (UNTRUSTED, sender is $sender)\r\n";
-		    } /* else already rewritten */
+		    $rewrittenfrom = "From: ".rewrite_from( $sender, $from )."\r\n";
 		  } else {
-			// Not our domain in From, reject
-			$senderok = false;			
+		    // Not our domain in From, reject
+		    $senderok = false;			
 		  }
 		}
       }





More information about the commits mailing list