status = id_to_name(mid, STRINGS_TABLE, &buf);
if (status)
return status;
- if (strchr(buf, '/') || strchr(buf, '|'))
+ if (strchr(buf, '/') || strchr(buf, '|') || strchr(buf, ','))
{
free(buf);
return MR_BAD_CHAR;
}
EXEC SQL CLOSE csr117c;
+ rargv[0] = "CONTAINER-MEMACL";
+ EXEC SQL DECLARE csr117d CURSOR FOR
+ SELECT name FROM containers c
+ WHERE c.memacl_type = :type AND c.memacl_id = :id;
+ if (dbms_errno)
+ return mr_errcode;
+ EXEC SQL OPEN csr117d;
+ while (1)
+ {
+ EXEC SQL FETCH csr117d INTO :name;
+ if (sqlca.sqlcode)
+ break;
+ (*action)(2, rargv, actarg);
+ found++;
+ }
+ EXEC SQL CLOSE csr117d;
+
if (!found)
return MR_NO_MATCH;
return MR_SUCCESS;
EXEC SQL SELECT mach_id INTO :m_id FROM machine
WHERE name = 'ATHENA.MIT.EDU';
+ }
- EXEC SQL SELECT value INTO :def_quota FROM numvalues
- WHERE name = 'def_quota';
- if (sqlca.sqlerrd[2] != 1)
- return MR_NO_QUOTA;
+ EXEC SQL SELECT value INTO :def_quota FROM numvalues
+ WHERE name = 'def_quota';
+ if (sqlca.sqlerrd[2] != 1)
+ return MR_NO_QUOTA;
- EXEC SQL SELECT value INTO :def_imap_quota FROM numvalues
- WHERE name = 'def_imap_quota';
- if (sqlca.sqlerrd[2] != 1)
- return MR_NO_QUOTA;
- }
+ EXEC SQL SELECT value INTO :def_imap_quota FROM numvalues
+ WHERE name = 'def_imap_quota';
+ if (sqlca.sqlerrd[2] != 1)
+ return MR_NO_QUOTA;
entity = cl->entity;
who = cl->client_id;
return mr_errcode;
if (rowcount > 0)
return MR_IN_USE;
+
+ /* Remove this check when we're allowing username reuse again. */
+ EXEC SQL SELECT COUNT(login) INTO :rowcount FROM userhistory
+ WHERE login = :login;
+ if (dbms_errno)
+ return mr_errcode;
+ if (rowcount > 0)
+ return MR_IN_USE;
+
EXEC SQL SELECT COUNT(name) INTO :rowcount FROM list
WHERE LOWER(name) = :login;
if (dbms_errno)