User Tools

Site Tools


cdc:nos2.source:nam5871:nvftilp

NVFTILP

Table Of Contents

  • [00007] PROC NVFTILP1)
  • [00008] NVFTILP - ISSUE LOGIN PROMPTS
  • [00012] ISSUE LOGIN PROMPTS.
  • [00076] PROC NVFTPVR
  • [00077] PROC NVFUMQE
  • [00078] PROC SSBSBF
  • [00079] PROC SSCATR
  • [00080] PROC SSTAQE
  • [00102] TRBBUF - TIMER REQUEST BUFFER.

Source Code

NVFTILP.txt
  1. *DECK NVFTILP
  2. USETEXT TEXTNVF
  3. USETEXT TEXTSS
  4. USETEXT TXTANVF
  5. USETEXT TXTAPSS
  6.  
  7. PROC NVFTILP((PT));
  8. # TITLE NVFTILP - ISSUE LOGIN PROMPTS #
  9.  
  10. BEGIN # NVFTILP #
  11. #
  12. ** NVFTILP - ISSUE LOGIN PROMPTS.
  13. *
  14. * E. THAVIKULWAT 81/09/02
  15. *
  16. * THIS PROCEDURE'S MAIN FUNCTION IS TO DETERMINE THE APPROPRIATE
  17. * LOGIN PROMPT TO ISSUE TO THE TERMINAL. IT IS CALLED INTO
  18. * EXECUTION BY THE FOLLOWING PROCEDURES:
  19. * *NVFTBRK* *NVFTDSP* *NVFTETI* *NVFTITE* *NVFTPSV*
  20. * *NVFTPUV* *NVFTRCN* *NVFTRVD* *NVFTTCD* *NVFTVAA*
  21. * *NVFTVVD*
  22. *
  23. * PROC NVFTILP((PT))
  24. *
  25. * ENTRY:
  26. * PT = POINTER TO PTAC ENTRY.
  27. * PTA$PROMPT FIELD OF PTAC ENTRY CONTAINS THE PROMPT TO ISSUE.
  28. *
  29. * EXIT:
  30. * APPROPRIATE PROMPT ISSUED TO TERMINAL.
  31. *
  32. * METHOD:
  33. * FAMILY - IF FAMILY AND USER ARE BOTH MANDATORY, PROCEED TO
  34. * VALIDATE THE USER.
  35. * IF ONLY FAMILY IS MANDATORY, THEN ISSUE USER PROMPT
  36. * INSTEAD.
  37. * IF FAMILY IS NOT MANDATORY, ISSUE FAMILY PROMPT.
  38. *
  39. * USER - IF USER IS MANDATORY, PROCEED TO VALIDATE THE USER.
  40. * IF USER IS NOT MANDATORY, ISSUE USER PROMPT.
  41. *
  42. * PASSWORD - TERMINAL WOULD BE SET TO AWAITING PASSWORD PROMPT
  43. * ONLY IF:
  44. * 1) USER NAME WAS ENTERED IN RESPOND TO A USER
  45. * PROMPT.
  46. * 2) USER NAME WAS ENTERED IN AN ABBREVIATED FORMAT
  47. * FOLLOWING A FAMILY PROMPT.
  48. * FOR CASE 1, PROCEED TO ISSUE PASSWORD PROMPT.
  49. * FOR CASE 2, IF AUTOLOGIN TYPE FOR USER IS DEFAULT
  50. * AND "NULL" VALUE ENTERED OR USER TYPE IS MANDATORY,
  51. * PROCEED TO VALIDATE THE USER. OTHERWISE, ISSUE
  52. * PASSWORD PROMPT.
  53. *
  54. * PID - THE TERMINAL WOULD BE SET TO AWAITING PERSONAL ID
  55. * PROMPT ONLY IF THE FAMILY AND USER HAVE SUCCESSFULLY
  56. * BEEN VALIDATED, THE USER IS REQUIRED TO ENTER A
  57. * PERSONAL ID, AND THE PERSONAL ID HAS NOT PREVIOUSLY
  58. * BEEN ENTERED. IF THE USER IS REQUIRED TO ENTER THE
  59. * PID, IT WILL BE REQUESTED EVEN IF THE PASSWORD IS IN
  60. * ERROR.
  61. *
  62. * APPL - IF APPLICATION IS MANDATORY, SET STATE OF TERMINAL
  63. * TO AWAIT VALIDATE APPLICATION ACCESS.
  64. * IF APPLICATION IS PRIMARY, CHANGE APPLICATION TO TYPE
  65. * DEFAULT SO THAT SUBSEQUENT ATTEMPTS WILL ALWAYS
  66. * SOLICITE APPLICATION PROMPT AND SET STATE OF TERMINAL
  67. * TO AWAIT VALIDATE APPLICATION ACCESS.
  68. #
  69.  
  70. #
  71. **** PROC NVFTILP - XREF LIST.
  72. #
  73.  
  74. XREF
  75. BEGIN
  76. PROC NVFTPVR; # PREPARE VALIDATE USER REQUEST #
  77. PROC NVFUMQE; # TRANSFER SM OR TEXT TO QUEUE #
  78. PROC SSBSBF; # STORE BITFIELD IN TABLE #
  79. PROC SSCATR; # ACCEPT TIMER REQUEST #
  80. PROC SSTAQE; # ACCEPT QUEUE ENTRY #
  81. END
  82.  
  83. #
  84. ****
  85. #
  86. DEF DTIME$ #120#; # DELAY TIME IN SECONDS FOR A RESPONSE #
  87. DEF EPOFF$ #X"45503D4E"#; # HEX CODE FOR "EP=N" #
  88. DEF TRBSIZ$ #4#; # NUMBER OF WORDS IN TIMER REQUEST BLOCK #
  89.  
  90. *CALL TMSGNVF
  91.  
  92. ITEM EPWD I; # CTRL/DEF ECHOPLEX WORD POSITION #
  93. ITEM EPBIT I; # CTRL/DEF ECHOPLEX BIT POSITION #
  94. ITEM LNGTH I; # LENGTH OF MESSAGE #
  95. ITEM PSUB I; # SUBSCRIPT FOR GOTO SWITCH #
  96. ITEM PT I; # SUBSCRIPT FOR ARRAY PTAC #
  97. ITEM PTIND I; # AUTOLOGIN TYPE INDICATOR VARIABLE #
  98. ITEM PTPRMT I; # PROMPT INDICATOR VARIABLE #
  99. ITEM PTTC I; # TERMINAL CLASS VARIABLE #
  100.  
  101. #
  102. ** TRBBUF - TIMER REQUEST BUFFER.
  103. *
  104. * BUFFER CONTAINING TIMER INFORMATION. BUFFER IS SET UP TO CONTAIN
  105. * FC/INACT SM WHICH IS TO BE RETURNED TO *TAINPQ* QUEUE SHOULD THE
  106. * TIMER EXPIRE.
  107. #
  108. ARRAY TRBBUF[00:00] S(TRBSIZ$);
  109. BEGIN
  110. ITEM TRB$SMID S:CTQSTAT(00,00,12) = [S"SINA"]; # INTERNAL ID#
  111. ITEM TRB$WC U(00,48,12) = [TRBSIZ$]; # ENTRY-SIZE #
  112. ITEM TRB$ABT U(01,00,06) = [APPCMD]; # APPL BLOCK TYPE #
  113. ITEM TRB$CNUM U(01,18,18); # CANCELLATION NUMBER #
  114. ITEM TRB$PFCSFC U(02,00,16) = [FCINA]; # FC/INACT PFCSFC #
  115. ITEM TRB$ACN U(02,24,12); # APPLICATION CONNECTION NUMBER #
  116. ITEM TRB$DELAY U(03,24,18) = [DTIME$]; # DELAY TIME IN SEC #
  117. ITEM TRB$QNUM U(03,42,18); # Q NUM FOR TIMER EXPIRED MSG #
  118. END
  119.  
  120. #
  121. * THE FOLLOWING BASED ARRAY IS FOR GENERAL PURPOSE USAGE
  122. #
  123. BASED ARRAY BPGEN[00:00] S(1);
  124. BEGIN
  125. ITEM BPG$WORD U(00,00,60); # FULL WORD REFERENCE #
  126. END
  127.  
  128. SWITCH PRMTSWT
  129. LLAPPL, # LABEL FOR APPLICATION PROMPT #
  130. LLPRID, # LABEL FOR PERSONAL IDENTIFIER PROMPT #
  131. LLPWRD, # LABEL FOR PASSWORD PROMPT #
  132. LLUSER, # LABEL FOR USER PROMPT #
  133. LLFAM; # LABEL FOR FAMILY PROMPT #
  134.  
  135. IF NOT PTA$ALIF[PT]
  136. THEN # NO AUTOLOGIN DATA #
  137. BEGIN
  138. GOTO ENDPRMT; # ISSUE APPROPRIATE PROMPT #
  139. END
  140. #
  141. * CHECK FOR AUTOLOGIN DATA. PASSWORD PROMPT IS NOT ISSUED IF USER
  142. * NAME WAS OBTAINED FROM THE *LCF* (I.E., USER IS MANDATORY OR USER
  143. * IS DEFAULT AND "NULL" VALUE RECEIVED).
  144. #
  145. PSUB = PTA$PROMPT[PT] - 1;
  146. GOTO PRMTSWT[PSUB];
  147.  
  148. LLFAM: # AWAITING FAMILY PROMPT #
  149. PTIND = PTA$FAMIND[PT];
  150. IF (PTIND EQ MNDATRY$ OR PTIND EQ PRIMARY$) AND
  151. (PTA$USRIND[PT] EQ MNDATRY$ OR PTA$USRIND[PT] EQ PRIMARY$)
  152. THEN # PRIMARY/MANDATORY FAMILY AND USER, #
  153. BEGIN # PROCEED TO VALIDATE USER #
  154. NVFTPVR(PT); # PREPARE VALIDATE USER REQUEST #
  155. RETURN; # EXIT #
  156. END
  157.  
  158. IF PTIND EQ MNDATRY$ OR
  159. PTIND EQ PRIMARY$
  160. THEN # PRIMARY/MANDATORY FAMILY ONLY #
  161. BEGIN
  162. PTA$PROMPT[PT] = AWTUSR$; # CHANGE TO ISSUE USER PROMPT #
  163. END
  164.  
  165. GOTO ENDPRMT; # ISSUE APPROPRIATE PROMPT #
  166.  
  167. LLUSER: # AWAITING USER PROMPT #
  168. IF PTA$USRIND[PT] EQ MNDATRY$ OR
  169. PTA$USRIND[PT] EQ PRIMARY$
  170. THEN # PRIMARY/MANDATORY USER, #
  171. BEGIN # PROCEED TO VALIDATE USER #
  172. NVFTPVR(PT); # PREPARE VALIDATE USER REQUEST #
  173. RETURN; # EXIT #
  174. END
  175.  
  176. GOTO ENDPRMT; # ISSUE APPROPRIATE PROMPT #
  177.  
  178. LLPWRD: # AWAITING PASSWORD PROMPT #
  179. PTIND = PTA$USRIND[PT];
  180. IF (PTIND EQ MNDATRY$)
  181. OR ((PTIND EQ DEFAULT$) AND (PTA$VLTUSR[PT] EQ NULL$))
  182. THEN # MANDATORY/DEFAULT USER SPECIFIED IN THE #
  183. BEGIN # LCF, BUT USER ENTERED IN ABBRE FORMAT #
  184. NVFTPVR(PT); # PREPARE VALIDATE USER REQUEST #
  185. RETURN; # EXIT #
  186. END
  187.  
  188. GOTO ENDPRMT; # ISSUE APPROPRIATE PROMPT #
  189.  
  190. LLAPPL: # AWAITING APPLICATION PROMPT #
  191. PTIND = PTA$APPIND[PT];
  192. IF (PTIND EQ MNDATRY$) OR (PTIND EQ PRIMARY$)
  193. THEN # MANDATORY/PRIMARY APPLICATION #
  194. BEGIN
  195. IF PTIND EQ PRIMARY$
  196. THEN # PRIMARY APPLICATION SPECIFIED #
  197. BEGIN # CHANGE TYPE TO DEFAULT SO #
  198. PTA$APPIND[PT] = DEFAULT$; # THAT SUBSEQUENT ATTEMPTS #
  199. END # WILL SOLICITE APPL PROMPT #
  200. PTA$STATE[PT] = PTACST"AWTVAA"; # SET TO AWAIT APPL ACCESS #
  201. RETURN; # EXIT #
  202. END
  203.  
  204. GOTO ENDPRMT; # ISSUE APPROPRIATE PROMPT #
  205.  
  206. LLPRID:
  207. ENDPRMT: # COMMON END PROCESSING #
  208. PTPRMT = PTA$PROMPT[PT];
  209. ABHWORD[1] = 0;
  210. LNGTH = LMSG20$; # PRESET LENGTH OF PROMPT #
  211. IF PTPRMT NQ AWTPWD$
  212. THEN # FAMILY/USER/APPL PROMPT #
  213. BEGIN
  214. IF PTPRMT EQ AWTFAM$
  215. THEN # FAMILY PROMPT #
  216. BEGIN
  217. P<BPGEN> = LOC(FAMBUF[0]);
  218. END
  219. ELSE
  220. BEGIN
  221. IF PTPRMT EQ AWTUSR$
  222. THEN # USER PROMPT #
  223. BEGIN
  224. P<BPGEN> = LOC(USRBUF[0]);
  225. END
  226. ELSE # APPLICATION PROMPT #
  227. BEGIN
  228. IF PTPRMT EQ AWTPID$
  229. THEN
  230. BEGIN
  231. P<BPGEN> = LOC(PIDBUF[0]);
  232. END
  233. ELSE
  234. BEGIN
  235. APP$TNAME = PTA$TN[PT];
  236. P<BPGEN> = LOC(APPBUF[0]);
  237. LNGTH = LMSG30$;
  238. END
  239. END
  240. END
  241. END
  242. ELSE # PASSWORD PROMPT #
  243. BEGIN
  244. P<BPGEN> = LOC(PWRDBLK[0]);
  245. PTTC = PTA$TC[PT];
  246. IF (PTTC EQ TCM33$ OR PTTC EQ TC2741$ OR PTTC EQ TCT4014$)
  247. THEN # PASSWORD BLANKING REQUIRED #
  248. BEGIN
  249. LNGTH = LMSG90$;
  250. END
  251. ABHCAN[1] = 1; # SET NON-ECHOED FLAG #
  252. END
  253. #
  254. * SEND PROMPT AND START NVF'S 2 MINUTE TIMER RUNNING.
  255. #
  256. WCB$WORD[1] = LNGTH / 10 + 2;
  257. ABHABT[1] = APPPTX$;
  258. ABHADR[1] = PTA$ACN[PT];
  259. ABHACT[1] = CT6DISPLAY;
  260. ABHTLC[1] = LNGTH;
  261. IF PTPRMT GQ AWTPWD$ # IF PASSWORD HAS NOT BEEN RECIEVED, #
  262. THEN # KEEP CURSOR STAY ON THE SAME LINE IN #
  263. BEGIN # ORDER TO FACILITATE THE OVERMASKING #
  264. ABHNCP[1] = 1; # OF THE LINE WITH THE PASSWORD. #
  265. END
  266.  
  267. SSTAQE(P<CTQ>,WCBUF[1],ABH[1],BPGEN[0]); # PROMPT TO QUEUE #
  268.  
  269. TRB$ACN = PTA$ACN[PT]; # APPLICATION CONNECTION NUMBER #
  270. TRB$QNUM = LOC(P<TAINPQ>); # RETURN TIMR EXP MSG TO TAINPQ #
  271. SSCATR(TRBBUF[0]); # ISSUE TIMER REQUEST #
  272. PTA$CNUM[PT] = TRB$CNUM[0]; # SAVE CANCELLATION NUMBER #
  273. PTA$STATE[PT] = PTACST"AWTRSP"; # SET TERM STATE TO AWAIT RSP #
  274.  
  275. END # END NVFTILP #
  276.  
  277. TERM
1)
PT
cdc/nos2.source/nam5871/nvftilp.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator