return -1;
}
i = curEntry->cellInfo.numServers;
- if (cell && !strcmp(cell, curEntry->cellInfo.name))
- code =
- ParseHostLine(tbuffer, &curEntry->cellInfo.hostAddr[i],
- curEntry->cellInfo.hostName[i], &clones[i]);
- else
- code =
- ParseHostLine(tbuffer, &curEntry->cellInfo.hostAddr[i],
- curEntry->cellInfo.hostName[i], 0);
- if (code) {
- if (code == AFSCONF_SYNTAX) {
- for (bp = tbuffer; *bp != '\n'; bp++) { /* Take out the <cr> from the buffer */
- if (!*bp)
- break;
+ if (i < MAXHOSTSPERCELL) {
+ if (cell && !strcmp(cell, curEntry->cellInfo.name))
+ code =
+ ParseHostLine(tbuffer,
+ &curEntry->cellInfo.hostAddr[i],
+ curEntry->cellInfo.hostName[i],
+ &clones[i]);
+ else
+ code =
+ ParseHostLine(tbuffer,
+ &curEntry->cellInfo.hostAddr[i],
+ curEntry->cellInfo.hostName[i], 0);
+
+ if (code) {
+ if (code == AFSCONF_SYNTAX) {
+ for (bp = tbuffer; *bp != '\n'; bp++) { /* Take out the <cr> from the buffer */
+ if (!*bp)
+ break;
+ }
+ *bp = '\0';
+ fprintf(stderr,
+ "Can't properly parse host line \"%s\" in configuration file %s\n",
+ tbuffer, tbuf1);
}
- *bp = '\0';
- fprintf(stderr,
- "Can't properly parse host line \"%s\" in configuration file %s\n",
- tbuffer, tbuf1);
+ free(curEntry);
+ fclose(tf);
+ afsconf_CloseInternal(adir);
+ return -1;
}
- free(curEntry);
- fclose(tf);
- afsconf_CloseInternal(adir);
- return -1;
+ curEntry->cellInfo.numServers = ++i;
+ } else {
+ fprintf(stderr,
+ "Too many hosts for cell %s in configuration file %s\n",
+ curEntry->cellInfo.name, tbuf1);
}
- curEntry->cellInfo.numServers = ++i;
}
}
fclose(tf); /* close the file now */