*DECK SSIAPMC 
USETEXT TEXTATS 
USETEXT TEXTRPC 
      PROC SSIAPMC; 
*CALL COPYRITE
# TITLE SSIAPMC - ACTIVATE PORTMAPPER CONNECTIONS.                     #
  
      BEGIN                            # SSIAPMC                       #
# 
****  SSIAPMC - ACTIVATE PORTMAPPER CONNECTIONS.
* 
*     THIS PROCEDURE ACTIVATES THE CLIENT AND SERVER SOCKETS FOR THE
*     PORTMAPPER. 
* 
*     ENTRY 
* 
*     EXIT     PMAP$SOCKET = PORTMAPPER'S SERVER SOCKET 
*              PMAP$SERVER = PORTMAPPER'S SERVER HANDLE 
*              PMAP$CLIENT = PORTMAPPER'S CLIENT HANDLE 
* 
*     METHOD   ISSUE A DAYFILE STATING THAT PORTMAPPER IS BEING 
*              INITIALIZED, CALL *PMPOPEN* TO INITIATE PORTMAPPER,
*              LOOP UNTIL SUCCESSFUL.  A NEW ATTEMPT IS PERFORMED 
*              EVERY TWO MINUTES. 
# 
  
# 
****  PROC SSIAPMC - XREF LIST. 
# 
  
      XREF
        BEGIN 
        PROC IPUWAIT;    # SUSPEND APPLICATION PROCESSING              #
        PROC MESSAGE;    # ISSUE DAYFILE MESSAGE                       #
        PROC PMPOPEN;    # OPEN PORTMAPPER PORTS                       #
        END 
  
# 
**
# 
  
      ITEM LOOP                I;      # LOOP COUNTER                  #
      ITEM RPCSTATUS   S:RPCSTAT;      # PORTMAP OPEN STATUS           #
  
# 
****  THIS ARRAY DEFINES THE MESSAGE FOR INITIALIZING PORTMAPPER. 
# 
      ARRAY PRTMSG [00:00] S(4);
        BEGIN 
        ITEM PRT$TEXT    C(00,00,36) = [
          "ATF-INITIALIZING PORTMAPPER HANDLES."];
        ITEM PRT$ZBYTE   U(03,36,24) = [0]; 
        END 
CONTROL EJECT;
  
# 
****  START MAIN PROCEDURE
# 
  
      MESSAGE (PRTMSG, 0);             # ISSUE I'M HERE DAYFILE MESSAGE#
  
      FOR LOOP = 0
      DO
        BEGIN 
        PMPOPEN (RPCSTATUS);
        IF RPCSTATUS EQ S"OK" 
        THEN
          RETURN; 
        IPUWAIT ((WAITTIME$));         # WAIT TWO MINUTES              #
        END 
  
  
      END                              # SSIAPMC                       #
  
      TERM
