[1955] in Moira Commits

home help back first fref pref prev next nref lref last post

/svn/moira r4094 - trunk/moira/incremental/ldap

daemon@ATHENA.MIT.EDU (Garry Zacheiss)
Thu Jan 31 09:18:28 2013

Date: Thu, 31 Jan 2013 09:18:21 -0500
From: Garry Zacheiss <zacheiss@MIT.EDU>
Message-Id: <201301311418.r0VEIL7X014389@drugstore.mit.edu>
To: moira-commits@MIT.EDU
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Author: zacheiss
Date: 2013-01-31 09:18:21 -0500 (Thu, 31 Jan 2013)
New Revision: 4094

Modified:
   trunk/moira/incremental/ldap/winad.c
Log:
Don't bounce mail from deactivated Exchange accounts set up for forwarding.

Modified: trunk/moira/incremental/ldap/winad.c
===================================================================
--- trunk/moira/incremental/ldap/winad.c	2013-01-31 02:44:17 UTC (rev 4093)
+++ trunk/moira/incremental/ldap/winad.c	2013-01-31 14:18:21 UTC (rev 4094)
@@ -4348,7 +4348,6 @@
               hide_address_lists_v[0] = "FALSE";
 	      ADD_ATTR("msExchHideFromAddressLists", hide_address_lists_v,
 		       LDAP_MOD_ADD);
-	      ADD_ATTR("msExchQueryBaseDN", query_base_dn_v, LDAP_MOD_REPLACE);
 	      ADD_ATTR("msExchRBACPolicyLink", rbac_policy_link_v, 
 		       LDAP_MOD_REPLACE);
 	      ADD_ATTR("showInAddressBook", address_book_v, LDAP_MOD_REPLACE);
@@ -4719,7 +4718,7 @@
 	}
  
       argv[0] = user_name;
