+
+int setup_aali(struct query *q, char *argv[], client *cl)
+{
+ EXEC SQL BEGIN DECLARE SECTION;
+ int cnt;
+ char *name, *type, *trans;
+ EXEC SQL END DECLARE SECTION;
+ name = argv[0];
+ type = argv[1];
+ trans = argv[2];
+
+ if (strcmp(strtrim(type), "FILESYS"))
+ return MR_SUCCESS;
+
+ EXEC SQL SELECT count(label) INTO :cnt FROM filesys WHERE
+ label = :name;
+ if (cnt > 0)
+ return MR_EXISTS;
+
+ return MR_SUCCESS;
+}
+
+int setup_acon(struct query *q, char *argv[], client *cl)
+{
+ EXEC SQL BEGIN DECLARE SECTION;
+ char containername[CONTAINERS_NAME_SIZE];
+ EXEC SQL END DECLARE SECTION;
+
+ char* ptr;
+
+ memset(containername, 0, sizeof(containername));
+ strcpy(containername, argv[0]);
+ ptr = strrchr(containername, '/');
+ /* sub container, check for parents */
+ if (ptr)
+ {
+ *ptr = '\0';
+ EXEC SQL SELECT * FROM containers
+ WHERE lower(name) = lower(:containername);
+ if (sqlca.sqlerrd[2] != 1)
+ return MR_CONTAINER_NO_PARENT;
+ }
+
+ if ((mr_errcode = prefetch_value(q, argv, cl)) != MR_SUCCESS)
+ return mr_errcode;
+
+ return MR_SUCCESS;
+}
+
+int check_mailman_listname(char *name, const char *suffix)
+{
+ char *p;
+ EXEC SQL BEGIN DECLARE SECTION;
+ int i, cnt;
+ EXEC SQL END DECLARE SECTION;
+
+ p = strstr(name, suffix);
+ if (p)
+ {
+ if (strlen(name) == (p - name + strlen(suffix)))
+ {
+ /* list is of the form "name-suffix" */
+ i = (p - name);
+ EXEC SQL SELECT COUNT(name) INTO :cnt FROM list
+ WHERE name = SUBSTR(:name, 1, :i) AND mailman = 1;
+ if (cnt > 0)
+ return MR_EXISTS;
+ }
+ }
+
+ return MR_SUCCESS;
+}