User Tools

Site Tools


cdc:nos2.source:nam5871:nvftpsv

NVFTPSV

Table Of Contents

  • [00007] PROC NVFTPSV1)
  • [00008] NVFTPSV - PROCESS SUCCESSFUL VALIDATION
  • [00012] PROCESS SUCCESSFUL VALIDATION.
  • [00056] PROC NVFTDAD
  • [00057] PROC NVFTDSP
  • [00058] PROC NVFTIAM
  • [00059] PROC NVFTILP
  • [00060] PROC NVFUMQE
  • [00061] PROC SSTAQE
  • [00062] PROC SSTETS

Source Code

NVFTPSV.txt
  1. *DECK NVFTPSV
  2. USETEXT TEXTNVF
  3. USETEXT TEXTSS
  4. USETEXT TXTANVF
  5. USETEXT TXTAPSS
  6. USETEXT TXSMNVF
  7. PROC NVFTPSV((PT));
  8. # TITLE NVFTPSV - PROCESS SUCCESSFUL VALIDATION #
  9.  
  10. BEGIN # NVFTPSV #
  11. #
  12. ** NVFTPSV - PROCESS SUCCESSFUL VALIDATION.
  13. *
  14. * E. THAVIKULWAT 81/10/19
  15. *
  16. * THIS PROCEDURE'S MAIN FUNCTION IS TO UPDATE *PTAC* ENTRY UPON A
  17. * SUCCESSFUL USER OR APPLICATION VALIDATION. IT IS CALLED INTO
  18. * EXECUTION BY THE FOLLOWING PROCEDURES:
  19. * *NVFTETI* *NVFTVAA* *NVFTVVD*
  20. *
  21. * PROC NVFTPSV((PT))
  22. *
  23. * ENTRY:
  24. * PT = POINTER TO *PTAC* ENTRY
  25. *
  26. * EXIT:
  27. * *PTAC* TABLE UPDATED TO REFLECT SUCCESSFUL USER OR APPLICATION
  28. * VALIDATION.
  29. *
  30. * NOTES:
  31. * INCREMENT FAMILY COUNT IS SET ONLY FOR INITIAL USER VALIDATION.
  32. * USER VALIDATION DUE TO A CR/RCN REQUEST IS NOT CONSIDERED
  33. * INITIAL AND FAMILY COUNT IS NOT INCREMENTED.
  34. *
  35. * METHOD:
  36. * FOR APPLICATION VALIDATION, CALL *NVFTDSP* TO DETERMINE IF
  37. * SWITCH IS POSSIBLE. FOR INITIAL USER VALIDATION, CALL *NVFTIAM*
  38. *TEXT
  39. * TO ISSUE *ABUN* AND *ABIC* ACCOUNT MESSAGE, AND
  40. * DETERMINE IF THERE IS AN IMPLIED MANDATORY
  41. * APPLICATION FROM THE *VALIDUS* FILE. IF THERE
  42. *ENDTEXT
  43. * IS AN IMPLIED MANDATORY APPLICATION, SET STATE OF TERMINAL TO
  44. * AWAIT VALIDATE APPLICATION ACCESS. OTHERWISE, CALL *NVFTILP* TO
  45. * ISSUE APPLICATION PROMPT. ON AN INTIAL LOGIN IF THE USER IS
  46. * NOT ALLOWED MULTIPLE CONCURRENT LOGINS, CREATE AN ENTRY IN THE
  47. * *RML* TABLE INORDER TO RESTRICT THE USER.
  48. #
  49.  
  50. #
  51. **** PROC NVFTPSV - XREF LIST.
  52. #
  53.  
  54. XREF
  55. BEGIN
  56. PROC NVFTDAD; # DETERMINE ADDITIONAL DIALOGUE #
  57. PROC NVFTDSP; # DETERMINE SWITCH POSSIBILITY #
  58. PROC NVFTIAM; # ISSUE ACCOUNTING MESSAGE #
  59. PROC NVFTILP; # ISSUE LOGIN PROMPT #
  60. PROC NVFUMQE; # MAKE QUEUE ENTRY #
  61. PROC SSTAQE; # ACCEPT QUEUE ENTRY #
  62. PROC SSTETS; # ENLARGE TABLE SPACE #
  63. END
  64.  
  65. #
  66. ****
  67. #
  68. DEF LENGTH$ #10#; # NUMBER OF CHARACTERS IN CLRSCRN ARRAY #
  69.  
  70. ITEM BPOS I; # BIT POSITN WITHIN WORD (COMPASS NOTATN) #
  71. ITEM COUNT I; # COUNT OF THE NUMBER OF 1'S BITS #
  72. ITEM I I; # LOOP VARIABLE #
  73. ITEM INUSERV B; # INITIAL USER VALIDATIONS FLAG #
  74. ITEM MATCH B; # EXIT LOOP VARIABLE #
  75. ITEM NENTRY I; # NUMBER OF ENTRIES IN TABLE #
  76. ITEM PT I; # SUBSCRIPT FOR ARRAY PTAC #
  77. ITEM RM I; # SUBSCRIPT FOR ARRAY RML #
  78.  
  79. #
  80. * CLRSCRN - A "MESSAGE" SENT TO THE TERMINAL TO CLEAR THE SCREEN.
  81. #
  82. ARRAY CLRSCRN [00:00] S(1);
  83. BEGIN
  84. ITEM CLRWORD C(00,00,01) = ["1"];
  85. ITEM CLRZERO U(00,06,54) = [0];
  86. END
  87.  
  88.  
  89.  
  90. IF PTA$PROMPT[PT] EQ AWTAPP$
  91. THEN # SUCCESSFUL APPL VALIDATION #
  92. BEGIN
  93. PTA$APPLCT[PT] = 0; # CLEAR APPLICATION RETRY COUNT #
  94. PTA$AFF[PT] = FALSE; # CLEAR APPLICATION FAILED FLAG #
  95. NVFTDSP(PT,0); # DETERMINE SWITCH POSSIBILITY #
  96. END
  97. ELSE # SUCCESSFUL USER VALIDATION #
  98. BEGIN
  99. PTA$USERCT[PT] = 0; # CLEAR USER RETRY COUNT #
  100. INUSERV = PTA$IUVF[PT];
  101. IF INUSERV
  102. THEN # INITIAL USER VALIDATION #
  103. BEGIN
  104. PTA$CNTIME[PT] = CTM$PDT[0]; # SAVE CONNECTION TIME #
  105. NVFTIAM(PT,ABUN$); # ISSUE *ABUN* ACCOUNTING MSG #
  106. IF PTA$CHGNUM[PT] NQ NULL$ # CHARGE NUMBER EXISTS #
  107. THEN
  108. BEGIN
  109. NVFTIAM(PT,ABIC$); # ISSUE *ABIC* MESSAGE #
  110. END
  111. IF PTA$PID[PT] NQ NULL$ # PERSONAL IDENTIFIER EXISTS #
  112. THEN
  113. BEGIN
  114. NVFTIAM(PT,SIPI$); # ISSUE *SIPI* MESSAGE #
  115. END
  116. PTA$IUVF[PT] = FALSE;
  117. END
  118.  
  119. #
  120. * IF MULTIPLE CONCURRENT LOGINS ARE PROHIBITED, CHECK THE *RML*
  121. * TABLE FOR A DUPLICATE USER. IF A DUPLICATE IS FOUND CALL
  122. * *NVFTDAD* AND END THE CONNECTION. IF NO DUPLICATE, CREATE A
  123. * TABLE ENTRY IN THE *RML* TABLE TO RESTRICT THE USER.
  124. #
  125. IF INUSERV AND (NOT PTA$CACA[PT])
  126. THEN
  127. BEGIN # INTIAL LOGIN, RESTRICTED USER #
  128. FOR I = 0 STEP 1 UNTIL (RMLLNGTH - 1)
  129. DO
  130. BEGIN
  131. IF (RML$UIDX[I] EQ PTA$UIDX[PT]) AND
  132. (RML$FNAM[I] EQ PTA$FNAM[PT])
  133. THEN
  134. BEGIN # MULTIPLE CONCURRENT LOGINS #
  135. NVFTDAD(PT,ECCANA$); # ISSUE ERROR AND END CONNECT #
  136. RETURN;
  137.  
  138. END
  139. END
  140. RM = RMLLNGTH; # CREATE NEW *RML* TABLE ENTRY #
  141. SSTETS (P<RML>,RM,RMLSIZ$);
  142. RML$UIDX[RM] = PTA$UIDX[PT];
  143. RML$FNAM[RM] = PTA$FNAM[PT];
  144. END
  145. #
  146. * SEARCH APPLICATION BITS FIELD OF *AAWC* TO DETERMINE IF A
  147. * MANDATORY APPLICATION IS SPECIFIED IN THE *VALIDUS* FILE FOR
  148. * THIS USER (ONLY ONE BIT SET).
  149. #
  150. COUNT = 0;
  151. FOR I = 12 STEP 1 WHILE (COUNT LS 2 AND I LQ 59)
  152. DO
  153. BEGIN
  154. IF B<I,1>PTA$AAVW[PT] EQ 1
  155. THEN
  156. BEGIN
  157. COUNT = COUNT + 1; # INCREMENT NUMBER OF 1'S #
  158. BPOS = 59 - I; # BIT POSITION WITHIN WORD(CMP) #
  159. END
  160. END
  161.  
  162. IF COUNT EQ 1
  163. THEN # MANDATORY APPL IN VALIDUS #
  164. BEGIN
  165. #
  166. * IMPLIED MANDATORY APPLICATION IS SPECIFIED IN THE *VALIDUS*
  167. * FILE. HAVE TO FURTHER CHECK IF BIT IS UNIQUE TO THIS
  168. * APPLICATION. IF BIT IS NOT UNIQUE, APPLICATION IS NOT
  169. * CONSIDERED A MANDATORY APPLICATION.
  170. #
  171. MATCH = FALSE;
  172. NENTRY = ASTLNGTH / ASTSIZ$;
  173. FOR I = 0 STEP 1 WHILE (NOT MATCH AND I LS NENTRY)
  174. DO
  175. BEGIN
  176. IF AST$AWBP[I] EQ BPOS
  177. THEN # FOUND APPLICATION #
  178. BEGIN
  179. IF NOT AST$BNUF[I]
  180. THEN # APPLICATION BIT IS UNIQUE #
  181. BEGIN
  182. PTA$VDSAPP[ PT] = AST$ANAM[I]; # SAVE APPL NAME #
  183. PTA$VDSF[ PT] = TRUE; # SET VALIDUS APPL FLAG #
  184. END
  185. MATCH = TRUE; # SET EXIT LOOP CONDITION #
  186. END
  187. END
  188. END
  189.  
  190. #
  191. * FOR BOTH INITIAL AND NON-INITIAL USER VALIDATION, DETERMINE IF
  192. * USER NEEDS TO BE PROMPTED FOR AN APPLICATION NAME. NO PROMPT
  193. * IS REQUIRED IF THERE IS AN IMPLIED MANDATORY APPLICATION NAME
  194. * OR IF USER HAS ALREADY SUPPLIED THE APPLICATION NAME.
  195. #
  196. PTA$PROMPT[PT] = AWTAPP$;
  197. IF ((PTA$VAF[PT]) AND (PTA$APPIND[PT] NQ PRIMARY$))
  198. OR (PTA$VDSF[PT])
  199. THEN # NO APPLICATION PROMPT #
  200. BEGIN
  201. PTA$STATE[PT] = PTACST"AWTVAA"; # AWAIT VALIDAT APPL ACCESS #
  202. END
  203. ELSE # APPLICATION PROMPT REQUIRED #
  204. BEGIN
  205. NVFTILP(PT); # ISSUE APPLICATION PROMPT #
  206. END
  207. END
  208.  
  209. END # END NVFTPSV #
  210.  
  211. TERM
1)
PT
cdc/nos2.source/nam5871/nvftpsv.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator