case LIST_TABLE:
sprintf(stmt_buf, "SELECT l.name, l.active, l.publicflg, l.hidden, "
"l.maillist, l.grouplist, l.gid, l.acl_type, l.acl_id, "
- "l.description, l.list_id, l.mailman, l.mailman_id "
- "FROM list l WHERE %s", qual);
+ "l.description, l.list_id FROM list l WHERE %s", qual);
dosql(before);
- name = xmalloc(0);
- id = atoi(before[12]);
- id_to_name(id, MACHINE_TABLE, &name);
- strcpy(before[12], name);
- free(name);
- beforec = 13;
+ beforec = 11;
break;
case IMEMBERS_TABLE:
id = (int) argv[0];
case LIST_TABLE:
sprintf(stmt_buf, "SELECT l.name, l.active, l.publicflg, l.hidden, "
"l.maillist, l.grouplist, l.gid, l.acl_type, l.acl_id, "
- "l.description, l.list_id, l.mailman, l.mailman_id "
- "FROM list l WHERE %s", qual);
+ "l.description, l.list_id FROM list l WHERE %s", qual);
dosql(after);
- name = xmalloc(0);
- id = atoi(after[12]);
- id_to_name(id, MACHINE_TABLE, &name);
- strcpy(after[12], name);
- free(name);
- afterc = 13;
+ afterc = 11;
break;
case IMEMBERS_TABLE:
id = (int) argv[0];
return MR_SERVICE;
}
}
+ else
+ {
+ /* Client too old to know about the mailman code.
+ * Use existing value of mailman boolean in the table.
+ */
+ EXEC SQL SELECT mailman INTO :mailman FROM list WHERE name = :name;
+ if (mailman)
+ {
+ EXEC SQL SELECT COUNT(name) INTO :cnt FROM list
+ WHERE (name = :name || '-admin' OR name = :name || '-owner' OR
+ name = :name || '-request');
+ if (cnt)
+ return MR_EXISTS;
+ }
+ }
if ((mr_errcode = prefetch_value(q, argv, cl)) != MR_SUCCESS)
return mr_errcode;