4 * Utility to test NetInfo and NetRestrict parsing
9 #include <afs/cellconfig.h>
11 #include <sys/types.h>
16 #include <arpa/inet.h>
18 char *interfaceList, *filenameNetInfo, *filenameNetRestrict;
21 rx_getAllAddrMaskMtu(afs_uint32 addrBuffer[],
22 afs_uint32 maskBuffer[],
23 afs_uint32 mtuBuffer[],
27 int nInterfaces = 0, lineNo = 1;
31 fp = fopen(interfaceList, "r");
37 while (nInterfaces < maxSize) {
39 if (fgets(line, 80, fp) == NULL)
41 if (sscanf(line, "%d.%d.%d.%d %d.%d.%d.%d %d\n",
42 &a[0], &a[1], &a[2], &a[3],
43 &m[0], &m[1], &m[2], &m[3], &mtu) == 9) {
45 addrBuffer[nInterfaces] = htonl(a[0] << 24 | a[1] << 16
47 maskBuffer[nInterfaces] = htonl(m[0] << 24 | m[1] << 16
49 mtuBuffer[nInterfaces] = htonl(mtu);
52 fprintf(stderr, "failed to parse line %d in %s\n", lineNo, interfaceList);
63 main(int argc, char *argv[])
65 afs_uint32 outAddrs[MAXADDRS], outMask[MAXADDRS], outMtu[MAXADDRS], nAddrs;
70 fprintf(stderr, "usage: testnetrestrict <interface list> <netinfo> <netstrict>\n");
74 interfaceList = argv[1];
75 filenameNetInfo = argv[2];
76 filenameNetRestrict = argv[3];
79 retval = afsconf_ParseNetInfoFile(outAddrs, outMask, outMtu, MAXADDRS,
80 reason, filenameNetInfo);
82 printf("afsconf_ParseNetInfoFile() returned %d\n", retval);
83 if (reason[0] != '\0')
84 printf("reason: %s\n", reason);
86 printf("final address list:\n");
88 for(i = 0; i < retval; ++i) {
89 printf("\taddress 0x%x mask 0x%x mtu %d\n",
90 ntohl(outAddrs[i]), ntohl(outMask[i]), ntohl(outMtu[i]));
95 retval = afsconf_ParseNetRestrictFile(outAddrs, outMask, outMtu, MAXADDRS,
96 &nAddrs, reason, filenameNetRestrict);
98 printf("\nafsconf_ParseNetRestrictFile() returned %d\n", retval);
99 if (reason[0] != '\0')
100 printf("reason: %s\n", reason);
102 printf("final address list:\n");
103 for(i = 0; i < nAddrs; ++i) {
104 printf("\taddress 0x%x mask 0x%x mtu %d\n",
105 ntohl(outAddrs[i]), ntohl(outMask[i]), ntohl(outMtu[i]));
110 retval = afsconf_ParseNetFiles(outAddrs, outMask, outMtu, MAXADDRS,
111 reason, filenameNetInfo, filenameNetRestrict);
113 printf("\nafsconf_ParseNetFiles() returned %d\n", retval);
114 if (reason[0] != '\0')
115 printf("reason: %s\n", reason);
117 printf("final address list:\n");
118 for(i = 0; i < retval; ++i) {
119 printf("\taddress 0x%x mask 0x%x mtu %d\n",
120 ntohl(outAddrs[i]), ntohl(outMask[i]), ntohl(outMtu[i]));