*DECK CONERR
USETEXT COMCBEG 
USETEXT COMCAPR 
USETEXT COMCCAE 
USETEXT COMQDEF 
USETEXT COMQFIL 
USETEXT COMQNET 
    PROC CONERR (MSGTEXT, MSGLENGTH); 
      BEGIN    # CONERR # 
# 
**    CONERR     PROCESS CONNECTION ERROR.
* 
*     CONERR IS CALLED WHENEVER ANY NON-USER ERROR IS DETECTED WHICH
*     PREVENTS ANY FURTHER PROCESSING ON THE GIVEN CONNECTION.
*     THE ERROR MESSAGE SUPPLIED IS LOGGED AND THE CONNECTION IS
*     TERMINATED. 
* 
*     PROC CONERR (MSGTEXT, MSGLENGTH)
* 
*     ENTRY      MSGTEXT = ERROR MESSAGE TO BE LOGGED.
*                MSGLENGTH = LENGTH IN CHARACTERS OF MSGTEXT. 
*                ACN = APPLICATION CONNECTION NUMBER. 
* 
*     EXIT       FILECER = TRUE (CONNECTION ERROR). 
*                CONNECTION RELEASED. 
* 
*     PROCESS    CALL CONLOG (LOG ERROR MESSAGE). 
*                SET CONNECTION ERROR FLAG (FILECER). 
*                IF CONNECTION ESTABLISHED: 
*                  CALL CONENDM TO TERMINATE CONNECTION.
*                ELSE:  
*                  CALL CONENDR TO FAKE CON/END RESPONSE. 
# 
  
      BASED ARRAY MSGTEXT [0:0] S(7); 
        BEGIN 
        ITEM MSGTEXT$   C(00,00,70);  # MESSAGE TO BE LOGGED #
        END 
  
      ITEM MSGLENGTH I;            # LENGTH OF MESSAGE IN CHARACTERS #
  
# 
****  XREF
# 
      XREF
        BEGIN 
        PROC CONENDM;              # TERMINATE NETWORK CONNECTION # 
        PROC CONENDR;              # TERMINATE RESPONSE # 
        PROC CONLOG;               # LOG CONNECTION MESSAGE # 
        PROC NAME;                 # DEBUG CODE # 
        END 
  
# 
****  XREF END. 
# 
  
  
        $BEGIN
        NAME("CONERR");            # DEBUG CODE # 
        $END
  
      CONLOG(LOC(MSGTEXT),MSGLENGTH); 
      FILECER = TRUE; 
      IF FILECM                    # IF CONNECTION MADE # 
      THEN
        BEGIN 
        CONENDM;                   # TERMINATE NETWORK CONNECTION # 
        END 
  
      ELSE                         # CONNECTION NOT MADE #
        BEGIN 
        CONENDR;                   # FAKE CON/END/N TO CLEAN UP AFT # 
        END 
  
      END  # CONERR # 
    TERM
