cdc:nos2.source:nam5871:nvftcrn
Table of Contents
NVFTCRN
Table Of Contents
- [00008] PROC NVFTCRN((PT),RNAME)
- [00009] NVFTCRN - CHECK FOR RESERVED APPLICATION NAME
- [00013] CHECK FOR RESERVED APPLICATION NAME.
- [00059] PROC NVFTETC
- [00060] PROC NVFTIAM
- [00061] PROC NVFTURL
- [00062] PROC NVFUMQE
Source Code
- NVFTCRN.txt
- *DECK NVFTCRN
- USETEXT TEXTNVF
- USETEXT TEXTSS
- USETEXT TXSMNVF
- USETEXT TXTANVF
- USETEXT TXTAPSS
- PROC NVFTCRN((PT),RNAME);
- # TITLE NVFTCRN - CHECK FOR RESERVED APPLICATION NAME #
- BEGIN # NVFTCRN #
- #
- ** NVFTCRN - CHECK FOR RESERVED APPLICATION NAME.
- *
- * E. THAVIKULWAT 81/10/29
- *
- * THIS PROCEDURE CHECKS FOR VOLUNTEERED RESERVED APPLICATION NAMES
- * OF "HELLO", "LOGIN", "BYE", OR "LOGOUT". IT IS CALLED INTO
- * EXECUTION BY THE FOLLOWING PROCEDURES:
- * *NVFTRVD* *NVFTVAA*
- *
- * PROC NVFTCRN((PT),RNAME)
- *
- * ENTRY:
- * PT = POINTER TO PTAC ENTRY.
- *
- * EXIT:
- * RNAME = NORESNAM$ IF NOT A RESERVED APPLICATION NAME.
- * = LOGIN$ IF NAME IS "LOGIN" OR "HELLO".
- * = LOGOUT$ IF NAME IS "LOGOUT" OR "BYE".
- *
- * NOTES:
- * IN THE CASE WHERE THERE IS A MANDATORY OR PRIMARY APPLICATION
- * SPECIFIED IN THE *LCF*, OR A IMPLIED MANDATORY APPLICATION
- * SPECIFIED IN THE *VALIDUS* FILE, AND A VOLUNTEERED RESERVED
- * APPLICATION NAME IS ENTERED, THE VOLUNTEERED RESERVED
- * APPLICATION NAME OVERRIDES THE *LCF* OR *VALIDUS* NAME.
- *
- * METHOD:
- * IF VOLUNTEERED APPLICATION NAME IS "HELLO" OR "LOGIN", ISSUE
- * *AEUN* ACCOUNT MESSAGE, DECREMENT FAMILY COUNT,
- * SEND OUT BANNER AND SYSTEM HEADER, AND SET STATE OF
- * TERMINAL TO AWAIT PROMPT. ALSO, IF MULTIPLE LOGINS ARE
- * PROHIBITED, REMOVE THE ENTRY FROM THE *RML* TABLE. IF THE
- * VOLUNTEERED APPLICATION NAME IS EITHER "BYE" OR "LOGOUT",
- * SEND THE LOGOUT MESSAGE AND CALL *NVFTETC* TO END THE TERMINAL
- * CONNECTION.
- * IF THE VOLUNTEERED APPLICATION NAME IS ANY OF THE ABOVE MENTIONED
- * RESERVED WORDS, SEND OUT A CTR/CHAR TO FORCE THE TERMINAL TO BE
- * IN NON-TRANSPARENT MODE.
- #
- #
- **** PROC NVFTCRN - XREF LIST.
- #
- XREF
- BEGIN
- PROC NVFTETC; # END TERMINAL CONNECTION #
- PROC NVFTIAM; # ISSUE ACCOUNTING MESSAGE #
- PROC NVFTURL; # UPDATE THE RESTRICT LOGIN TABLE #
- PROC NVFUMQE; # TRANSFER SM OR TEXT TO QUEUE #
- END
- #
- ****
- #
- DEF RCULO$ #22#; # USER LOGOUT REASON CODE #
- *CALL TMSGNVF
- *CALL TERMCLS
- ITEM ADDR I; # ADDRESSING INFORMATION FOR ABH #
- ITEM I I; # LOOP VARIABLE #
- ITEM LNGTH I; # LENGTH OF MESSAGE #
- ITEM PT I; # SUBSCRIPT FOR ARRAY PTAC #
- ITEM RNAME I; # RESERVED APPLICATION NAME INDICATOR #
- #
- * FOLLOWING ARRAY DEFINES THE RESERVED APPLICATION NAMES.
- #
- ARRAY RSVAPPL[00:03] S(1);
- BEGIN
- ITEM RAP$NAME C(00,00,07) = ["HELLO","LOGIN","BYE","LOGOUT"];
- END
- #
- * THE FOLLOWING BASED ARRAY IS FOR GENERAL PURPOSE USAGE
- #
- BASED ARRAY BPGEN[00:00] S(1);
- BEGIN
- ITEM BPG$WORD U(00,00,60); # FULL WORD REFERENCE #
- END
- RNAME = NORESNAM$;
- #
- * SEARCH RESERVED APPLICATION NAME TABLE FOR MATCH.
- #
- FOR I = 0 STEP 1 WHILE
- (RNAME EQ NORESNAM$) AND (I LS 4)
- DO
- BEGIN
- IF (RAP$NAME[I] EQ PTA$VLTAPP[PT])
- THEN # RESERVED APPLICATION NAME #
- BEGIN
- RNAME = LOGIN$; # INITIALIZE TO "LOGIN" FOUND #
- #
- * IF A RESERVED APPLICATION NAME WAS SPECIFIED ON AN INITIAL
- * LOAN, RETURN. A CR/RCN/A WILL BE SENT LATER.
- #
- IF PTA$LRC[PT] EQ RCRC"LSA"
- THEN
- BEGIN
- RETURN;
- END
- ADDR = PTA$ACN[PT];
- #
- * CHECK TERMINAL CLASS TO SEE IF NVF SHOULD SEND A CTR/CHAR.
- #
- GOTO TERMCLS [PTA$TC[PT]];
- SENDCTRCHAR:
- #
- * SEND CTR/CHAR TO FORCE TERMINAL TO BE IN NON-TRANSPARENT INPUT
- * MODE.
- #
- PFCSFC[1] = CTRCHAR;
- CTRSTR[1] = 0; # CLEAR REST OF WORD 0 #
- B<0,16>CTRSTR[1] = NOXPAR$; # ADD FN/FV PAIR FOR NON-XPARENT#
- NVFUMQE(P<CTQ>,APSM[1],APPPR$,ADDR,LCTRLO$); # TRANSFER TO Q #
- NOCTRCHAR:
- IF (I LS 2)
- THEN # NAME IS "HELLO" OR "LOGIN" #
- BEGIN
- #
- * ISSUE *AEUN* ACCOUNT MESSAGE, POINT BASE ARRAY TO OUTPUT
- * HALF OF *MSGBUF*, AND SET UP DECREMENT FAMILY COUNT
- * REQUEST.
- #
- NVFTIAM(PT,AEUN$); # ISSUE *AEUN* ACCOUNTING MSG #
- P<CRQBUF> = LOC(MSGBUF[0]) + ((NMSGBUF$ + 1) / 2);
- CRQ$FCWORD[0] = 0; # CLEAR CPM REQUEST BUFFER #
- CRQ$FWORD[0] = 0;
- CRQ$FC[0] = CPM73B$; # DECREMENT FAMILY COUNT #
- CRQ$ACN[0] = 0;
- CRQ$FNAM[0] = PTA$FNAM[PT]; # FAMILY NAME #
- LNGTH = CRQDSIZ$ * 10; # LENGTH OF REQUEST #
- NVFUMQE(P<CPMRQ>,CRQBUF[0],APPTTX$,0,LNGTH); # REQ TO Q #
- IF NOT PTA$CACA[PT]
- THEN # MULT CONCURRENT LOGINS PROHIB #
- NVFTURL(PT); # REMOVE ENTRY FROM *RML* TABLE #
- #
- * CLEAR APPROPRIATE FIELDS OF PTAC ENTRY TO REFLECT LOGIN
- * STATE.
- #
- P<BPGEN> = LOC(PTA$FWORD[PT]); # 1ST WRD OF VALIDATN DATA #
- FOR I = 0 STEP 1 UNTIL 9
- DO
- BEGIN
- BPG$WORD[I] = 0; # CLEAR VALIDATION DATA FIELDS #
- END
- P<BPGEN> = LOC(PTA$VDSAPP[PT]); # 1ST WRD AFTER AUTO DATA #
- FOR I = 0 STEP 1 UNTIL 4
- DO
- BEGIN
- BPG$WORD[I] = 0; # CLEAR FIELDS AFTER AUTO DATA #
- END
- P<BPGEN> = LOC(PTA$PID[PT]);
- BPG$WORD[0] = 0; # CLEAR THE PERSONAL ID FIELD #
- BPG$WORD[1] = 0;
- #
- * SEND OUT BANNER AND SET STATE OF TERMINAL TO AWAIT PROMPT.
- #
- NVFUMQE(P<CTQ>,CPRBUF,APPTTX$,ADDR,LMSG90$);
- BAN$DATE[0] = CTM$DATE[0];
- BAN$TIME[0] = CTM$CLOCK[0];
- BAN$TNAM[0] = PTA$TN[PT];
- NVFUMQE(P<CTQ>,BANBUF,APPTTX$,ADDR,LMSG30$);
- NVFUMQE(P<CTQ>,SYSHDR,APPTTX$,ADDR,LMSG70$);
- PTA$PROMPT[PT] = AWTFAM$; # SET TO AWAIT FAMILY #
- PTA$STATE[PT] = PTACST"AWTPRMT"; # SET TO AWAIT PROMPT #
- PTA$IUVF[PT] = TRUE; # SET TO INITIAL VALIDATION #
- END
- ELSE # NAME IS "BYE" OR "LOGOUT" #
- BEGIN
- #
- * APPLICATION NAME IS "BYE" OR "LOGOUT", SEND LOGGED OUT
- * MESSAGE AND END TERMINAL CONNECTION.
- #
- RNAME = LOGOUT$; # "BYE" OR "LOGOUT" FOUND #
- PTA$RC[PT] = RCULO$; # USER LOGOUT RC FOR CR/TRM SM #
- NVFUMQE(P<CTQ>,LOMBUF,APPTTX$,ADDR,LMSG20$); # TEXT TO Q #
- NVFTETC(PT); # END TERMINAL CONNECTION #
- END
- END
- END
- END # END NVFTCRN #
- TERM
cdc/nos2.source/nam5871/nvftcrn.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator