*DECK CONVAL
USETEXT COMCBEG 
USETEXT COMRMEM 
USETEXT COMRQUE 
USETEXT COMRRTN 
PROC CONVAL(REPLYCODE); 
# TITLE CONVAL - VALIDATE REMOTE CONNECTION REQUEST. #
  
      BEGIN  # CONVAL # 
  
# 
**    CONVAL - VALIDATE REMOTE CONNECTION REQUEST.
* 
*     VALIDATES A CONNECTION REQUEST FROM ANOTHER HOST. 
* 
*     PROC CONVAL(REPLYCODE). 
* 
*     ENTRY    - QU$ADDRESS IS BASED ARRAY CONTAINING THE TRANSLATED
*                  REMOTE CONNECT REQUEST.
* 
*     EXIT     - REPLY CODE:  
*                  CONR$OK   - REQUEST IS VALIDATED.
*                  CONR$BDAPL - NO APPL TO ACCEPT REQUEST.
*                  CONR$SHUT  - SHUTDOWN IN PROGRESS. 
*                  CONR$BDNAD - LOCAL/REMOTE NAD NOT DEFINED OR DISABLED
*                  CONR$BDID  - INVALID/DISABLED LID/PID. 
*                  CONR$BDPSW - INVALID PASSWORD
* 
*     PROCESS  - IF SHUTDOWN OR IDLEDOWN IN PROCESS 
*                THEN:  
*                  SET SHUTDOWN REPLY CODE
*                ELSE:  
*                  SEARCH FOR APPLICATION TO TAKE THIS REQUEST
*                  IF ONE NOT FOUND 
*                  THEN:  
*                    SET BAD ANAME REPLY CODE 
*                  ELSE:  
*                    VALIDATE PATH TO REMOTE HOST(VIA OR CONFIGURATION) 
*                    SET APPROPRIATE REPLY CODE.
*                RETURN.
* 
*     NOTES   -  NO LENGTHY PROCESSES SHOULD OCCUR DURING CONNECTION
*                VALIDATION AS NDR IS WAITING FOR A REPLY WITH THE
*                CHANNEL RESERVED.
* 
* 
# 
  
      ITEM REPLYCODE I;              # CONVAL REPLY CODE #
  
# 
***   PROC CONVAL - XREF LIST BEGIN.
# 
  
      XREF
        BEGIN 
        PROC FINDACN;                # FIND APPL THAT CAN ACCEPT ACN #
        PROC PATHVAL;                # VALIDATE PATH #
        ITEM PASSWD C(7);            # INSTALLATION DEFINED PASSWORD #
        END 
  
# 
****  PROC CONVAL - XREF LIST END.
# 
  
  
      ITEM ACNRETURN I;              # FINDACN RETURN CODE #
CONTROL EJECT;
  
      IF SHUTDWN OR IDLEDWN 
      THEN
        BEGIN  # REFUSE REQUEST - SHUTDOWN IN PROGRESS #
        REPLYCODE = CONR$SHUT;
        END 
  
      ELSE
        BEGIN  # NO SHUTDOWN #
  
        IF QU$PASSWD NE PASSWD
        THEN
          BEGIN  # INVALID PASSWORD # 
          REPLYCODE = CONR$BDPSW; 
          END 
  
        ELSE
          BEGIN  # PASSWORD VALID # 
          FINDACN(ACNRETURN); 
  
          IF ACNRETURN EQ 0 
          THEN
            BEGIN  # NO APPLICATIONS WITH AVAILABLE ACNS #
            REPLYCODE = CONR$BDAPL; 
            END 
  
          ELSE
            BEGIN  # APPLICATIONS WITH AVAILABLE ACN FOUND #
            PATHVAL(REPLYCODE); 
            END 
  
          END 
  
  
        END 
  
      RETURN; 
      END  # CONVAL # 
  
      TERM
  
