]> andersk Git - moira.git/blobdiff - gen/hesiod.pc
Revised EXCHANGE behavior.
[moira.git] / gen / hesiod.pc
index c07fa43ff1341698880d95797390a4f691735669..1f4b9006eb5ae1cac0d0a015aa323f0b634490c6 100644 (file)
@@ -273,13 +273,21 @@ int do_passwd(void)
 
       if (eid != 0)
        {
-         /* eid will be for EXCHANGE.MIT.EDU, but we need to convert it to
-          * IMAP.EXCHANGE.MIT.EDU.
-          */
-         EXEC SQL SELECT mach_id INTO :eid FROM machine WHERE
-           name = 'IMAP.EXCHANGE.MIT.EDU';
+         /* Check for IMAP.  Can't use iid because it should be zero. */
+         EXEC SQL SELECT mach_id INTO :mid FROM filesys
+           WHERE label = :login || '.po' AND type = 'IMAP';
          if (sqlca.sqlcode == 0)
-             pid = eid;
+           pid = mid;
+         else
+           {
+             /* EXCHANGE user with no IMAP filesystem.  Give them
+              * IMAP.EXCHANGE.MIT.EDU instead of EXCHANGE.MIT.EDU.
+              */
+             EXEC SQL SELECT mach_id INTO :eid FROM machine
+               WHERE name = 'IMAP.EXCHANGE.MIT.EDU';
+             if (sqlca.sqlcode == 0)
+               pid = eid;
+           }
        }
 
       if (iid != 0)
This page took 0.029355 seconds and 4 git commands to generate.