xref: /inferno-os/module/ipattr.m (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
1*46439007SCharles.ForsythIPattr: module
2*46439007SCharles.Forsyth{
3*46439007SCharles.Forsyth
4*46439007SCharles.Forsyth	PATH: con "/dis/lib/ipattr.dis";
5*46439007SCharles.Forsyth
6*46439007SCharles.Forsyth	Netattr: adt {
7*46439007SCharles.Forsyth		name:	string;
8*46439007SCharles.Forsyth		pairs:	list of ref Attrdb->Attr;
9*46439007SCharles.Forsyth		net:	IP->IPaddr;
10*46439007SCharles.Forsyth		mask:	IP->IPaddr;
11*46439007SCharles.Forsyth	};
12*46439007SCharles.Forsyth
13*46439007SCharles.Forsyth	init:	fn(attrdb: Attrdb, ip: IP);
14*46439007SCharles.Forsyth
15*46439007SCharles.Forsyth	dbattr:	fn(s: string): string;
16*46439007SCharles.Forsyth	findnetattr:	fn(db: ref Attrdb->Db, attr: string, val: string, rattr: string): (string, string);
17*46439007SCharles.Forsyth	findnetattrs:	fn(db: ref Attrdb->Db, attr: string, val: string, rattrs: list of string): (list of (IP->IPaddr, list of ref Netattr), string);
18*46439007SCharles.Forsyth	valueof:	fn(l: list of ref Netattr, attr: string): list of string;
19*46439007SCharles.Forsyth	netvalueof:	fn(l: list of ref Netattr, attr: string, ip: IP->IPaddr): list of string;
20*46439007SCharles.Forsyth};
21