173 lines
4.8 KiB
Plaintext
173 lines
4.8 KiB
Plaintext
{$X+,V-,B-}
|
|
Program testconn;
|
|
|
|
{ Testprogram for the nwConn unit / NwTP 0.6 API. (c) 1993, 1995, R.Spronk }
|
|
|
|
{ Purpose: testing of nwConn calls }
|
|
|
|
{ Tests the following nwConn functions:
|
|
|
|
GetConnectionId
|
|
GetConnectionInformation
|
|
GetConnectionNumber
|
|
GetDefaultConnectionId
|
|
GetFileserverName
|
|
GetInternetAddress
|
|
GetObjectConnectionNumbers
|
|
GetPreferredConnectionId
|
|
GetPrimaryConnectionId
|
|
GetWorkstationNodeAddress
|
|
GetUserAtConnection
|
|
}
|
|
|
|
Uses nwMisc,nwConn;
|
|
|
|
Procedure Warning(s:string);
|
|
begin
|
|
writeln(s);
|
|
writeln(' ERROR #: $',HexStr(nwConn.Result,2),' (',nwConn.result,')');
|
|
writeln;
|
|
writeln('...Press <Enter> to Continue..');
|
|
readln;
|
|
end;
|
|
|
|
Var myConnNumber:byte;
|
|
myConnId :byte; { connID of server I'm attached to }
|
|
myPhysNode2:TnodeAddress;
|
|
myObjName :string;
|
|
myObjType :word;
|
|
myObjId :longInt;
|
|
myLoginTime :TnovTime;
|
|
|
|
myAddress:TinternetworkAddress;
|
|
|
|
nbrOfConn:byte;
|
|
connList :TconnectionList;
|
|
|
|
objName :string;
|
|
objType :word;
|
|
objId :LongInt;
|
|
LoginTime:TnovTime;
|
|
|
|
connId :byte;
|
|
serverName:string;
|
|
routeInfo :string;
|
|
|
|
t :byte;
|
|
tempStr:string;
|
|
|
|
begin
|
|
|
|
IF GetConnectionNumber(myConnNumber)
|
|
then writeln('Your connection number is:',myConnNumber)
|
|
else warning('!!! The GetConnectionNumber call failed');
|
|
|
|
IF GetInterNetAddress(myConnNumber,myAddress)
|
|
then begin
|
|
write('Your Netw.:Node:Socket Nbr is: [$');
|
|
for t:=1 to 4 do write(hexStr(myAddress.Net[t],2));
|
|
write(':');
|
|
for t:=1 to 6 do write(HexStr(myAddress.Node[t],2));
|
|
writeln(':',hexstr(myAddress.socket,4),']');
|
|
end
|
|
else warning('!!! GetInterNetAdress failed.');
|
|
|
|
|
|
IF GetWorkstationNodeAddress(myPhysNode2)
|
|
and (myAddress.Node[6]=myPhysNode2[6])
|
|
and (myAddress.Node[5]=myPhysNode2[5])
|
|
and (myAddress.Node[4]=myPhysNode2[4])
|
|
then { ok }
|
|
else begin
|
|
warning('!!! GetStationadress failed');
|
|
write('returned: $');
|
|
for t:=1 to 6 do write(HexStr(myPhysNode2[t],2));
|
|
end;
|
|
|
|
IF GetConnectionInformation(myConnNumber,
|
|
myObjName,myObjType,myObjId,myLoginTime)
|
|
then begin
|
|
writeln('You are :',myObjName);
|
|
if myObjType=$1 { OT_USER}
|
|
then writeln(' of object type : USER')
|
|
else writeln(' of object type : $',HexStr(myObjType,4));
|
|
writeln(' with object ID: $',HexStr(myObjId,8));
|
|
NovTime2String(myLoginTime,tempStr);
|
|
writeln(' logged in at ',tempStr);
|
|
end
|
|
else warning('!!! GetConnectionInformation failed.');
|
|
|
|
if NOT (GetUserAtConnection(myConnNumber,tempStr) and (tempStr=myObjName))
|
|
then warning('!!! GetUserAtConnection (2) failed.');
|
|
|
|
IF GetObjectConnectionNumbers(myObjName,1 {OT_USER},
|
|
nbrOfConn,connList)
|
|
then begin
|
|
writeln('User ',myObjName,' has ',nbrOfConn,' active connection(s).');
|
|
t:=nbrOfConn;
|
|
if t>0
|
|
then begin
|
|
t:=1;
|
|
while t<=nbrOfConn
|
|
do begin
|
|
writeln(' at connectionNumber:',connList[t]);
|
|
inc(t);
|
|
end;
|
|
end;
|
|
end
|
|
else warning('!!! GetObjectConnectionNumbers failed.');
|
|
|
|
|
|
writeln;
|
|
t:=1;
|
|
writeln('ConnNbr Name LoginTime');
|
|
WHILE t<250 { nw 3.x / 2.x 100 }
|
|
do begin
|
|
IF GetConnectionInformation(t, objName,objType,objId,LoginTime)
|
|
then begin
|
|
PstrCopy(TempStr,objName,15);
|
|
objName:=TempStr;
|
|
NovTime2String(LoginTime,TempStr);
|
|
writeln(t:4,' ',objName,' ',TempStr);
|
|
end
|
|
else if nwConn.result<>$FD { bad_station_number / nbr not in use }
|
|
then warning('!!! GetConnectionInformation failed.');
|
|
inc(t);
|
|
end;
|
|
|
|
{*********** connection ID's ( server numbers in server table )************ }
|
|
|
|
{ to which server have we been sending all the above requests? }
|
|
|
|
routeInfo:='preferred';
|
|
GetPreferredConnectionID(ConnId);
|
|
{ if set previously, this server has the highest priority. }
|
|
|
|
if connId=0 { preferred server was not set }
|
|
then begin
|
|
RouteInfo:='default';
|
|
GetDefaultConnectionID(ConnId);
|
|
end;
|
|
{ your current default drive is attached to this server }
|
|
|
|
if connId=0
|
|
then begin
|
|
RouteInfo:='primary';
|
|
GetPrimaryConnectionID(ConnId);
|
|
end;
|
|
{ the server your shell initially attached to, used if the default drive
|
|
is a local drive. Lowest priority. }
|
|
|
|
{ These three calls are also incorporated in the secondary function:
|
|
GetEffectiveConnectionID. }
|
|
writeln;
|
|
writeln('All requests are routed to the ',RouteInfo,'-server with conn.ID=',connId);
|
|
|
|
GetFileServerName(connId,{out:} serverName);
|
|
GetConnectionID(serverName,{out} t);
|
|
if t<>connId
|
|
then warning('!!! GetFileServerName and GetConnectionId report different values.')
|
|
else writeln('Name of the server: ',serverName);
|
|
|
|
end.
|