steffen: server/kolab-resource-handlers/kolab-resource-handlers/resmgr kolabfilter.php, 1.27, 1.28 resmgr.conf, 1.7, 1.8

cvs at intevation.de cvs at intevation.de
Wed Oct 12 05:21:51 CEST 2005


Author: steffen

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

Modified Files:
	kolabfilter.php resmgr.conf 
Log Message:
Fix for issue958 (From header rewriting)

Index: kolabfilter.php
===================================================================
RCS file: /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr/kolabfilter.php,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- kolabfilter.php	1 Jul 2005 11:59:45 -0000	1.27
+++ kolabfilter.php	12 Oct 2005 03:21:49 -0000	1.28
@@ -104,6 +104,15 @@
 function verify_sender( $sender, $from, $client_addr ) {
   global $params;
 
+  // Allow anything from fellow Kolab-hosts
+  /*
+  $kolabhosts = split(',', $params['kolabhosts'] );
+  $kolabhosts = array_map( "gethostbyname", $kolabhosts );
+  foreach( $kolabhosts as $ip ) {
+    if( $client_addr == $ip ) return true;
+  }
+  */
+
   $adrs = imap_rfc822_parse_adrlist($from, $params['email_domain']);
   foreach ($adrs as $adr) {
     $from = $adr->mailbox.'@'.$adr->host;
@@ -119,18 +128,19 @@
       if( $params['verify_subdomains'] ) {	
 		//myLog( "Checking if ".substr($senderdom, -strlen($domain)-1)." == .$domain", RM_LOG_DEBUG );
 		//myLog( "Checking if ".substr($fromdom, -strlen($domain)-1)." == .$domain", RM_LOG_DEBUG );
-		if( $client_addr != '127.0.0.1' && 
-			($senderdom == $domain ||
-			 $fromdom   == $domain ||
-			 substr($senderdom, -strlen($domain)-1) == ".$domain" ||
-			 substr($fromdom, -strlen($domain)-1) == ".$domain" ) &&
-			$sender != $from ) {
+		if( $client_addr != '127.0.0.1' &&
+		    ($senderdom == $domain ||
+		     $fromdom   == $domain ||
+		     substr($senderdom, -strlen($domain)-1) == ".$domain" ||
+		     substr($fromdom, -strlen($domain)-1) == ".$domain" ) &&
+		    $sender != $from ) {
 		  return false;
 		}
       } else {
-		if( ($senderdom == $domain ||
-			 $fromdom   == $domain ) &&
-			$sender != $from ) {
+		if( $client_addr != '127.0.0.1' && 
+		    ($senderdom == $domain ||
+		     $fromdom   == $domain ) &&
+		    $sender != $from ) {
 		  return false;
 		}
       }
@@ -185,12 +195,14 @@
 		  $senderok = false;
 		} else {
 		  // Only rewrite if from is ours and envelope not
-		  if( is_my_domain( $from ) && !is_my_domain( $sender )) {
-			myLog("Rewriting From header", RM_LOG_DEBUG);
-			$rewrittenfrom = "From: $from (UNTRUSTED, sender is \"$sender\")\r\n";
+		  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 */
 		  } else {
 			// Not our domain in From, reject
-			$senderok = false;			
+			$senderok = false;
 		  }
 		}
       }

Index: resmgr.conf
===================================================================
RCS file: /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr/resmgr.conf,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- resmgr.conf	10 Jun 2005 23:54:37 -0000	1.7
+++ resmgr.conf	12 Oct 2005 03:21:49 -0000	1.8
@@ -11,6 +11,9 @@
 // '@domain' specified after their username as part of their email address.
 $params['email_domain'] = 'example.com';
 
+// List of kolab hosts that are priviledged
+$params['kolabhosts'] = 'one.example.com,two.example.com,three.example.com';
+
 // Are we using virtual domains with Cyrus?
 $params['virtual_domains'] = true;
 





More information about the commits mailing list