Distributed Name Service (DNS) Management Programming Manual

DNS Programming Example, TAL
G–22 46958 Tandem Computers Incorporated
IF (status := ssinit(req^buf
, zdns^val^buflen
, dns^ssid
, zspi^val^cmdhdr
, zdns^cmd^alter
, zdns^obj^alias
,
,
, true))
THEN
RETURN dns^spierr(status);
!
! Initialize ALTER ALIAS parameter.
!
IF (status := ssnull(param^map, param)) THEN
RETURN dns^spierr(status);
!
! Build ALTER ALIAS parameter.
!
param.zname ':=' alias FOR zdns^val^dnslen;
param.zdefnode ':=' defnode FOR 8;
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;
IF reftype <> -1 THEN
BEGIN
!
! Change the referent.
!
param.zreftype := reftype;
IF reftype = zdns^obj^ssobj THEN
param.zssobj ':=' ssobject FOR zdns^val^objlen;
param.zssmgr ':=' ssmanager FOR zdns^val^mgrlen;
END;
!
! Store ALTER ALIAS parameter in request buffer.
!
IF (status := ssput(req^buf, param^map, param)) THEN
RETURN dns^spierr(status);
!
! Start a TMF transaction.
!
IF (status := begintransaction) THEN
RETURN dns^tmferr(status);