home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 8 Other
/
08-Other.zip
/
NETVIEW.ZIP
/
NETVIEW.MOD
< prev
Wrap
Text File
|
1989-11-14
|
3KB
|
139 lines
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.