* List
* String
* Machine
+ * Subnet
* Cluster
* Filesystem
* then we will have to rework the code that only looks at the first
char *iname;
int j, rowcount;
EXEC SQL END DECLARE SECTION;
+ char key;
int h, ctr;
h = hashname(name, type);
cachemisses++;
iname = name;
+ key = *type;
- switch (*type) {
+ if (!strcasecmp(type, "subnet"))
+ key = 'N';
+
+ switch (key) {
case 'U':
case 'u':
- if (index(iname, '@')) {
+ if (index(iname, '@') || (strlen(iname) > 8)) {
sqlca.sqlcode = 100;
break;
}
case 'm':
EXEC SQL SELECT mach_id INTO :j FROM machine WHERE name=UPPERCASE(:iname);
break;
+ case 'N':
+ case 'n':
+ EXEC SQL SELECT snet_id INTO :j FROM subnet WHERE name=UPPERCASE(:iname);
+ break;
case 'C':
case 'c':
EXEC SQL SELECT clu_id INTO :j FROM cluster WHERE name=:iname;
char iname[NAMESZ];
int j, rowcount;
EXEC SQL END DECLARE SECTION;
+ char key;
int ctr;
for (i = cachehead.next; i != &cachehead; i = i->next) {
cachemisses++;
j = id;
+ key = *type;
+ if (!strcasecmp(type, "subnet"))
+ key = 'N';
- switch (*type) {
+ switch (key) {
case 'U':
case 'u':
EXEC SQL SELECT CHAR(login) INTO :iname FROM users WHERE users_id=:j;
case 'm':
EXEC SQL SELECT CHAR(name) INTO :iname FROM machine WHERE mach_id=:j;
break;
+ case 'N':
+ case 'n':
+ EXEC SQL SELECT CHAR(name) INTO :iname FROM subnet WHERE snet_id=:j;
+ break;
case 'C':
case 'c':
EXEC SQL SELECT CHAR(name) INTO :iname FROM cluster WHERE clu_id=:j;