Distributed Name Service (DNS) Management Programming Manual

DNS Programming Example, TACL
F–20 46958 Tandem Computers Incorporated
#SETV l^response l^candidate
?SECTION dns^resolve^alias MACRO
==
== Invoke DNS^LOOKUP^ALIAS to resolve the alias.
==
[dns^lookup^alias [l^candidate:zdnsname]
[l^candidate:zdefnode]
l^alias^br
l^alias^dr]
==
== If the alias was generated as a result of EXTERNAL ON for it's
== referent we skip it; otherwise, we'll get an ambiguous name.
==
[#IF NOT l^alias^dr:zext |THEN|
==
== Not external; build L^CANDIDATE from the INFO ALIAS response.
==
dns^name^br^from^alias
==
== Record the fact that we found one.
==
dns^lookup^found
]
?SECTION dns^name^br^from^alias MACRO
==
== Builds an INFO NAME response from INFO ALIAS response.
==
== Initialize INFO NAME response.
==
dns^ssnull zdns^map^info^name^br l^candidate
==
== Move fields from INFO ALIAS response.
==
#SET l^candidate:zremote [l^alias^br:zremote]
#SET l^candidate:zdnstype [l^alias^br:zreftype]
#SET l^candidate:zssobj [l^alias^dr:zssobj]
#SET l^candidate:zssmgr [l^alias^dr:zssmgr]
#SET l^candidate:zsstype [l^alias^dr:zsstype]
#SET l^candidate:zss [l^alias^dr:zss]
#SET l^candidate:zowner [l^alias^dr:zowner]
#SET l^candidate:zssnum [l^alias^dr:zssnum]
#SET l^candidate:ztypenum [l^alias^dr:ztypenum]
?SECTION dns^open routine