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
]));