Distributed Name Service (DNS) Management Programming Manual
DNS Programming Example, TAL
46958 Tandem Computers Incorporated G–19
STRUCT .EXT req^buf(zdns^ddl^msg^buffer^def); !Request buffer
STRUCT .EXT resp^buf(zdns^ddl^msg^buffer^def); !Response buffer
INT(32)
 result !Value returned by DNS^Send.
 ;
STRUCT !ADD ALIAS parameter.
 .param(zdns^ddl^add^alias^def)
 ;
 !ADD ALIAS parameter map.
INT param^map[0:zdns^map^add^alias^wln - 1] = 'P' := zdns^map^add^alias;
!
! Procedure body; initialize ADD ALIAS request buffer.
!
IF (status := ssinit(req^buf
 , zdns^val^buflen
 , dns^ssid
 , zspi^val^cmdhdr
 , zdns^cmd^add
 , zdns^obj^alias
 ,
 ,
 , true))
THEN
 RETURN dns^spierr(status);
!
! Initialize ADD ALIAS parameter.
!
IF (status := ssnull(param^map, param)) THEN
 RETURN dns^spierr(status);
!
! Build parameter.
!
param.zname ':=' alias FOR zdns^val^dnslen;
param.ztype ':=' aliastype FOR zdns^val^typelen;
IF domain = ["LOCAL" , 27 * [" "]] THEN
 param.zdomain.z^b ':=' [" "] & param.zdomain.z^b FOR zdns^val^dnslen - 1
ELSE
IF domain <> [zdns^val^dnslen * [" "]] THEN
 param.zdomain ':=' domain FOR zdns^val^dnslen;
param.zreftype := reftype;
IF reftype = zdns^obj^ssobj THEN
 param.zssobj ':=' ssobject FOR zdns^val^objlen;
param.zssmgr ':=' ssmanager FOR zdns^val^mgrlen;