-
+    
       if (!(rc = mr_query("get_pobox", 1, argv, save_query_info, save_argv)))
 	{
 	  if(!strcmp(save_argv[1], "EXCHANGE") || 
@@ -4743,8 +4742,15 @@
               if(!strcmp(save_argv[1], "SPLIT") || 
 		 !strcmp(save_argv[1], "SMTP")) {
 
-                deliver_and_redirect_v[0] = "TRUE";
-                alt_recipient_v[0] = alt_recipient;
+		if ((State != US_NO_PASSWD) && (State != US_REGISTERED)) {
+		  deliver_and_redirect_v[0] = "FALSE";
+		  alt_recipient_v[0] = NULL;
+		} 
+		else {
+		  deliver_and_redirect_v[0] = "TRUE";
+		  alt_recipient_v[0] = alt_recipient;
+		}
+
                 ADD_ATTR("altRecipient", alt_recipient_v, LDAP_MOD_REPLACE);
                 ADD_ATTR("deliverAndRedirect", deliver_and_redirect_v,
                          LDAP_MOD_REPLACE);
@@ -4752,8 +4758,14 @@
 	    }
 	  else 
 	    {
-	      deliver_and_redirect_v[0] = "FALSE";
-	      alt_recipient_v[0] = alt_recipient;
+	      if ((State != US_NO_PASSWD) && (State != US_REGISTERED)) {
+		deliver_and_redirect_v[0] = "FALSE";
+		alt_recipient_v[0] = NULL;
+	      } else {
+		deliver_and_redirect_v[0] = "FALSE";
+		alt_recipient_v[0] = alt_recipient;
+	      }
+
 	      ADD_ATTR("altRecipient", alt_recipient_v, LDAP_MOD_REPLACE);
 	      ADD_ATTR("deliverAndRedirect", deliver_and_redirect_v,
 		       LDAP_MOD_REPLACE);
@@ -4774,8 +4786,14 @@
 	}
       else
 	{
-	  deliver_and_redirect_v[0] = "FALSE";
-	  alt_recipient_v[0] = alt_recipient;
+	  if ((State != US_NO_PASSWD) && (State != US_REGISTERED)) {
+	    deliver_and_redirect_v[0] = "FALSE";
+	    alt_recipient_v[0] = NULL;
+	  } else {
+	    deliver_and_redirect_v[0] = "FALSE";
+	    alt_recipient_v[0] = alt_recipient;
+	  }
+
 	  ADD_ATTR("altRecipient", alt_recipient_v, LDAP_MOD_REPLACE);
 	  ADD_ATTR("deliverAndRedirect", deliver_and_redirect_v,
 		   LDAP_MOD_REPLACE);	  
@@ -5006,7 +5024,6 @@
 
   if (Exchange)
     {
-      ADD_ATTR("msExchQueryBaseDN", query_base_dn_v, LDAP_MOD_REPLACE);
       ADD_ATTR("mailNickName", mail_nickname_v, LDAP_MOD_REPLACE); 
       ADD_ATTR("mail", mail_v, LDAP_MOD_REPLACE); 
       ADD_ATTR("proxyAddresses", proxy_address_v, LDAP_MOD_REPLACE); 
@@ -5325,7 +5342,6 @@
                    LDAP_MOD_ADD);
 	}
 
-      ADD_ATTR("msExchQueryBaseDN", query_base_dn_v, LDAP_MOD_ADD);
       ADD_ATTR("msExchRBACPolicyLink", rbac_policy_link_v, LDAP_MOD_ADD);
       ADD_ATTR("showInAddressBook", address_book_v, LDAP_MOD_ADD);
       ADD_ATTR("mailNickName", mail_nickname_v, LDAP_MOD_ADD);
@@ -5356,25 +5372,37 @@
 	      if(!strcmp(save_argv[1], "SPLIT") ||
 		 !strcmp(save_argv[1], "SMTP")) {
 		
-		deliver_and_redirect_v[0] = "TRUE";
-		alt_recipient_v[0] = alt_recipient;
+		if ((atoi(av[U_STATE]) == US_NO_PASSWD) ||
+		    (atoi(av[U_STATE]) == US_REGISTERED)) {
+		  
+		  deliver_and_redirect_v[0] = "TRUE";
+		  alt_recipient_v[0] = alt_recipient;
 
-		ADD_ATTR("altRecipient", alt_recipient_v, LDAP_MOD_ADD);
-		ADD_ATTR("deliverAndRedirect", deliver_and_redirect_v,
+		  ADD_ATTR("altRecipient", alt_recipient_v, LDAP_MOD_ADD);
+		  ADD_ATTR("deliverAndRedirect", deliver_and_redirect_v,
 			 LDAP_MOD_ADD);
+		}
 	      }
 	    }
 	  else 
 	    {
-	      alt_recipient_v[0] = alt_recipient;
-	      ADD_ATTR("altRecipient", alt_recipient_v, LDAP_MOD_ADD);
+	      if ((atoi(av[U_STATE]) == US_NO_PASSWD) ||
+		  (atoi(av[U_STATE]) == US_REGISTERED)) {
+		
+		alt_recipient_v[0] = alt_recipient;
+		ADD_ATTR("altRecipient", alt_recipient_v, LDAP_MOD_ADD);
+	      }
 	    }
 	}
       else
 	{
-	  alt_recipient_v[0] = alt_recipient;
-	  ADD_ATTR("altRecipient", alt_recipient_v, LDAP_MOD_ADD);
-	  
+	  if ((atoi(av[U_STATE]) == US_NO_PASSWD) ||
+	      (atoi(av[U_STATE]) == US_REGISTERED)) {
+
+	    alt_recipient_v[0] = alt_recipient;
+	    ADD_ATTR("altRecipient", alt_recipient_v, LDAP_MOD_ADD);
+	  }
+
 	  com_err(whoami, 0, "Unable to fetch pobox for %s", user_name);
 	}
     }


home help back first fref pref prev next nref lref last post