*DECK NVFTSPC USETEXT TEXTSS USETEXT TEXTNVF USETEXT TXTANVF USETEXT TXSMNVF USETEXT TXTAPSS USETEXT TXTSUSS PROC NVFTSPC; # TITLE - NVFTSPC - T-A SWITCH PENDING CONNECTIONS # BEGIN # NVFTSPC # # ** NVFTSPC - TA SWITCH PENDING CONNECTIONS. * * C. BRION 83/04/18. * * THIS PROCEDURE CHECKS FOR PENDING TA CONNECTIONS AND EITHER RE- * STARTS THE LOGIN DIALOGUE OR CAUSES THE CONNECTIONS TO BE TER- * MINATED OR CAUSES THE CONNECTIONS TO BE SWITCHED TO THE REQUEST * STARTED APPLICATION. * * PROC NVFTSPC * * ENTRY: * THE NETON NORMAL OR ABNORMAL RESPONSE RESIDES IN MSGBUF, * ABHBUF AND WCBUF. * * EXIT: * PENDING PTAC ENTRIES MAY BE CAUSED TO BE TERMINATED. * PENDING PTAC ENTRIES MAY BE CAUSED TO BE SWITCHED. * PENDING PTAC ENTRIES MAY BE CAUSED TO RESTART THE DIALOGUE * SEQUENCE. * # # **** PROC NVFTSPC XREF LIST # XREF BEGIN PROC NVFTDAD; # DETERMINE DIALOGUE # PROC NVFTILP; # ISSUE LOGIN PROMPT # PROC NVFTDSP; # DETERMINE SWITCH # PROC NVFSCAD; # COMPLETE AP DEPARTURE # END # **** # ITEM SECAST B; # SECONDARY AST EXISTS # ITEM PTENTRY I; # NUMBER PTAC ENTRIES # ITEM ASENTRY I; # NUMBER AST ENTRIES # ITEM MATCH B; # LOOP EXIT FLAG # ITEM AORD I; # AST ORDINAL OF NETON APPL # ITEM PT I; # PTAC ENTRY ORDINAL # ITEM PORD I; # PRIMARY AST ENTRY ORDINAL # ITEM ERRCODE I; # NVFTDAD ERROR CODE # ITEM PD I; # PDCT ENTRY ORDINAL # CONTROL EJECT; # * INITIALIZE FLAGS AND NUMBER ENTRIES IN PTAC AND AST TABLES. # SECAST = FALSE; PTENTRY = PTALNGTH/PTACSIZ$; ASENTRY = ASTLNGTH/ASTSIZ$; MATCH = FALSE; # * SEARCH FOR AST ENTRY THAT MATCHES APPLICATION NUMBER OF THE * NET ON RESPONSE. # FOR AORD = 0 STEP 1 WHILE (AORD LS ASENTRY AND NOT MATCH) DO BEGIN IF AST$AN[AORD] EQ NETAN[0] THEN BEGIN MATCH = TRUE; # * CHECK IF AST ENTRY IS SECONDARY. IF SO, SEARCH FOR THE PRIMARY * AST ENTRY. # IF AST$PANAM[AORD] NQ AST$SANAM[AORD] THEN BEGIN # * SECONDARY AST ENTRY. LOCATE PRIMARY. # FOR PORD = 0 STEP 1 WHILE (PORD LS ASENTRY AND AST$PANAM[PORD] NQ AST$SANAM[AORD]) DO BEGIN END END ELSE PORD = AORD; # * AST ENTRY FOUND. LOCATE EACH PTAC ENTRY THAT IS PENDING NETON FOR * THIS AST ENTRY AND IS EITHER A CONSOLE DEVICE TYPE OR A PSU * PRINTER WHICH IS CONNECTED TO CDCNET. # FOR PT = 0 STEP 1 WHILE PT LS PTENTRY DO BEGIN IF ( (PTA$SWTAPP[PT] EQ AST$PANAM[PORD] ) AND ( (PTA$DT[PT] EQ DTSTAT"SCON") OR (PTA$DT[PT] EQ DTSTAT"SCLP") ) AND (PTA$STATE[PT] EQ PTACST"AWTNETP" ) ) THEN BEGIN # * FOR EACH PTAC, CLEAR TIMER CANCELLATION NUMBER. # PTA$CNUM[PT] = 0; # * CHECK IF NET ON RESPONSE IS ABNORMAL OR NORMAL. # IF PFCSFC[0] EQ NETONA THEN BEGIN # * NET ON ABNORMAL RESPONSE. SET UP ERROR CODE FOR NVFTDAD IN ORDER * TO DETERMINE THE DIALOGUE NEEDED FOR THE CONNECTION AFTER AN * APPLICATION NOT PRESENT SITUATION. IF THE CONNECTION IS TO CON- * TINUE LOGIN SEQUENCE, CALL NVFTILP TO RESTART THE LOGIN SEQUENCE. # ERRCODE = ECANP$; NVFTDAD(PT,ERRCODE); IF PTA$STATE[PT] EQ PTACST"AWTPRMT" THEN NVFTILP(PT); END ELSE # NET ON NORMAL RESPONSE # BEGIN # * NET ON NORMAL RESPONSE. CALL NVFTDSP TO DETERMINE SWITCH POS- * SIBILITY. # PD = 0; NVFTDSP(PT,PD); END END END # * IF NET ON ABNORMAL, THEN CALL NVFSCAD TO COMPLETE APPLICATION * DEPARTURE OF AST ENTRY. # IF PFCSFC[0] EQ NETONA THEN BEGIN NVFSCAD(AORD); IF PORD NQ AORD THEN NVFSCAD(PORD); END END END END # NVFTSPC # TERM