[613] | 1 | XUS1B ;ISCSF/RWF - Auto sign-on ;07/19/2005 15:25
|
---|
| 2 | ;;8.0;;**59,337,395**;Feb 14, 1997;Build 4
|
---|
| 3 | Q
|
---|
| 4 | ;
|
---|
| 5 | AUTOXUS() ;Do the check for XUS and Auto Sign-on
|
---|
| 6 | N %,Y
|
---|
| 7 | I $G(XQXFLG("ASO")) Q 0 ;Already tried once.
|
---|
| 8 | G AUTO
|
---|
| 9 | ;
|
---|
| 10 | AUTOXWB() ;Do the check for XWB and Auto Sign-on
|
---|
| 11 | N %,Y
|
---|
| 12 | I $G(XQXFLG("ASO")) Q 0 ;Already tried so skip.
|
---|
| 13 | AUTO ;Common code
|
---|
| 14 | I ($T(^XWBCAGNT)="")!($P(XOPT,U,18)="d") S XQXFLG("ZEBRA")=-1 Q 0 ;Disabled
|
---|
| 15 | S Y=$$CHKVIP^XUS1B(),%=0 I Y>0 S XQXFLG("ASO")=1,%=$$PREF($P(XOPT,U,18),$P($G(^VA(200,Y,200)),U,18))
|
---|
| 16 | I Y>0,'% S Y=0 ;No Auto signon
|
---|
| 17 | Q Y
|
---|
| 18 | ;
|
---|
| 19 | CHKVIP() ;Check for a Valid current IP
|
---|
| 20 | N REF,XREF,IEN,R0,ENV,JOB,HNDL
|
---|
| 21 | S IEN=0,ENV=$$ENV,REF=$G(IO("IP")) I $L(REF) D GETHNDL(.HNDL)
|
---|
| 22 | I $L(REF) D LKUP("AS1",$P(REF,":")) Q:IEN>0 IEN
|
---|
| 23 | ;Only use IP address for lookup
|
---|
| 24 | ;S REF=$G(IO("CLNM")) Q:REF["@" 0
|
---|
| 25 | ;S REF=$P(REF,":") I REF]"" D LKUP2 Q:IEN IEN I REF["." D LKUP("AS2",$P(REF,".")) Q:IEN IEN
|
---|
| 26 | ;S REF=$$LOW^XLFSTR(REF) I REF]"" D LKUP2 Q:IEN IEN I REF["." D LKUP("AS2",$P(REF,".")) Q:IEN IEN
|
---|
| 27 | Q 0
|
---|
| 28 | ;
|
---|
| 29 | LKUP2 ;See if we can find a workstation name
|
---|
| 30 | I $D(^XUSEC(0,"AS2",REF))>0 D LKUP("AS2",REF) Q:IEN
|
---|
| 31 | S XREF=$O(^XUSEC(0,"AS2",REF)) I XREF]"",$E(XREF,1,$L(REF))=REF D LKUP("AS2",XREF) Q:IEN
|
---|
| 32 | Q
|
---|
| 33 | LKUP(XREF,LK) ;Check one X-ref
|
---|
| 34 | S IX=0
|
---|
| 35 | F S IX=$O(^XUSEC(0,XREF,LK,IX)) Q:'$L(IX) D CHK Q:IEN>0
|
---|
| 36 | Q
|
---|
| 37 | CHK ;Could this be a good one.
|
---|
| 38 | N R0,R1,JOB
|
---|
| 39 | S R0=$G(^XUSEC(0,IX,0))
|
---|
| 40 | ;Check handle.
|
---|
| 41 | S R1=$P(R0,U,13) I R1]"",$D(HNDL(R1)) D Q:IEN>0
|
---|
| 42 | . L +^XWB("SESSION",IX_"~"_R1):0 I $T L -^XWB("SESSION",IX_"~"_R1) Q
|
---|
| 43 | . S IEN=+R0 Q ;Found a match
|
---|
| 44 | ;I $P(R0,U,5)'=$P(ENV,U,2) Q ;Make sure on the same VOL.
|
---|
| 45 | ;I $P(R0,U,10)'=$P(ENV,U,3) Q ;Check that on same NODE.
|
---|
| 46 | ;S JOB=$P(R0,U,3) I $D(^$JOB(JOB)),IX=+$G(^XUTL("XQ",JOB,0)) S IEN=+R0 Q ;Found a match
|
---|
| 47 | Q
|
---|
| 48 | ;
|
---|
| 49 | ENV() N Y D GETENV^%ZOSV Q Y
|
---|
| 50 | PREF(%1,%2) ;
|
---|
| 51 | Q $S(%2]"":%2,1:%1)
|
---|
| 52 | GETHNDL(RET) ;Get the Handles from the Client
|
---|
| 53 | N %,%1,X,XXX
|
---|
| 54 | ;I '$D(XWBUSRNM) Q ;JLI
|
---|
| 55 | S %=$$CMD^XWBCAGNT(.XXX,"XWB GET HANDLES") Q:'%
|
---|
| 56 | Q:'$O(XXX(0))
|
---|
| 57 | ;build array
|
---|
| 58 | S RET=0,%1=1 F %=1:1:$L(XXX(%1),"^") S X=$P(XXX(%1),"^",%) S:X]"" RET(X)="",RET=RET+1
|
---|
| 59 | Q
|
---|