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