*DECK IPIAIPA 
USETEXT TEXTIPL 
      PROC IPIAIPA (CODE);
*CALL COPYRITE          CDCNET - COPYRIGHT CONTROL DATA. 1992.
# TITLE IPIAIPA - ABORT IP APPLICATION.                                #
  
      BEGIN                            # IPIAIPA                       #
# 
****  IPIAIPA  ABORT THE IP APPLICATION 
* 
*     THIS PROCEDURE TERMINATES THE SOCKET APPLICATION WHEN 
*     NAM PROTOCOL ERRORS OR INTERNAL ERRORS ARE ENCOUNTERED. 
* 
*     PROC IPIAIPA (CODE) 
* 
*     ENTRY    CODE = ERROR CODE FOR ABORTING FILE SERVER.
* 
*     EXIT     APPLICATION ABORTED. 
* 
*     METHOD   DAYFILE APPROPRIATE MESSAGE. 
*              ABORT. 
* 
# 
  
# 
****  PROC IPIAIPA - XREF LIST
# 
      XREF
        BEGIN 
        PROC ABORT;      # ABORT JOB -MACREL-                          #
        PROC IPPENDN;    # END NETWORK                                 #
        PROC MESSAGE;    # DISPLAY AND DAYFILE A MESSAGE               #
        END 
# 
**
# 
      ITEM CODE          I;            # REASON FOR ENDING CONNECTIONS #
  
  
# 
*     THIS ARRAY DEFINES ALL THE ERROR MESSAGES FOR ABORTING. 
# 
      ARRAY ERR$MSG [00:NLAST$] S(6); 
        BEGIN 
        ITEM ERR$TEXT   C(00,00,52) = 
          ["APPLICATION ABORT, ERR/LGL RECEIVED.                ",
           "APPLICATION ABORT, FC/NAK RECEIVED.                 ",
           "APPLICATION ABORT, UNEXPECTED CON/ACRQ/A RECEIVED.  ",
           "APPLICATION ABORT, UNEXPECTED CON/CB/R RECEIVED.    ",
           "APPLICATION ABORT, UNEXPECTED CON/END/N RECEIVED.   ",
           "APPLICATION ABORT, INVALID CON/REQ/R RECEIVED.      ",
           "APPLICATION ABORT, UNEXPECTED FC/ACK RECEIVED.      ",
           "APPLICATION ABORT, FC/INIT RECEIVED.                ",
           "APPLICATION ABORT, DATA RECEIVED IN WRONG STATE.    ",
           "APPLICATION ABORT, INVALID UDP DATA RECEIVED.       ",
           "APPLICATION ABORT, INTERNAL ERROR.                  ",
                                                                 ]; 
        ITEM ERR$ZBYTE  U(05,12,48) = [0,NLAST$(0)];
        END 
  
      CONTROL EJECT;
# 
****  START MAIN PROCEDURE
# 
  
      IF CODE GR NLAST$ 
      THEN
        BEGIN                          # CODE OUTSIDE RANGE            #
        CODE = INTERROR$;              # FLAG IT AS AN INTERNAL ERROR  #
        END 
  
      MESSAGE (ERR$MSG [CODE], 0);     # DAYFILE MESSAGE               #
  
      IPPENDN;                         # TERMINATE NAM CONNECTION      #
  
      ABORT;
  
      STOP; 
  
      END                              # IPIAIPA                       #
  
      TERM
