*DECK SSIDAOC 
USETEXT TEXTATS 
USETEXT TEXTIPL 
USETEXT TEXTRPC 
      PROC SSIDAOC; 
*CALL COPYRITE
# TITLE SSIDAOC - DELETE ATS OPEN CONNECTIONS.                         #
  
      BEGIN                            # SSIDAOC                       #
# 
****  SSIDAOC - DELETE ATS OPEN CONNECTIONS.
* 
*     THIS PROCEDURE DELETES ALL OPEN APPLICATION CONNECTIONS.
* 
*     PROC SSIDAOC
* 
*     ENTRY 
* 
*     EXIT     CLNT$SOCKET = 0
*              PMAP$CLIENT = 0
*              PMAP$SERVER = 0
*              SRVR$HANDLE = 0
*              SRVR$SOCKET = 0
* 
*     METHOD   IF CLIENT SOCKET IS NON-ZERO ABORT THE SOCKET.  IF THE 
*              SERVER HANDLE IS ACTIVE, DELETE THE HANDLE.  IF THE
*              PORTMAPPER SERVER IS ACTIVE, CLOSE PORTMAPPER. 
# 
  
# 
****  PROC SSIDAOC - XREF LIST. 
# 
  
      XREF
        BEGIN 
        PROC MESSAGE; 
        PROC IPPABOS;    # ABORT SOCKET                                #
        PROC PMPCLOS;    # CLOSE PORTMAPPER                            #
        PROC PMPUNSET;   # DELETE PORTMAPPER DATABASE MAPPING          #
        PROC RPCSDES;    # DELETE SERVER HANDLE                        #
        END 
  
      ITEM PMPSTATUS   S:RPCSTAT;      # SOCKET STATUS                 #
      ITEM SOCKSTATUS S:SOCKSTAT;      # SOCKET STATUS                 #
CONTROL EJECT;
  
# 
****  START MAIN PROCEDURE
# 
  
      IF CLNT$SOCKET NQ 0 
      THEN
        BEGIN 
        IPPABOS (CLNT$SOCKET, SOCKSTATUS);
        CLNT$SOCKET = 0;
        END 
  
      IF SRVR$HANDLE NQ 0 
      THEN
        BEGIN 
        PMPUNSET (ATSPROGRAM$, ATSVERSION$, PMPSTATUS); 
        RPCSDES (SRVR$HANDLE);
        SRVR$HANDLE = 0;
        SRVR$SOCKET = 0;
        END 
  
      IF PMAP$SERVER NQ 0 
      THEN
        BEGIN 
        PMPCLOS (PMPSTATUS);
        PMAP$SERVER = 0;
        PMAP$CLIENT = 0;
        END 
      END                              # SSIDAOC                       #
  
      TERM
