Distributed Name Service (DNS) Management Programming Manual

DNS Programming Example, TAL
46958 Tandem Computers Incorporated G–5
!
! Clear last error.
!
IF status := ssputtkn(response, zspi^tkn^clearerr) THEN
RETURN dns^spierr(status);
!
! Send successful.
!
RETURN dns^noerr;
END;
?PAGE "OPEN DNS NAME MANAGER"
! Open the DNS name manager.
INT(32) PROC dns^open(system, fno, version);
INT system; !i - GUARDIAN system number where the
! name manager is to be opened
INT .fno; !o - File number
INT .EXT version; !o - Version of name manager
BEGIN
INT(32) result; !Result from DNS^SEND
INT
status !Status from SPI procedures
, retcode !Retcode from GETVERSION Command
,.manager^name[0:11] := ["\" << 8, "ZDNS #ZSPI "]
;
STRUCT .EXT req^buf(zdns^ddl^msg^buffer^def); !Request buffer
STRUCT .EXT resp^buf(zdns^ddl^msg^buffer^def); !Response buffer
!
! Procedure body; initialize DNS^SSID.
!
dns^ssid.z^owner ':=' zspi^val^tandem;
dns^ssid.z^number := zspi^ssn^zdns;
dns^ssid.z^version := zdns^val^version;
!
! Place the system number in the second byte of the network-form
! file name.
!
manager^name := manager^name LOR system;
!
! Try to open the name manager.
!
CALL open(manager^name, fno, , 1);
IF fno = -1 THEN
BEGIN