char *ptype, *p;
int mid, sid, status, i;
EXEC SQL BEGIN DECLARE SECTION;
- int users_id, pid, iid, bid;
+ int users_id, pid, iid, bid, eid;
char mach[MACHINE_NAME_SIZE], fs[FILESYS_LABEL_SIZE];
char str[STRINGS_STRING_SIZE];
EXEC SQL END DECLARE SECTION;
/* If SMTP, don't bother fetching IMAP and POP boxes. */
if (ptype[1] == 'M')
- pid = iid = 0;
+ pid = iid = eid = 0;
}
if (iid)
{
if (sqlca.sqlcode)
return MR_MACHINE;
}
+ if (eid)
+ {
+ /* EXCHANGE, or SPLIT with EXCHANGE */
+ EXEC SQL SELECT m.name INTO :mach FROM machine m, users u
+ WHERE u.users_id = :users_id AND u.exchange_id = m.mach_id;
+ if (sqlca.sqlcode)
+ return MR_MACHINE;
+ }
free(argv[2]);
free(argv[3]);
/* Now assemble the right answer. */
- if (!strcmp(ptype, "POP"))
+ if (!strcmp(ptype, "POP") || !strcmp(ptype, "EXCHANGE"))
{
argv[2] = xstrdup(strtrim(mach));
argv[3] = xmalloc(strlen(argv[0]) + strlen(argv[2]) + 2);