Unit Novell

Classes

Functions

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

Types

byte4
byte6

Constants

HEXDIGITS
Months

Variables

ServerInfo


Functions


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

Types


byte4 = array [1..4] of byte;

byte6 = array [1..6] of byte;

Constants

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 -

Variables

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 } {----------------------------------------------------------------------