home *** CD-ROM | disk | FTP | other *** search
- MODULE NetView;
-
- IMPORT NETCONS;
- IMPORT OS2DEF;
- IMPORT SERVER;
-
- IMPORT IO;
- IMPORT Lib;
- IMPORT Str;
- IMPORT SYSTEM;
-
- CONST
- MAX_SERVER = 100;
-
- VAR
- asvrServerList : ARRAY[1..MAX_SERVER] OF SERVER.SERVER_INFO_1; (* COMMENTS are here also! *)
- bSpaceFill : BOOLEAN;
- c : CARDINAL;
- szComment : ARRAY[0..255] OF CHAR;
- usRes : OS2DEF.USHORT;
- usCurrentEntry : OS2DEF.USHORT;
- usEntriesRead : OS2DEF.USHORT;
- usTotalEntries : OS2DEF.USHORT;
-
- (* ------------------------------------------------------------------- *)
- PROCEDURE CopyPSZtoArray( pszP1 : SYSTEM.ADDRESS;
- VAR szS1 : ARRAY OF CHAR
- );
- VAR
- cOff : CARDINAL;
- bByte : SYSTEM.BYTE;
-
- BEGIN
-
- IF pszP1 = SYSTEM.ADDRESS( 0 )
- THEN
- Str.Copy( szS1, "<NULL>" );
- ELSE
- cOff := 0;
- Lib.Move( pszP1, SYSTEM.ADR(bByte), 1 );
-
- WHILE (CHR(bByte) # CHR(0)) AND (cOff < HIGH(szS1))
- DO
- szS1[cOff] := CHR(bByte);
- INC(cOff);
- pszP1 := Lib.AddAddr(pszP1 , 1);
- Lib.Move( pszP1, SYSTEM.ADR(bByte), 1 );
- END;
-
- szS1[cOff] := 0C;
- END;
-
- END CopyPSZtoArray;
- (* ------------------------------------------------------------------- *)
- BEGIN
-
- usEntriesRead := 0;
-
- usRes := SERVER.NETSERVERENUM( OS2DEF.NullStr
- , 1 (* We want level 1 information *)
- , OS2DEF.LONG(ADR(asvrServerList))
- , SIZE(asvrServerList)
- , usEntriesRead
- , usTotalEntries
- );
-
- IO.WrLn;
- IO.WrLn;
- IO.WrStr("NetServerEnum report on ");
- IO.WrCard(usEntriesRead,0);
- IO.WrStr(" servers, from a total server set of ");
- IO.WrCard(usTotalEntries,0);
- IO.WrStr(" entries.");
- IO.WrLn;
- IO.WrLn;
-
- IF usRes # 0
- THEN
- IO.WrStr("Abnormal return code from NetServerEnum: ");
- IO.WrCard(usRes,0);
- IO.WrLn;
- IO.WrLn;
- END;
-
- usCurrentEntry := 0;
-
- LOOP
- (* Get next server *)
- INC( usCurrentEntry );
-
- IF (usCurrentEntry > usEntriesRead)
- OR
- (usCurrentEntry > MAX_SERVER)
- THEN
- (* No more servers to enum *)
- EXIT
- END;
-
- bSpaceFill := FALSE;
-
- FOR c := 0 TO NETCONS.CNLEN
- DO
- IF asvrServerList[usCurrentEntry].sv1_name[c] = 0C
- THEN
- bSpaceFill := TRUE
- END;
-
- IF bSpaceFill
- THEN
- asvrServerList[usCurrentEntry].sv1_name[c] := ' ';
- END;
- END;
-
- IO.WrStr("\\");
- IO.WrStr(asvrServerList[usCurrentEntry].sv1_name);
- IO.WrStr(" ");
- IO.WrCard(VAL(CARDINAL,asvrServerList[usCurrentEntry].sv1_version_major),3);
- IO.WrStr(".");
- IO.WrCard(VAL(CARDINAL,asvrServerList[usCurrentEntry].sv1_version_minor),0);
-
- IF (( SERVER.SV_TYPE_SQLSERVER * asvrServerList[usCurrentEntry].sv1_type) # OS2DEF.LSET{})
- THEN
- IO.WrStr(" <SQL> ")
- ELSE
- IO.WrStr(" <...> ")
- END;
-
- CopyPSZtoArray( asvrServerList[usCurrentEntry].sv1_comment
- , szComment
- );
-
- IO.WrStr(szComment);
-
- IO.WrLn();
-
- END;
-
- END NetView.