out_of_mem("loading lists");
EXEC SQL DECLARE csr108 CURSOR FOR
- SELECT list_id, name, acl_id, acl_type, modby FROM list
+ SELECT list_id, name, acl_id, acl_type, memacl_id, memacl_type, modby
+ FROM list
ORDER BY list_id;
EXEC SQL OPEN csr108;
while (1)
{
EXEC SQL BEGIN DECLARE SECTION;
- int list_id, acl_id, modby;
+ int list_id, acl_id, memacl_id, modby;
char name[LIST_NAME_SIZE], acl_type[LIST_ACL_TYPE_SIZE];
+ char memacl_type[LIST_ACL_TYPE_SIZE];
EXEC SQL END DECLARE SECTION;
- EXEC SQL FETCH csr108 INTO :list_id, :name, :acl_id, :acl_type, :modby;
+ EXEC SQL FETCH csr108 INTO :list_id, :name, :acl_id, :acl_type,
+ :memacl_id, :memacl_type, :modby;
if (sqlca.sqlcode)
break;
l = malloc(sizeof(struct list));
strcpy(l->name, strtrim(name));
l->acl_type = acl_type[0];
l->acl_id = acl_id;
+ l->memacl_type = memacl_type[0];
+ l->memacl_id = memacl_id;
l->list_id = list_id;
l->modby = modby;
l->members = 0;
if (!ps)
out_of_mem("storing printserver");
ps->mach_id = mach_id;
+ ps->printer_types = printer_types;
ps->owner_type = owner_type[0];
ps->owner_id = owner_id;
ps->lpc_acl = lpc_acl;
cant_fix(0);
}
}
- EXEC SQL CLOSE csr111;
+ EXEC SQL CLOSE csr_ps;
+
+ if (!fast)
+ {
+ dprintf("Checking zephyr...\n");
+
+ EXEC SQL DECLARE csr120 CURSOR FOR
+ SELECT z1.class FROM zephyr z1, zephyr z2
+ WHERE (z1.class = z2.class AND z1.rowid < z1.rowid);
+ EXEC SQL OPEN csr120;
+ while (1)
+ {
+ EXEC SQL BEGIN DECLARE SECTION;
+ char class[ZEPHYR_CLASS_SIZE];
+ EXEC SQL END DECLARE SECTION;
+
+ EXEC SQL FETCH csr120 INTO :class;
+ if (sqlca.sqlcode)
+ break;
+
+ printf("Zephyr class %s has duplicate name\n", class);
+ cant_fix(0);
+ }
+ EXEC SQL CLOSE csr120;
+ }
}