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