- EXEC SQL WHENEVER SQLERROR GOTO sqlerr;
-
- gettimeofday(&now, NULL);
-
- fprintf(out, "; MIT Network Table\n;\n");
- fprintf(out, "; \t%cAuthor: $\n", '$');
- fprintf(out, "; \t%cDate: $\n", '$');
- fprintf(out, "; \t%cRevision: $\n;\n", '$');
- fprintf(out, "; Network table generated by Moira at %s;\n",
- ctime(&now.tv_sec));
-
- EXEC SQL DECLARE x CURSOR FOR SELECT
- name, snet_id, saddr, description
- FROM subnet ORDER BY saddr;
- EXEC SQL OPEN x;
- while (1) {
- EXEC SQL FETCH x INTO :name, :id, :saddr, :description;
- if (sqlca.sqlcode != 0) break;
- if (id == 0) continue;
- if (*strtrim(name) == 0) continue;
- addr.s_addr=htonl(saddr);
- fprintf(out, "NETWORK : %-16.16s : %-12.12s : %s\n", name,
- inet_ntoa(addr),
- strtrim(description));
+ EXEC SQL DECLARE x CURSOR FOR SELECT
+ name, snet_id, saddr, mask, description
+ FROM subnet ORDER BY saddr;
+ EXEC SQL OPEN x;
+ while (1)
+ {
+ EXEC SQL FETCH x INTO :name, :id, :saddr, :mask, :description;
+ if (sqlca.sqlcode)
+ break;
+ if (id == 0)
+ continue;
+ if (!*strtrim(name))
+ continue;
+ addr.s_addr = htonl(saddr);
+
+ maskaddr.s_addr = htonl(atoi(mask));
+ cidr = cidr_from_inaddr(maskaddr);
+
+ strcpy(address, inet_ntoa(addr));
+ if (cidr)
+ strcat(address, cidr);
+
+ fprintf(out, "NETWORK : %-16.16s : %-15.15s : %s\n", name,
+ address, strtrim(description));