xref: /plan9-contrib/sys/src/cmd/aquarela/nb.c (revision 8ccd4a6360d974db7bd7bbd4f37e7018419ea908)
1*8ccd4a63SDavid du Colombier #include "headers.h"
2*8ccd4a63SDavid du Colombier 
3*8ccd4a63SDavid du Colombier NbGlobals nbglobals;
4*8ccd4a63SDavid du Colombier 
5*8ccd4a63SDavid du Colombier NbName nbnameany = { '*' };
6*8ccd4a63SDavid du Colombier 
7*8ccd4a63SDavid du Colombier int
nbinit(void)8*8ccd4a63SDavid du Colombier nbinit(void)
9*8ccd4a63SDavid du Colombier {
10*8ccd4a63SDavid du Colombier 	Ipifc *ipifc;
11*8ccd4a63SDavid du Colombier 	int i;
12*8ccd4a63SDavid du Colombier 	fmtinstall('I', eipfmt);
13*8ccd4a63SDavid du Colombier 	fmtinstall('B', nbnamefmt);
14*8ccd4a63SDavid du Colombier 	ipifc = readipifc("/net", nil, 0);
15*8ccd4a63SDavid du Colombier 	if (ipifc == nil || ipifc->lifc == nil) {
16*8ccd4a63SDavid du Colombier 		print("no network interface");
17*8ccd4a63SDavid du Colombier 		return -1;
18*8ccd4a63SDavid du Colombier 	}
19*8ccd4a63SDavid du Colombier 	ipmove(nbglobals.myipaddr, ipifc->lifc->ip);
20*8ccd4a63SDavid du Colombier 	ipmove(nbglobals.bcastaddr, ipifc->lifc->ip);
21*8ccd4a63SDavid du Colombier 	nbmknamefromstring(nbglobals.myname, sysname());
22*8ccd4a63SDavid du Colombier 	for (i = 0; i < IPaddrlen; i++)
23*8ccd4a63SDavid du Colombier 		nbglobals.bcastaddr[i] |= ~ipifc->lifc->mask[i];
24*8ccd4a63SDavid du Colombier 	return 0;
25*8ccd4a63SDavid du Colombier }
26