*DECK FFSUDFN 
USETEXT TEXTFFS 
      PROC FFSUDFN (RESTART); 
*CALL COPYRITE
# TITLE FFSUDFN - DISCONNECT FROM NETWORK.                             #
  
      BEGIN                            # FFSUDFN                       #
# 
**    FFSUDFN  DISCONNECT FROM NETWORK. 
* 
*     A. LIM                           88/03/21 
* 
*     THIS PROCEDURE USES THE NETOFF TO DISCONNECT THE APPLICATION
*     FROM THE NETWORK.  AND IF THE RESTART FLAG IS SET, IT RESTARTS
*     A COPY OF ITSELF. 
* 
*     PROC FFSUDFN (RESTART)
* 
*     ENTRY    RESTART = TRUE  => NETOFF AND RESTART ITSELF.
*                        FALSE => NETOFF. 
* 
*     EXIT     FILE SERVER OPERATION ENDED/RESTARTED. 
* 
*     METHOD   WAIT ON COMPLETION OF THE FET. 
*              NETOFF.
*              RESTART. 
* 
# 
  
# 
****  PROC FFSUDFN - XREF LIST
# 
      XREF
        BEGIN 
        PROC FTPRS;      # FTPS/FTPI RESTART ENTRY POINT               #
        PROC MESSAGE;    # DISPLAY AND DAYFILE A MESSAGE               #
        PROC NETOFF;     # DISCONNECT FROM NETWORK                     #
        PROC RECALL;     # WAIT FOR COMPLETION BIT TO BE SET           #
        END 
# 
****
# 
      ITEM RESTART       B;            # RESTART FLAG                  #
  
# 
*     THIS ARRAY DEFINES THE MESSAGE FOR ENDING FTPS/FTPI.
# 
      ARRAY ENDMSG[00:00] S(3); 
        BEGIN 
        ITEM EMG$TEXT   C(00,00,26) = 
          [" FTPS-TERMINATES NORMALLY."]; 
        ITEM EMG$ID     C(00,06,04);          # ID, FTPS VS FTPI       #
        ITEM EMG$ZBYTE  U(02,36,24) = [0];    # ZERO BYTE TERMINATOR   #
        END 
  
      CONTROL EJECT;
# 
*     START MAIN PROCEDURE
# 
  
      IF NOT MBT$COMPB[0] 
      THEN
        BEGIN                          # I/O OUTSTANDING               #
        RECALL(MBT[0]);                # WAIT FOR COMPLETION           #
        END 
  
      IF NOT RESTART
      THEN
        BEGIN                          # NOT TO BE RESTARTED           #
        IF EPTFLAG EQ FTPC$ 
        THEN
          BEGIN                        # CLIENT MODE                   #
          EMG$ID[0] = FTPI$;           # HEADER ID IS FTPI             #
          END 
        MESSAGE(ENDMSG[0], 0);         # DAYFILE NORMAL TERMINATION MSG#
        END 
  
      NETOFF;                          # DISCONNECT FROM THE NETWORK   #
  
      IF RESTART
      THEN
        BEGIN 
        FTPRS;                         # RESTART FS, CTRL NEVER RETURNS#
        END 
  
      STOP; 
  
      END                              # FFSUDFN                       #
  
      TERM
