dosql(before);
beforec = 4;
break;
+ case CONTAINERS_TABLE:
+ sprintf(stmt_buf, "SELECT c.name, c.description, c.location, c.contact, "
+ "c.acl_type, c.acl_id, c.cnt_id FROM containers c WHERE %s",
+ qual);
+ dosql(before);
+ beforec = 7;
+ name = xmalloc(0);
+ id = atoi(before[5]);
+ if (!strncmp(before[4], "USER", 4))
+ {
+ id_to_name(id, USERS_TABLE, &name);
+ strcpy(before[5], name);
+ }
+ else if (!strncmp(before[4], "LIST", 4))
+ {
+ id_to_name(id, LIST_TABLE, &name);
+ strcpy(before[5], name);
+ }
+ else if (!strncmp(before[4], "KERBEROS", 8))
+ {
+ id_to_name(id, STRINGS_TABLE, &name);
+ strcpy(before[5], name);
+ }
+ break;
case MCMAP_TABLE:
strcpy(before[0], argv[0]);
strcpy(before[1], argv[1]);
beforec = 2;
break;
+ case MCNTMAP_TABLE:
+ strcpy(before[0], argv[0]);
+ strcpy(before[1], argv[1]);
+ name_to_id(before[0], MACHINE_TABLE, &id);
+ sprintf(before[2], "%d", id);
+ name_to_id(before[1], CONTAINERS_TABLE, &id);
+ sprintf(before[3], "%d", id);
+ beforec = 4;
+ break;
case SVC_TABLE:
strcpy(before[0], argv[0]);
strcpy(before[1], argv[1]);
EXEC SQL SELECT list_id INTO :before[9] FROM list
WHERE name = :name;
}
+ else if (!strcmp(before[1], "MACHINE"))
+ {
+ id_to_name(id, MACHINE_TABLE, &name2);
+ EXEC SQL SELECT list_id INTO :before[9] FROM list
+ WHERE name = :name;
+ sprintf(before[10], "%d", id);
+ beforec = 11;
+ }
strcpy(before[2], name2);
free(name);
free(name2);
dosql(after);
afterc = 4;
break;
+ case CONTAINERS_TABLE:
+ sprintf(stmt_buf, "SELECT c.name, c.description, c.location, c.contact, "
+ "c.acl_type, c.acl_id, c.cnt_id FROM containers c WHERE %s",
+ qual);
+ dosql(after);
+ afterc = 7;
+ name = xmalloc(0);
+ id = atoi(after[5]);
+ if (!strncmp(after[4], "USER", 4))
+ {
+ id_to_name(id, USERS_TABLE, &name);
+ strcpy(after[5], name);
+ }
+ else if (!strncmp(after[4], "LIST", 4))
+ {
+ id_to_name(id, LIST_TABLE, &name);
+ strcpy(after[5], name);
+ }
+ else if (!strncmp(after[4], "KERBEROS", 8))
+ {
+ id_to_name(id, STRINGS_TABLE, &name);
+ strcpy(after[5], name);
+ }
+ break;
case MCMAP_TABLE:
strcpy(after[0], argv[0]);
strcpy(after[1], argv[1]);
afterc = 2;
break;
+ case MCNTMAP_TABLE:
+ strcpy(after[0], argv[0]);
+ strcpy(after[1], argv[1]);
+ name_to_id(after[0], MACHINE_TABLE, &id);
+ sprintf(after[2], "%d", id);
+ name_to_id(after[1], CONTAINERS_TABLE, &id);
+ sprintf(after[3], "%d", id);
+ afterc = 4;
+ break;
case SVC_TABLE:
strcpy(after[0], argv[0]);
strcpy(after[1], argv[1]);
EXEC SQL SELECT list_id INTO :after[9] FROM list
WHERE name = :name;
}
+ else if (!strcmp(after[1], "MACHINE"))
+ {
+ id_to_name(id, MACHINE_TABLE, &name2);
+ EXEC SQL SELECT list_id INTO :after[9] FROM list
+ WHERE name = :name;
+ sprintf(after[10], "%d", id);
+ afterc = 11;
+ }
strcpy(after[2], name2);
free(name);
free(name2);