User Tools

Site Tools


cdc:nos2.source:nam5871:nvftpuv

NVFTPUV

Table Of Contents

  • [00007] PROC NVFTPUV1)
  • [00008] NVFTPUV - PROCESS UNSUCCESSFUL VALIDATION
  • [00012] PROCESS UNSUCCESSFUL VALIDATION.
  • [00060] PROC NVFTETC
  • [00061] PROC NVFTILP
  • [00062] PROC NVFTIAM
  • [00063] PROC NVFUMQE
  • [00064] PROC NVFTRLC

Source Code

NVFTPUV.txt
  1. *DECK NVFTPUV
  2. USETEXT TEXTNVF
  3. USETEXT TEXTSS
  4. USETEXT TXTANVF
  5. USETEXT TXSMNVF
  6. USETEXT TXTAPSS
  7. PROC NVFTPUV((PT));
  8. # TITLE NVFTPUV - PROCESS UNSUCCESSFUL VALIDATION #
  9.  
  10. BEGIN # NVFTPUV #
  11. #
  12. ** NVFTPUV - PROCESS UNSUCCESSFUL VALIDATION.
  13. *
  14. * E. THAVIKULWAT 81/10/23
  15. * C. BRION 83/10/10
  16. *
  17. * THIS PROCEDURE'S MAIN FUNCTION IS TO ISSUE APPROPRIATE ERROR
  18. * MESSAGE AND DETERMINE WHETHER TERMINAL SHOULD BE PROMPTED AGAIN
  19. * UPON A UNSUCCESSFUL USER OR APPLICATION VALIDATION. IT IS CALLED
  20. * INTO EXECUTION BY THE FOLLOWING PROCEDURES:
  21. * *NVFTETI* *NVFTVAA* *NVFTVVD*
  22. *
  23. * PROC NVFTPUV((PT))
  24. *
  25. * ENTRY:
  26. * PT = POINTER TO PTAC ENTRY
  27. *
  28. * EXIT:
  29. * APPROPRIATE ERROR MESSAGE ISSUED TO THE TERMINAL.
  30. *
  31. * NOTES:
  32. * FOR UNSUCCESSFUL USER VALIDATION, NO FURTHER PROMPTS ARE
  33. * ISSUED IF ANY OF THE FOLLOWING IS TRUE:
  34. * 1) FAMILY AND USER ARE BOTH MANDATORY
  35. * 2) SECURITY COUNT EXHAUSTED
  36. * 3) USER NOT VALIDATED FOR ANY APPLICATION
  37. * 4) USER RETRY LIMIT EXCEEDED
  38. *
  39. * FOR UNSUCCESSFUL APPLICATION VALIDATION, NO FURTHER APPLICATION
  40. * PROMPT IS ISSUED IF ANY OF THE FOLLOWING IS TRUE:
  41. * 1) APPLICATION IS MANDATORY OR IMPLIED MANDATORY
  42. * 2) APPLICATION RETRY LIMIT EXCEEDED
  43. *
  44. * IF APPLICATION FAILED OR NETTED OFF WITH CONNECTIONS
  45. * OUTSTANDING, THE APPLICATION RETRY LIMIT IS INCREASED TO 25.
  46. *
  47. * METHOD:
  48. * INCREMENT APPROPRIATE RETRY COUNT BY 1. DETERMINE IF PROMPT
  49. * SHOULD BE REISSUED. IF NOT, SEND ERROR MESSAGE TO TERMINAL AND
  50. * CALL *NVFTETC* TO END TERMINAL CONNECTION. OTHERWISE, SEND
  51. * ERROR MESSAGE TO TERMINAL AND CALL *NVFTILP* TO REISSUE PROMPT.
  52. #
  53.  
  54. #
  55. **** PROC NVFTPUV - XREF LIST.
  56. #
  57.  
  58. XREF
  59. BEGIN
  60. PROC NVFTETC; # END TERMINAL CONNECTION #
  61. PROC NVFTILP; # ISSUE LOGIN PROMPT #
  62. PROC NVFTIAM; # ISSUE ACCOUNTING MESSAGES #
  63. PROC NVFUMQE; # TRANSFER TEXT TO QUEUE #
  64. PROC NVFTRLC; # REFUSE LOAN CONNECTION #
  65. END
  66.  
  67. #
  68. ****
  69. #
  70. DEF MAFTRY$ #25#; # MAX NUM OF APPL RETRIES IF APPL FAILED #
  71.  
  72. *CALL TMSGNVF
  73.  
  74. *CALL TERMCLS
  75.  
  76. ITEM ADDR I; # ADDRESSING INFORMATION FOR ABH #
  77. ITEM I I; # LOOP VARIABLE #
  78. ITEM LNGTH I; # LENGTH OF MESSAGE #
  79. ITEM MXAPTRY I; # VARIABLE FOR MAX NUM OF APPL RETRIES #
  80. ITEM PSUB I; # SUBSCRIPT FOR GOTO SWITCH #
  81. ITEM PT I; # SUBSCRIPT FOR ARRAY PTAC #
  82. ITEM SMOUT B; # SM TYPE RESPONSE FOR LOAN REQUEST #
  83.  
  84. #
  85. * THE FOLLOWING BASED ARRAY IS FOR GENERAL PURPOSE USAGE
  86. #
  87. BASED ARRAY BPGEN[00:00] S(1);
  88. BEGIN
  89. ITEM BPG$WORD U(00,00,60); # FULL WORD REFERENCE #
  90. ITEM BPG$NAME U(00,00,42); # REF NAME PORTION OF WORD #
  91. END
  92.  
  93. SWITCH PRMTSWT
  94. LLUNAPP, # LABEL FOR UNSUCCESSFUL APPLICATION #
  95. LLUNUSR, # LABEL FOR UNSUCCESSFUL PERSONAL ID #
  96. LLUNUSR, # LABEL FOR UNSUCCESSFUL PASSWORD #
  97. LLUNUSR, # LABEL FOR UNSUCCESSFUL USER/PASSWORD #
  98. LLUNUSR; # LABEL FOR UNSUCCESSFUL FAMILY/USER/PW #
  99.  
  100. ADDR = PTA$ACN[PT]; # APPLICATION CONNECTION NUMBER #
  101. PSUB = PTA$PROMPT[PT] - 1; # OFFSET TO BEGIN WITH 0 #
  102. GOTO PRMTSWT[PSUB]; # BRANCH TO APPROPRIATE LABEL #
  103.  
  104. LLUNUSR: # UNSUCCESSFUL USER VALIDATION PROCESSING #
  105. NVFTIAM(PT, ABER$); # ISSUE "ABER" ACCOUNTING MSG #
  106. PTA$USERCT[PT] = PTA$USERCT[PT] + 1; # INCREMENT USER RETRY CNT #
  107.  
  108. IF PTA$LRC[PT] EQ RCRC"LSA"
  109. THEN
  110. BEGIN
  111. #
  112. * LOAN REQUEST TYPE OF CONNECTION. RETURN TO PRIMARY APPLICATION
  113. * WITH CR/RCN/A SM.
  114. #
  115. SMOUT = TRUE;
  116. PTA$LRC[PT] = RCRC"UVS";
  117. NVFTRLC(PT,SMOUT,PTA$LRC[PT]);
  118. RETURN;
  119. END
  120.  
  121. #
  122. * IF USER VALIDATION WAS UNSUCCESSFUL DUE TO ERROR IN RESPONSE TO A
  123. * PROMPT (I.E., NAME TOO LONG), THE CPM VALIDATE REQUEST (56B)
  124. * INDICATES AN INVALID LOGIN CONDITION, OR THE PERSONAL IDENTIFIER
  125. * ENTERED IS INVALID, THEN FURTHER CHECKING IS NEEDED TO
  126. * DETERMINE WHETHER TERMINAL SHOULD BE PROMPTED AGAIN. IF USER
  127. * VALIDATION WAS UNSUCCESSFUL DUE TO SECURITY COUNT EXHAUSTED OR NO
  128. * APPLICATION DEFINED FOR THIS USER, NO FURTHER PROMPTS ARE ISSUED
  129. * AND THE CONNECTION IS TERMINATED.
  130. #
  131. IF (PTA$INVLF[PT]) OR (PTA$INVPID[PT])
  132. THEN # ERROR IN RSP TO PROMPT OR INVALID LOGIN #
  133. BEGIN
  134. IF (PTA$FAMIND[PT] EQ MNDATRY$ AND PTA$USRIND[PT] EQ MNDATRY$)
  135. OR (PTA$USERCT[PT] GQ LLVAL)
  136. THEN # NO MORE PROMPT CAN BE ISSUED #
  137. BEGIN # SET BASED ARRAY TO ERROR MSG #
  138. IF (PTA$USERCT[PT] GQ LLVAL)
  139. THEN # EXCEEDED LOGIN RETRY LIMIT #
  140. BEGIN
  141. P<BPGEN> = LOC(URLBUF[0]); # USER RETRY LIMIT MESSAGE #
  142. LNGTH = LMSG20$; # LENGTH OF MESSAGE #
  143. END
  144. ELSE # ILLEGAL MANDATORY FAM AND USR #
  145. BEGIN
  146. P<BPGEN> = LOC(LNPBUF[0]); # LOGIN NOT POSSIBLE MESSAGE #
  147. LNGTH = LMSG50$; # LENGTH OF MESAGE #
  148. END
  149.  
  150. END
  151. ELSE # REISSUE FAMILY/USER PROMPT #
  152. BEGIN
  153. P<BPGEN> = LOC(ILMBUF[0]); # IMPROPER LOGIN MESSAGE #
  154. LNGTH = LMSG30$; # LENGTH OF MESSAGE #
  155. NVFUMQE(P<CTQ>,BPGEN[0],APPTTX$,ADDR,LNGTH); # MESSAGE TO Q #
  156. #
  157. * IF THE LOGIN WAS UNSUCCESSFUL DUE TO AN INVALID PERSONAL ID
  158. * DECREMENT THE FAMILY COUNT.
  159. #
  160. IF PTA$INVPID[PT]
  161. THEN
  162. BEGIN
  163. P<CRQBUF> = LOC(MSGBUF[0]) + ((NMSGBUF$ + 1) / 2);
  164. CRQ$FCWORD[0] = 0; # CLEAR CPM REQUEST BUFFER #
  165. CRQ$FWORD[0] = 0;
  166.  
  167. CRQ$FC[0] = CPM73B$; # DECREMENT FAMILY COUNT #
  168. CRQ$ACN[0] = 0;
  169. CRQ$FNAM[0] = PTA$FNAM[PT];
  170.  
  171. LNGTH = CRQDSIZ$ * 10;
  172. NVFUMQE(P<CPMRQ>,CRQBUF[0],APPTTX$,0,LNGTH);
  173. END
  174. #
  175. * SET PROMPT STATE TO AWAIT FAMILY PROMPT AND CLEAR APPROPIATE
  176. * FIELDS OF PTAC ENTRY.
  177. #
  178. PTA$PROMPT[PT] = AWTFAM$; # SET TO AWAIT FAMILY PROMPT #
  179. P<BPGEN> = LOC(PTA$FWORD[PT]); # 1ST WORD OF VALIDATION DATA#
  180. FOR I = 0 STEP 1 UNTIL 9
  181. DO
  182. BEGIN
  183. BPG$WORD[I] = 0; # CLEAR VALIDATION DATA FIELDS #
  184. END
  185.  
  186. P<BPGEN> = LOC(PTA$VLTFAM[PT]); # 1ST WORD OF VLTEERED INFO #
  187. FOR I = 0 STEP 1 UNTIL 3
  188. DO
  189. BEGIN
  190. BPG$NAME[I] = 0; # CLEAR VOLUNTEERED NAME FIELDS #
  191. END
  192.  
  193. P<BPGEN> = LOC(PTA$PID[PT]); # CLEAR PERSONAL ID FIELD #
  194. BPG$WORD[0] = 0;
  195. BPG$WORD[1] = 0;
  196. PTA$VLTF[PT] = 0; # CLEAR ALL VOLUNTEERED FLAGS #
  197. PTA$INVAF[PT] = FALSE; # CLEAR INVALID APPL FLAG #
  198. PTA$INVPID[PT] = FALSE; # CLEAR INVALID PERSONAL ID FLAG#
  199. PTA$PWEXPF[PT] = FALSE; # CLEAR PW EXPIRE MESSAGE #
  200. NVFTILP(PT); # ISSUE FAMILY/USER PROMPT #
  201. RETURN; # EXIT #
  202. END
  203. END
  204. ELSE # SECURITY COUNT EXHAUSTED OR NO APPL #
  205. BEGIN # SET BASED ARRAY TO ERROR MSG #
  206. LNGTH = LMSG60$; # LENGTH OF MESSAGE #
  207. P<BPGEN> = LOC(UANPBUF[0]); # ILLEGAL USER ACCESS MESSAGE #
  208. PTA$CACA[PT] = TRUE; # DON'T SEARCH *RML* TABLE #
  209. END
  210.  
  211. #
  212. * NO FURTHER PROMPTS ARE TO BE ISSUED. SEND ERROR MESSAGE THAT
  213. * WAS PREVIOUSLY SET UP TO TERMINAL. SET BASED ARRAY TO "LOGIN
  214. * TERMINATED" MESSAGE AND PROCEED TO COMMON CODE TO END TERMINAL
  215. * CONNECTION.
  216. #
  217. NVFUMQE(P<CTQ>,BPGEN[0],APPTTX$,ADDR,LNGTH); # MESSAGE TO QUEUE #
  218. P<BPGEN> = LOC(LTMBUF[0]);
  219. GOTO ENDSWT;
  220.  
  221. LLUNAPP: # UNSUCCESSFUL APPL VALIDATION PROCESSING #
  222. PTA$APPLCT[PT] = PTA$APPLCT[PT] + 1; # INCREMENT APPL RETRY CNT #
  223. #
  224. * IF APPLICATION VALIDATION WAS UNSUCCESSFUL DUE TO APPLICATION
  225. * FAILED CONDITION, THE APPLICATION RETRY LIMIT IS INCREASED TO
  226. * 25.
  227. #
  228. MXAPTRY = LLVAL; # NORMAL APPL RETRY LIMIT #
  229. IF (PTA$AFF[PT])
  230. THEN # APPLICATION FAILED #
  231. BEGIN
  232. MXAPTRY = MAFTRY$; # APPL FAILED RETRY LIMIT #
  233. END
  234.  
  235. IF PTA$LRC[PT] EQ RCRC"LSA"
  236. THEN
  237. BEGIN
  238. #
  239. * LOAN REQUEST TYPE OF CONNECTION. RETURN TO PRIMARY APPLICATION
  240. * WITH CR/RCN/A SM.
  241. #
  242. SMOUT = TRUE;
  243. PTA$LRC[PT] = RCRC"UVS";
  244. NVFTRLC(PT,SMOUT,PTA$LRC[PT]);
  245. RETURN;
  246. END
  247.  
  248. #
  249. * DETERMINE WHETHER TERMINAL USER SHOULD BE PROMPTED AGAIN FOR
  250. * APPLICATION NAME.
  251. #
  252. IF (PTA$APPIND[PT] EQ MNDATRY$) OR (PTA$VDSF[PT])
  253. OR (PTA$APPLCT[PT] GQ MXAPTRY)
  254. THEN # NO MORE PROMPT CAN BE ISSUED #
  255. BEGIN # SET BASED ARRAY TO ERROR MSG #
  256. IF (PTA$APPLCT[PT] GQ MXAPTRY)
  257. THEN # EXCEEDED APPL RETRY LIMIT #
  258. BEGIN
  259. P<BPGEN> = LOC(ARLBUF[0]); # APPL RETRY LIMIT MESSAGE #
  260. LNGTH = LMSG30$; # LENGTH OF MESSAGE #
  261. END
  262. ELSE # ILLEGAL MANDATORY/IMPLIED MANDATORY APP #
  263. BEGIN
  264. P<BPGEN> = LOC(UANPBUF[0]); # USER ACCESS NOT POSSIBLE MSG #
  265. LNGTH = LMSG60$; # LENGTH OF MESSAGE #
  266. END
  267. #
  268. * NO FURTHER PROMPTS ARE TO BE ISSUED. CHECK TERMINAL CLASS TO
  269. * SEE IF NVF SHOULD SEND A CTR/CHAR.
  270. #
  271. GOTO TERMCLS [PTA$TC[PT]];
  272.  
  273. SENDCTRCHAR:
  274.  
  275. #
  276. * SEND CTR/CHAR TO FORCE TERMINAL TO BE IN NON-TRANSPARENT INPUT
  277. * MODE.
  278. #
  279. PFCSFC[1] = CTRCHAR;
  280. CTRSTR[1] = 0; # CLEAR REST OF WORD 0 #
  281. B<0,16>CTRSTR[1] = NOXPAR$; # ADD FN/FV PAIR FOR NON-XPARENT#
  282. NVFUMQE(P<CTQ>,APSM[1],APPPR$,ADDR,LCTRLO$); # TRANSFER TO Q #
  283.  
  284. NOCTRCHAR:
  285.  
  286. #
  287. * SEND ERROR MESSAGE THAT WAS PREVIOUSLY SET UP TO THE TERMINAL.
  288. * SET BASED ARRAY TO "LOGGED OUT" MESSAGE AND PROCEED TO COMMON
  289. * CODE TO END TERMINAL CONNECTION.
  290. #
  291. NVFUMQE(P<CTQ>,BPGEN[0],APPTTX$,ADDR,LNGTH); # MESSAGE TO Q #
  292. P<BPGEN> = LOC(LOMBUF[0]); # LOGGED OUT MESSAGE #
  293. GOTO ENDSWT;
  294. END
  295. ELSE # REISSUE APPLICATION PROMPT #
  296. BEGIN
  297. P<BPGEN> = LOC(IAMBUF[0]); # ILLEGAL APPLICATION MESSAGE #
  298. LNGTH = LMSG40$; # LENGTH OF MESSAGE #
  299. NVFUMQE(P<CTQ>,BPGEN[0],APPTTX$,ADDR,LNGTH); # MESSAGE TO Q #
  300. #
  301. * CLEAR APPROPRIATE FIELDS OF PTAC ENTRY AND CALL *NVFTILP* TO
  302. * REISSUE APPLICATION PROMPT.
  303. #
  304. PTA$AWORD[PT] = 0; # CLEAR SWITCH APPLICATION WORD #
  305. PTA$VAF[PT] = FALSE; # CLEAR VOLUNTEERED APPL FLAG #
  306. PTA$VAWORD[PT] = 0; # CLEAR VOLUNTEERED APPL WORD #
  307. NVFTILP(PT); # ISSUE APPLICATION PROMPT #
  308. RETURN; # EXIT #
  309. END
  310.  
  311. ENDSWT: # COMMON END PROCESSING #
  312. #
  313. * NO FURTHER PROMPTS ARE TO BE ISSUED. SEND MESSAGE THAT WAS SET
  314. * UP PREVIOUSLY TO THE TERMINAL AND CALL *NVFTETC* TO END TERMINAL
  315. * CONNECTION.
  316. #
  317. LNGTH = LMSG20$; # COMMON LENGTH OF TRM MESSAGE #
  318. NVFUMQE(P<CTQ>,BPGEN[0],APPTTX$,ADDR,LNGTH); # MESSAGE TO QUEUE #
  319. NVFTETC(PT); # END TERMINAL CONNECTION #
  320.  
  321. END # END NVFTPUV #
  322.  
  323. TERM
1)
PT
cdc/nos2.source/nam5871/nvftpuv.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator