Files
harbour-core/harbour/contrib/hbnf/nwuid.prg
Viktor Szakats 8c77111447 2009-07-11 07:38 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* tests/mathtest.prg
  * tests/testcgi.prg
  * tests/speedold.prg
  * tests/testhtml.prg
  * tests/wvtext.prg
  * tests/testpre.prg
  * tests/testfor.prg
  * doc/en-EN/string.txt
  * doc/en-EN/memvar2.txt
  * source/rtl/gtdos/gtdos.c
  * source/rtl/gtsln/keytrans.c
  * source/rtl/gtsln/mousesln.c
  * source/rtl/gtsln/gtsln.c
  * source/rtl/gtsln/kbsln.c
  * source/rdd/dbfntx/dbfntx1.c
  * source/rdd/dbfnsx/dbfnsx1.c
  * source/compiler/genc.c
  * contrib/gtalleg/ssf.c
  * contrib/hbct/strdiff.c
  * contrib/hbct/tests/csetarge.prg
  * contrib/hbct/dattime2.c
  * contrib/xhb/fparse.c
  * contrib/xhb/ttable.prg
  * contrib/xhb/freadlin.c
  * contrib/xhb/cstruct.prg
  * contrib/hbgt/strasint.c
  * contrib/hbfbird/tests/testapi.c
  * contrib/hbxbp/xbpsle.prg
  * contrib/hbxbp/xbpmenubar.prg
  * contrib/hbxbp/xbpfiledialog.prg
  * contrib/hbxbp/xbpwindow.prg
  * contrib/hbxbp/xbpdialog.prg
  * contrib/hbxbp/xbp3state.prg
  * contrib/hbnf/scancode.prg
  * contrib/hbnf/vidmode.prg
  * contrib/hbnf/vidcur.prg
  * contrib/hbnf/proper.c
  * contrib/hbnf/rand1.prg
  * contrib/hbnf/fttext.c
  * contrib/hbnf/settime.prg
  * contrib/hbnf/page.prg
  * contrib/hbnf/findith.prg
  * contrib/hbnf/at2.prg
  * contrib/hbnf/dispc.c
  * contrib/hbnf/gcd.prg
  * contrib/hbnf/dosver.prg
  * contrib/hbnf/nooccur.prg
  * contrib/hbnf/asum.prg
  * contrib/hbnf/sleep.prg
  * contrib/hbnf/wda.prg
  * contrib/hbnf/any2any.prg
  * contrib/hbnf/setdate.prg
  * contrib/hbnf/amedian.prg
  * contrib/hbnf/blink.prg
  * contrib/hbnf/aredit.prg
  * contrib/hbnf/xbox.prg
  * contrib/hbnf/ftround.prg
  * contrib/hbnf/hex2dec.prg
  * contrib/hbnf/nwuid.prg
  * contrib/hbnf/aemaxlen.prg
  * contrib/hbnf/nwlstat.prg
  * contrib/hbnf/invclr.prg
  * contrib/hbnf/diskfunc.prg
  * contrib/hbnf/scregion.prg
  * contrib/hbnf/d2e.prg
  * contrib/hbnf/anomatch.prg
  * contrib/hbnf/cntryset.prg
  * contrib/hbnf/ntow.prg
  * contrib/hbnf/aeminlen.prg
  * contrib/hbnf/savesets.prg
  * contrib/hbnf/tbwhile.prg
  * contrib/hbnf/calendar.prg
  * contrib/hbnf/e2d.prg
  * contrib/hbnf/sysmem.prg
  * contrib/hbnf/aading.prg
  * contrib/hbnf/pending.prg
  * contrib/gtqtc/tests/demoqtc.prg
  * contrib/gtqtc/gtqtc.cpp
  * contrib/gtwvg/wvgscrlb.prg
  * contrib/gtwvg/wvgclass.prg
  * contrib/gtwvg/wvgax.prg
  * contrib/gtwvg/wvgpaint.prg
  * contrib/gtwvg/wvgdarea.prg
  * contrib/gtwvg/wvgmle.prg
  * contrib/gtwvg/wvglistb.prg
  * contrib/gtwvg/wvggui.c
  * contrib/gtwvg/wvgpushb.prg
  * contrib/gtwvg/wvgsle.prg
  * contrib/gtwvg/tests/demowvg.prg
  * contrib/gtwvg/wincallb.c
  * contrib/gtwvg/wvgmenub.prg
  * contrib/gtwvg/wvgphdlr.prg
  * contrib/gtwvg/wvgcheck.prg
  * contrib/gtwvg/wvgstatb.prg
  * contrib/gtwvg/wvgstatc.prg
  * contrib/gtwvg/wvgcore.c
  * contrib/gtwvg/wvgtabpg.prg
  * contrib/gtwvg/wvg3stat.prg
  * contrib/gtwvg/wvgsink.c
  * contrib/gtwvg/wvgwing.c
  * contrib/hbmisc/hb_f.c
  * contrib/hbmisc/nconvert.prg
  * contrib/hbmisc/doc/en/ht_file.txt
  * contrib/hbvpdf/hbvpdf.prg
  * contrib/hbvpdf/hbvpdft.prg
  * examples/hbdoc/examples/core_es/memvar2.txt
  * examples/hbmake/hbmake.prg
  * examples/hbsqlit2/tests/hbsqlite.prg
  * examples/guestbk/testcgi.prg
  * examples/guestbk/guestbk.prg
  * examples/pe/editorhi.prg
  * examples/terminal/trm_cli.prg
  * examples/terminal/terminal.prg
  * examples/hscript/dir.hs
  * examples/hscript/ugly.hs
    * Minor formatting.
2009-07-11 05:46:08 +00:00

128 lines
3.3 KiB
Plaintext

/*
* $Id$
*/
/*
* File......: nwuid.prg
* Author....: Glenn Scott
* CIS ID....: 71620,1521
*
* This is an original work by Glenn Scott and is placed in the
* public domain.
*
* Modification history:
* ---------------------
*
* Rev 1.4 15 Aug 1991 23:04:10 GLENN
* Forest Belt proofread/edited/cleaned up doc
*
* Rev 1.3 14 Jun 1991 19:52:34 GLENN
* Minor edit to file header
*
* Rev 1.2 14 Jun 1991 04:31:30 GLENN
* Return value still needs to have nulls (chr(0)) removed. Put that back
* in.
*
* Rev 1.1 12 Jun 1991 02:25:22 GLENN
* Documentation correction and revision of ft_int86() call to account
* for Ted's new string passing conventions.
*
* Rev 1.0 01 Apr 1991 01:01:56 GLENN
* Nanforum Toolkit
*
*/
/* $DOC$
* $FUNCNAME$
* FT_NWUID()
* $CATEGORY$
* NetWare
* $ONELINER$
* Return the current Novell NetWare User ID
* $SYNTAX$
* FT_NWUID( [ <nConnection> ] ) -> cUid
* $ARGUMENTS$
* <nConnection> is a connection number, or logical station number,
* to find a userid for. Under NetWare 286, this number can be from
* 1 to 100. Under NetWare 386, 1-250. If not supplied, FT_NWUID()
* defaults to the current connection (i.e., the connection running
* the application).
* $RETURNS$
* A string containing the userid, or "login name."
* The maximum length of this string, as defined by current
* versions of Novell NetWare, is 48 characters.
* $DESCRIPTION$
* FT_NWUID() returns the current NetWare userid, or "login
* name." This is useful for implementing security or audit
* trail procedures within your programs.
*
* There is no simple way a user can "fool" this function into
* retrieving an incorrect value, provided a NetWare shell is loaded.
*
* This function requires FT_INT86() and FT_NWLSTAT()
*
* This function does NOT test for the existence of the NetWare shell.
* The behavior is undefined if no shell is loaded. You'll usually get
* garbage. This function has not been tested on NetWare 386.
* $EXAMPLES$
* QOut( "I am: " + FT_NWUID() )
*
* FOR x := 1 TO 100
* cUid := FT_NWUID( x )
* IF .NOT Empty( cUid )
* QOut( Str( x, 3 ) + Space(3) + cUid )
* ENDIF
* NEXT
* $END$
*/
#include "ftint86.ch"
#define DOS 33
#define NW_LOG 227
#ifdef FT_TEST
FUNCTION MAIN()
local x, cUid
QOut( "I am: [" + FT_NWUID() + "]" )
QOut( "---------------------" )
for x:= 1 to 100
cUid := FT_NWUID( x )
if .not. empty( cUid )
QOut( str( x, 3 ) + space(3) + cUid )
endif
next
RETURN NIL
#endif
FUNCTION FT_NWUID( nConn )
LOCAL aRegs[ INT86_MAX_REGS ], ;
cReqPkt, ;
cRepPkt
nConn := IIF( nConn == nil, FT_NWLSTAT(), nConn )
// Set up request packet
cReqPkt := chr( 22 ) // Function 22: Get Connection Information
cReqPkt += chr( nConn )
cReqPkt := i2bin( len( cReqPkt ) ) + cReqPkt
// Set up reply packet
cRepPkt := space(63)
// Assign registers
aRegs[ AX ] := MAKEHI( NW_LOG )
aRegs[ DS ] := cReqPkt
aRegs[ SI ] := REG_DS
aRegs[ ES ] := cRepPkt
aRegs[ DI ] := REG_ES
FT_INT86( DOS, aRegs )
RETURN alltrim( strtran( substr( aRegs[ ES ], 9, 48 ), chr(0) ) )