alloc_permanent_directory_handle - while
check_message_pipe -
clear_connection - returns username and login date/time when you supply the station number.
clear_file -
clear_file_set -
close_message_pipe -
close_semaphore - limit name length
detach_from_file_server -
disable_file_server_login - scan until 00h is found
down_file_server - first thing is we strip leading and trailing blanks
enable_file_server_login -
examine_semaphore - 00h=successful FFh=Invalid handle
GetConnectionInfo - Now we chop off leading zeros
GetHexID - kicks the workstation off the server
GetNode - returns logged-in station username when you supply the station number.
GetServerInfo - returns the novell hexid of an username when you supply the username.
GetServerName - returns the station number of your workstation
17 = Get Server Info
GetStation - returns your physical network node in hex.
GetUser - returns various info of the default server
message length
get_broadcast_message -
get_broadcast_mode - You supply the userid, and it returns the realname as stored by syscon.
get_default_connection_id -
get_directory_path -
get_drive_connection_id -
get_drive_handle_id -
get_file_server_name - pass the drive number - it returns the server number if a network volume
Get_Internet_Address - Getnode
get_personal_message -
get_preferred_connection_id -
get_primary_connection_id -
get_realname - Gets the Volume name from Novell network drive } { Example: SYS Note: default drive must be a } { network drive.
get_server_datetime - retcode = 0 if no message, 1 if message was retreived
get_server_lan_driver_information -
get_server_version - pulls the time from the server and updates the workstation's clock
Get_Volume_Name - Sends a message to the workstation station #
Turbo Pascal for Dos } {$ENDIF WINDOWS
lock_file_set -
login_to_file_server - GetConnectInfo
logout - set to full length of field
logout_from_file_server - logout from all file servers
log_file - --------------------------------------------------------------------------} { file locking routines } {-----------------------
map -
open_message_pipe - end of with
open_semaphore - --------------------------------------------------------------------------
---
purge_all_erased_files -
purge_erased_files -
release_file -
release_file_set -
scan_object - verify_object_password
Send_Message_to_Station - Sends a novell message to the userid's workstation
-----------------------------------------------------------------} { This routine returns the same as GetServerInfo.
Send_Message_to_Username - returns the name of the current server
logout from one file server
send_personal_message -
set_broadcast_mode -
set_date_from_server - pulls from the server the date, time and Day Of Week
set_preferred_connection_id -
set_primary_connection_id -
set_time_from_server - pulls the date from the server and updates the workstation's clock
signal_semaphore - 00h=successful FFh=invalid handle
verify_object_password - passed from calling program
wait_on_semaphore - 00h=successful 01h=overflow value > 127 FFh=invalid handle
byte4
byte6
HEXDIGITS
Months
ServerInfo
procedure alloc_permanent_directory_handle(var _dir_handle : integer;
var _drive_letter : string;
var _dir_path_name : string;
var _new_dir_handle : integer;
var _effective_rights: byte;
var _retcode : integer);
while
procedure check_message_pipe(var _connection, retcode : integer);
procedure clear_connection(connection_number : integer; var retcode :
integer);
returns username and login date/time when you supply the station number. 00h=successful FEh=timeout failure FFh=invalid handle
procedure clear_file(log_filename: string; var retcode:integer);
procedure clear_file_set;
procedure close_message_pipe(var _connection, retcode : integer);
procedure close_semaphore(var _handle:longint; var retcode:integer);
limit name length
procedure detach_from_file_server(var id,retcode:integer);
procedure disable_file_server_login(var retcode : integer);
scan until 00h is found
procedure down_file_server(flag:integer;var retcode : integer);
first thing is we strip leading and trailing blanks
procedure enable_file_server_login(var retcode : integer);
procedure examine_semaphore(var _handle:longint; var _value:shortint; var
_count, retcode:integer);
00h=successful FFh=Invalid handle
procedure GetConnectionInfo(var LogicalStationNo: integer;
var name,hex_id:string;
var conntype:integer;
var datetime:string;
var retcode:integer);
Now we chop off leading zeros
procedure GetHexID(var userid,hexid: string;
var retcode: integer);
kicks the workstation off the server
procedure GetNode( var hex_addr: string;
var retcode: integer);
returns logged-in station username when you supply the station number. This procedure provides a shorter method of obtaining just the USERID.
procedure GetServerInfo;
returns the novell hexid of an username when you supply the username. end of procedure
procedure GetServerName(var servername : string;
var retcode : integer);
returns the station number of your workstation 17 = Get Server Info
procedure GetStation( var _station: integer;
var retcode: integer);
returns your physical network node in hex.
procedure GetUser( var _station: integer;
var _username: string;
var retcode:integer);
returns various info of the default server message length
procedure get_broadcast_message(var bmessage: string;
var retcode : integer);
procedure get_broadcast_mode(var bmode:integer);
You supply the userid, and it returns the realname as stored by syscon. } { Example: userid=mbramwel realname=Mark Bramwell if regs.al = $96 then writeln('server out of memory');
if regs.al = $ec then writeln('no such segment');
if regs.al = $f0 then writeln('wilcard not allowed');
if regs.al = $f1 then writeln('invalid bindery security');
if regs.al = $f9 then writeln('no property read priv');
if regs.al = $fb then writeln('no such property');
if regs.al = $fc then writeln('no such object');
procedure get_default_connection_id(var server_num : integer);
procedure get_directory_path(var handle : integer;
var pathname : string;
var retcode : integer);
procedure get_drive_connection_id(var drive_number,
server_number : integer);
procedure get_drive_handle_id(var drive_number, handle_number : integer);
procedure get_file_server_name(var server_number : integer;
var server_name : string);
pass the drive number - it returns the server number if a network volume
procedure Get_Internet_Address(station : integer;
var net_number, node_addr, socket_number :
string;
var retcode : integer);
Getnode
procedure get_personal_message(var _connection : integer; var _message :
string; var retcode : integer);
procedure get_preferred_connection_id(var server_num : integer);
procedure get_primary_connection_id(var server_num : integer);
procedure get_realname(var userid:string;
var realname:string;
var retcode:integer);
Gets the Volume name from Novell network drive } { Example: SYS Note: default drive must be a } { network drive. end of retcode=0
procedure get_server_datetime(var _year,_month,_day,_hour,_min,_sec,_dow:integer);
retcode = 0 if no message, 1 if message was retreived
procedure get_server_lan_driver_information(var _lan_board_number : integer;
{ This will return info on what } var _text1,_text2:string;
{ type of network cards are being } var _network_address : byte4;
{ used in the server. } var _host_address : byte6;
var _driver_installed,
_option_number,
_retcode : integer);
procedure get_server_version(var _version : string);
pulls the time from the server and updates the workstation's clock
procedure Get_Volume_Name(var volume_name: string;
volume_number: integer;
var retcode:integer);
Sends a message to the workstation station # Turbo Pascal for Dos } {$ENDIF WINDOWS
procedure lock_file_set(lock_timeout:integer; var retcode:integer);
procedure login_to_file_server(obj_type:integer; _name,_password : string;var
retcode:integer);
GetConnectInfo
procedure logout;
set to full length of field
procedure logout_from_file_server(var id: integer);
logout from all file servers
procedure log_file(lock_directive:integer; log_filename: string;
log_timeout:integer; var retcode:integer);
--------------------------------------------------------------------------} { file locking routines } {-----------------------
procedure map(var drive_spec:string;
var _rights:byte;
var _retcode : integer);
procedure open_message_pipe(var _connection, retcode : integer);
end of with
procedure open_semaphore( _name:string;
_initial_value:shortint;
var _open_count:integer;
var _handle:longint;
var retcode:integer);
--------------------------------------------------------------------------
---
procedure purge_all_erased_files(var retcode:integer);
procedure purge_erased_files(var retcode:integer);
procedure release_file(log_filename: string; var retcode:integer);
procedure release_file_set;
procedure scan_object(var last_object: longint;
var search_object_type: integer;
var search_object : string;
var replyid : longint;
var replytype : integer; var replyname : string;
var replyflag : integer; var replysecurity : byte;
var replyproperties : integer; var retcode : integer);
verify_object_password
procedure Send_Message_to_Station(station:integer;
message : string;
var retcode: integer);
Sends a novell message to the userid's workstation -----------------------------------------------------------------} { This routine returns the same as GetServerInfo. This routine } { was kept to maintain compatibility with the older novell unit. } {-----------------------------------------------------------------
procedure Send_Message_to_Username(username,message : string;
var retcode: integer);
returns the name of the current server logout from one file server
procedure send_personal_message(var _connection : integer; var _message :
string; var retcode : integer);
procedure set_broadcast_mode(bmode:integer);
procedure set_date_from_server;
pulls from the server the date, time and Day Of Week
procedure set_preferred_connection_id(server_num : integer);
procedure set_primary_connection_id(server_num : integer);
procedure set_time_from_server;
pulls the date from the server and updates the workstation's clock
procedure signal_semaphore(var _handle:longint; var retcode:integer);
00h=successful FFh=invalid handle
procedure verify_object_password(var object_type:integer; var
object_name,password : string; var retcode : integer);
passed from calling program
procedure wait_on_semaphore(var _handle:longint; _timeout:integer; var
retcode:integer);
00h=successful 01h=overflow value > 127 FFh=invalid handle
byte4 = array [1..4] of byte;
byte6 = array [1..6] of byte;
HEXDIGITS = '0123456789ABCDEF'
Months = ('JAN','FEB','MAR','APR','MAY','JUN',
'JUL','AUG','SEP','OCT','NOV','DEC')
---------------------------------------------------------------------------} { } { This UNIT provides a method of obtaining Novell information from a user } { written program. This UNIT was tested on an IBM AT running DOS 5.0 & } { using Netware 2.15. The unit compiled cleanly under Turbo Pascal 6.0 } { } { The UNIT has been updated to compile and run under Turbo Pascal for } { Windows. } { } { *** Tested ok with Netware 386 3.11 Sept/91 } { } { Last Update: 11 Dec 91 } { } {---------------------------------------------------------------------------} { } { Any questions can be directed to: } { } { Mark Bramwell } { University of Western Ontario } { London, Ontario, N6A 3K7 } { } { Phone: 519-473-3618 [work] 519-473-3618 [home] } { } { Bitnet: mark@hamster.business.uwo.ca Packet: ve3pzr @ ve3gyq } { } { Anonymous FTP Server Internet Address: 129.100.22.100 } { } {---------------------------------------------------------------------------} { Any other Novell UNITS gladly accepted. }
mods February 1 1991, Ross Lazarus (rml@extro.ucc.su.AU.OZ)
var retcodes in procedure getservername, get_broadcast_message,
verify_object_password comments, password conversion to upper case,
Seems to work fine on a Netware 3.00 and on 3.01 servers -
ServerInfo : Record
ReturnLength : Integer;
Server : Packed Array [1..48] of Byte;
NetwareVers : Byte;
NetwareSubV : Byte;
ConnectionMax : array [1..2] of byte;
ConnectionUse : array [1..2] of byte;
MaxConVol : array [1..2] of byte; {}
OS_revision : byte;
SFT_level : byte;
TTS_level : byte;
peak_used : array [1..2] of byte;
accounting_version : byte;
vap_version : byte;
queuing_version : byte;
print_server_version : byte;
virtual_console_version : byte;
security_restrictions_version : byte;
Internetwork_version_version : byte;
Undefined : Packed Array [1..60] of Byte;
peak_connections_used : integer;
Connections_max : integer;
Connections_in_use : integer;
Max_connected_volumes : integer;
name : string;
End
----------------------------------------------------------------------} { The following values can be pulled from an user written application } { } { The programmer would first call GetServerInfo. } { Then he could writeln(serverinfo.name) to print the server name } {----------------------------------------------------------------------