procedure LookupCanonicalName(name: unicodestring): DSName

Informative summary of behavior: The LookupCanonicalName procedure is a helper function that looks up an object based on its canonical name by walking down the NC replica from the NC root and looking up objects by name.

 curObj: DSName
 label: unicodestring
 ParseCanonicalName(name, label, name)
 curObj := DomainFromDomainDNSName(label)
 while name ≠ null and curObj ≠ null
   ParseCanonicalName(name, label, name)
   curObj := select one O from children curObj where O!name=label
   if curObj = null then
     return null
 return curObj