cdc:nos2.source:nam5871:qtlink
Table of Contents
QTLINK
Table Of Contents
- [00006] PROC QTLINK
- [00087] PROC NP$ERR
- [00088] PROC NETPUT
- [00089] PROC NETPUTF
Source Code
- QTLINK.txt
- *DECK QTLINK
- USETEXT AIPDEF
- USETEXT QTRMBUF
- USETEXT QTRMCOM
- USETEXT QTRMNIT
- PROC QTLINK;
- *IF,DEF,IMS
- #
- *1DC QTLINK
- *
- * 1. PROC NAME AUTHOR DATE
- * QTLINK S. WATANABE 80/01/21
- *
- * 2. FUNCTIONAL DESCRIPTION.
- * PROVIDES APPLICATION-TO-APPLICATION CONNECTION PROCESSING
- * TO QTRM.
- *
- * 3. METHOD USED.
- * IF APPLICATION NOT NETTED ON,
- * CALL NP$ERR TO ISSUE DAYFILE MESSAGE AND ABORT APP.
- * IF SUPPORT A-TO-A FLAG IS NOT SET,
- * CALL NP$ERR TO ISSUE DAYFILE MESSAGE AND ABORT APP.
- * IF APPLICATION-TO-APPLICATION REQUEST NOT OUTSTANDING,
- * BUILD CON/ACRQ SUP MSG.
- * IF ADDRESS OF OUTCALL DATA NOT SPECIFIED,
- * CALL NETPUT TO SEND CON/ACRQ SUP MSG.
- * ELSE (APPLICATION HAS OUTCALL DATA TO INCLUDE IN CON/ACRQ),
- * IF SIZE OF OUTCALL DATA NOT SPECIFIED,
- * REJECT QTLINK CALL WITH APPROPRIATE RETURN CODE.
- * ELSE (SIZE OF DATA WAS SPECIFIED),
- * IF SPECIFIED SIZE IS TOO LARGE,
- * REJECT QTLINK CALL WITH APPROPRIATE RETURN CODE.
- * ELSE (GOOD SIZE SPECIFIED FOR DATA TO PASS TO NEXT APP),
- * CREATE FRAGMENT ARRAY FOR SUP MSG.
- * CALL NETPUTF TO SEND CON/ACRQ SUP MSG.
- *
- * 4. ENTRY CONDITIONS.
- * SUPPORT-A-TO-A FIELD MUST BE SET BEFORE CALLING QTOPEN.
- * NETON MUST HAVE BEEN ACCOMPLISHED BY CALLING QTOPEN
- * PREVIOUS TO CALLING QTLINK.
- * REQUESTED APPLICATION NAME MUST BE PLACED IN NIT$REQ$APP
- * AND REQUESTED HOSTID (OR 0 IF SAME HOST) IN NIT$HOSTAA
- * IN NIT GLOBAL AREA BEFORE CALLING QTLINK.
- *
- * 5. NORMAL EXIT CONDITIONS.
- * NIT$RC NORMAL COMPLETION RETURN CODE
- *
- * 6. ABNORMAL EXIT CONDITIONS.
- * NIT$RC QTLINK REJECT RETURN CODE
- * NIT$S$RC REASON FOR QTLINK REJECT
- *
- * 7. COMDECKS CALLED OR SYMPL TEXTS USED.
- * AIPDEF NP$CRT QTRMBUF QTRMCOM QTRMNIT
- *
- * 8. ROUTINES CALLED.
- * NP$ERR ISSUE ERROR MESSAGE AND ABORT APP
- * NETPUT SEND NETWORK MESSAGE TO NIP
- * NETPUTF SEND FRAGMENTED NETWORK MESSAGE TO NIP.
- *
- * 9. DAYFILE MESSAGES
- * NETWORK APPLICATION ABORTED, RC = 73.
- * QTLINK: REQUEST INVALID BEFORE QTOPEN.
- *
- * NETWORK APPLICATION ABORTED, RC = 95.
- * QTLINK: NO SUPPORT-A-TO-A.
- *
- *
- #
- *ENDIF
- #
- CONTROL DEFINITIONS
- #
- CONTROL PRESET;
- CONTROL PACK;
- CONTROL DISJOINT;
- CONTROL INERT;
- CONTROL FASTLOOP;
- *CALL NP$CRT
- #
- ROUTINES CALLED
- #
- XREF
- BEGIN
- PROC NP$ERR; # ISSUE ERROR MESSAGE AND ABORT NIP #
- PROC NETPUT; # SEND NETWORK MESSAGE TO NIP #
- PROC NETPUTF; # SEND FRAGMENTED NETWORK MESSAGE TO NIP #
- END
- #
- LOCAL VARIABLES
- #
- CONTROL EJECT;
- #
- BEGIN QTLINK PROCESSING
- #
- BEGIN
- IF NOT NETON$STATUS
- THEN # APP HAS NOT CALLED QTOPEN #
- NP$ERR("73");
- IF NOT (SUPTRAA[0] OR SUPTERA[0])
- THEN # APP DOES NOT SUPPORT A-TO-A CONNECTIONS #
- NP$ERR("95");
- P<NIT> = NIT$ADDR;
- NIT$RC[0] = 0;
- NIT$CON[0] = 0;
- IF NOT REQAA
- THEN # NO A-TO-A CON REQ OUTSTANDING #
- BEGIN
- ABHWORD[0] = 0;
- SPMSG0[0] = 0;
- SPMSG1[0] = 0;
- ABHABT[0] = APPCMD;
- ABHABN[0] = 1; #ABN TO BE RETURNED IN CON/REQ/R#
- ABHACT[0] = CT60TRANS;
- ABHTLC[0] = LCONAC;
- PFCSFC[0] = CONACR; # PFC/SFC OF CON/ACRQ SUP MSG #
- CONANM[0] = NIT$REQ$APP[0]; # NAME OF APP TO BE CONNECTED TO#
- CONHID[0] = NIT$HOSTAA[0]; # HOST ID OF HOST OF REQUEST APP#
- CONALID[0] = NIT$LID[0]; # LID OF HOST OF REQUESTED APP #
- IF (NIT$PARMADR[0] EQ 0)
- THEN # NO OUTCALL PARAMETERS #
- BEGIN
- REQAA = TRUE; # SET A-A REQ OUTSTANDING FLAG #
- NETPUT(HEADER,SUP$MES); # SEND CON/ACRQ TO NIP #
- END
- ELSE # OUTCALL DATA TO SEND #
- BEGIN
- IF NIT$CTLC[0] EQ 0
- THEN # NO SIZE GIVEN FOR OUTCALL BUF #
- BEGIN
- NIT$S$RC[0] = S"NOSIZE"; # STORE REASON FOR BAD CALL #
- NIT$RC[0] = S"QTLINKREJ"; # STORE QTLINK REJECT RETURN COD#
- END
- ELSE # SIZE GIVEN FOR OUTCALL BUFFER #
- BEGIN
- IF NIT$CTLC[0] GR 52
- THEN # TOO MUCH DATA BEING PASSED #
- BEGIN
- NIT$S$RC[0] = S"BADSIZE"; # STORE REASON FOR BAD CALL #
- NIT$RC[0] = S"QTLINKREJ"; # STORE QTLINK REJECT RC #
- END
- ELSE # SIZE IS WITHIN RANGE #
- BEGIN
- REQAA = TRUE; # SET A-A REQ OUTSTANDING FLAG #
- ABHTLC[0] = LCONAC + NIT$CTLC[0]; # SIZE OF CON/ACRQ S M#
- FRAGSZ0[0] = LCONAC; # SIZE OF 1ST FRAGMENT #
- FRAGAD0[0] = LOC(SUP$MES); # ADDR OF 1ST FRAGMENT #
- FRAGSZ0[1] = NIT$CTLC[0]; # SIZE OF 2ND FRAGMENT #
- FRAGAD0[1] = NIT$PARMADR[0]; # ADDR OF 2ND FRAGMENT #
- NOFRAG = 2; # NUMBER OF FRAGMENTS IN S M #
- NETPUTF(HEADER,NOFRAG,FRAG); # SEND CON/QCRQ SUP MSG #
- END
- END
- END
- END
- ELSE
- BEGIN
- NIT$RC[0] = S"QTLINKREJ"; # STORE QTLINK REJECT RETURN COD#
- NIT$S$RC[0] = S"AACONOUT"; # STORE REASON CODE FOR BAD CALL#
- END
- RETURN;
- END # QTLINK #
- TERM
cdc/nos2.source/nam5871/qtlink.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator