*DECK FINDPTH 
USETEXT COMCBEG 
USETEXT COMRNET 
USETEXT COMRRTN 
PROC FINDPTH(RETURNCODE,ACTSEL);
# TITLE FINDPTH - FIND BEST PATH TO REQUESTED LID/PID # 
  
      BEGIN  # FINDPTH #
  
# 
**    FINDPTH - FIND BEST PATH TO REQUESTED LID/PID.
* 
*     THIS PROCEDURE WILL FIND THE BEST PATH TO THE REQUESTED LID/PID.
*     IF NO PATHS CAN BE FOUND. FINDPTH WILL FIND THE BEST PATH WITH
*     THE REJECT BIT SET (PREVIOUS CONNECTION REQUEST REJECTED BY NAD). 
* 
*     PROC FINDPTH(RETURNCODE,ACTSEL).
* 
*     ENTRY   -  QU$ADDRESS IS BASED ARRAY CONTAINING CON/ACRQ/R. 
* 
*     EXIT    -  RETURNCODE - SCAN$OK   - PATH FOUND. 
*                             SCAN$DIS  - ALL PATHS DISABLED. 
*                             SCAN$REJ  - ALL ENABLED PATHS REJECTED. 
*                             SCAN$NDID - LID OR PID NOT FOUND. 
*                IF PATH FOUND -
*                  ACTSEL -   TRUE IF PATH ACTIVITY USED IN SELECTION 
*                               CRITERIA. 
*                  NET$HEADER-BASED ARRAY CONTAINING BEST PATH PID. 
*                  PTH$ENTRY -BASED ARRAY FOR BEST PATH ENTRY.
*                  NAD$ENTRY -BASED ARRAY FOR BEST PATH NAD ENTRY.
*                  RMT$ENTRY -BASED ARRAY FOR BEST PATH REMOTE NAD. 
* 
*     PROCESS  - SCAN FOR BEST PATH 
*                IF NONE FOUND AND THIS IS FIRST FIND PTH CALL FOR
*                  CON/ACRQ/R 
*                THEN:  
*                  SCAN FOR BEST REJECTED PATH
* 
* 
# 
  
      ITEM RETURNCODE I;             # RETURN CODE #
      ITEM ACTSEL     B;             # IF TRUE, ACTIVITY BITS USED #
  
# 
****  PROC FINDPTH - XREF LIST BEGIN. 
# 
  
      XREF
        BEGIN 
        PROC SCANPTH;                # SCAN FOR BEST PATH # 
        END 
  
# 
****  PROC FINDPTH - XREF LIST END
# 
  
  
      ITEM NETHDR I;                 # HOLDS ADDRESS OF NETWORK HEADER #
  
CONTROL EJECT;
  
      NETHDR =  P<NET$HEADER>;
      SCANPTH(BEST$,RETURNCODE,ACTSEL); 
  
      IF RETURNCODE EQ SCAN$REJ 
        AND NETHDR EQ 0              # FIRST FINDPTH CALL # 
      THEN
        BEGIN  # FIND BEST REJECTED PATH #
        SCANPTH(BEST$REJ,RETURNCODE,ACTSEL);
        END 
  
      RETURN; 
      END  # FINDPTH #
  
      TERM
