Dec 112017
This library is a collection of Netware Function calls which allow some basic access to the bindery files through Clipper. | |||
---|---|---|---|
File Name | File Size | Zip Size | Zip Type |
NOV-DEMO.EXE | 180210 | 80907 | deflated |
NOV-DEMO.PRG | 6348 | 2032 | deflated |
NOVELL.DOC | 9274 | 2078 | deflated |
NOVELL.LIB | 15872 | 5742 | deflated |
Download File NOVLIB10.ZIP Here
Contents of the NOVELL.DOC file
*****************************************************
* NOVELL NETWARE LIBRARY v1.0 *
* for *
* Advanced Netware 86 & 286 v2.0a and above *
* and the *
* Clipper Compiler Summer '87 rel *
* *
* Author: Michael Shadduck *
*****************************************************
This library is a collection of Netware Function calls which
allow some basic access to the bindery files through Clipper.
The primary use intended is for retrieving user and connection
information. Included, also, are three functions which allow
status information for the Novell PCOX/ACS WAN software called
ANYWARE. I have created this library in a modular fashion (only
those functions requested are linked) in order to reduce
overhead. With the exception of LOADBIND()/SECEQUAL(), all
function have been written in assembler in order to increase the
execution speed of these calls. LOADBIND() & SECEQUAL() do,
however, make internal calls to other assembler routines.
All function calls have been tested on Advanced Netware 86 and
286 v2.0a, and Advanced Netware v2.15 SFT. With the exception
of PWORD(), all functions appear to be reliable on all above
mentioned releases. With the release of Netware 2.15 (possibly
2.10), Novell employed a password encryption algorithm which
they refused to release to me (surprised?). Therefore, the
PWORD() function DOES NOT properly return an objects associated
password. I have spent many hours, and will continue to do so,
attempting to decipher Novell's encryption method, but as yet, I
have been unsuccessful.
I realize the following documentation on each of the functions
may seem a bit vague or incomplete for the beginning user
(Novell, that is), however, it is precise. The best suggestion
I can give to those who find the doc confusing is to compile,
link, and execute the sample program NOV-DEMO.PRG which I have
included. This sample illustrates the proper usage of the most
commonly needed functions.
************************************************************
Syntax: AWBaud()
Parms:
Returns: expN
Description: Returns a numeric value indicating the configured
baud rate of the active ANYWARE comm port. The following is a
table of the possible values returned.
1 = 50 9 = 1800
2 = 75 10 = 2000
3 = 110 11 = 2400
4 = 134.5 12 = 4800
5 = 150 13 = 7200
6 = 300 14 = 9600
7 = 600 15 = 19200
8 = 1200 16 = (auto detect)
************************************************************
Syntax: AWPort()
Parms:
Returns: expN
Description: Returns a numeric value indicating the configured
comm port of the active ANYWARE station. The following is a
table of the possible values returned.
1 = com1:
2 = com2:
etc.
************************************************************
Syntax: AWStat()
Parms:
Returns: expN
Description: Returns a numeric value indicating the current
status of the ANYWARE station. The following is a table of the
possible values returned.
0 = ANYWARE loaded and active.
1 = ANYWARE loaded and inactive. Requires reboot to
reactivate.
2 = ANYWARE loaded and inactive. Requires Ctrl-RShift to
reactivate.
3 = ANYWARE is NOT loaded.
************************************************************
************************************************************
Syntax: WSID()
Parms:
Returns: expN
Description: Returns a numeric value indicating the logical
node (connection) address of the current workstation.
************************************************************
Syntax: PSID()
Parms:
Returns: expN
Description: Returns a numeric value indicating the physical
node (connection) address of the current workstation. This
value is generally more meaningful when converted to hex
notation.
************************************************************
Syntax: UserName( expN )
Parms: expN = Logical Node Address
Returns: expC
Description: Returns a character expression containing the
Login Name of the user at connection expN.
************************************************************
Syntax: FullName( expC, expN )
Parms: expC = Object Name
expN = Object Type
Returns: expC
Description: Returns a character expression containing the
property "IDENTIFICATION" for the object in expC of type expN.
************************************************************
************************************************************
Syntax: PWord( expC, expN )
Parms: expC = Object Name
expN = Object Type
Returns: expC
Description: Returns a character expression containing the
property "PASSWORD" for the object in expC of type expN. NOTE:
This function does NOT truly return the password on Netware
v2.15 (and possibly 2.10).
************************************************************
Syntax: SecEqual( expC, expN )
Parms: expC = Object Name
expN = Object Type
Returns: expC
Description: Returns a character expression containing the
property "IDENTIFICATION" for ALL objects in the set
"GROUPS_I'M_IN" for the object in expC of type expN. More
simply, it can be used to retrieve the Security Equivalence for
a user.
************************************************************
Syntax: BindCnt( expN )
Parms: expN = Object Type
Returns: expC
Description: Returns a numeric expression containing a count of
all object in the bindery for object type expN.
************************************************************
Syntax: LoadBind( expN, expA1, expA2, expA3 )
Parms: expN = Object Type
expA1 = Object Number Array (numeric)
expA2 = Object Name Array (character)
expA3 = Object Identification Array (character)
Returns: expN
Description: Returns a numeric expression containing a count of
all object in the bindery for object type expN, and fills the
arrays with information for ALL objects of type expN. expA1 is
filled with the object number, expA2 with the corresponding
object name for object no., and expA3 with the property
"IDENTIFICATION" for object name.
************************************************************
************************************************************
Syntax: ObjName( expN )
Parms: expN = Object Number
Returns: expC
Description: Returns a character expression containing the name
of the object whose number is expN.
************************************************************
Syntax: ObjNum( expC, expN )
Parms: expC = Object Name
Parms: expN = Object Type
Returns: expN
Description: Returns a numeric expression containing the object
number for the object name in expC of type expN.
************************************************************
Syntax: ObjType( expN )
Parms: expN = Object Number
Returns: expN
Description: Returns a numeric expression containing the object
type for the object number expN.
************************************************************
Syntax: UniqueID( expN )
Parms: expN = Logical Node Address
Returns: expN
Description: Returns a numeric expression containing the unique
object number for the object connected to the station expN.
************************************************************
December 11, 2017
Add comments