*DECK IPPSETO 
USETEXT TEXTIPL 
      PROC IPPSETO (SOCKID, BLCK, TIME, SOCKSTATUS);
*CALL COPYRITE          CDCNET - COPYRIGHT CONTROL DATA. 1992.
# TITLE IPPSETO - SET SOCKET OPTIONS                                   #
  
      BEGIN                            # IPPSETO                       #
# 
****  IPPSETO  SET SOCKET OPTIONS 
* 
*     THIS PROCEDURE ALLOWS THE BLOCKING AND WAIT TIME OPTIONS OF A 
*     SOCKET TO BE MODIFIED.
* 
*     PROC IPPSETO
* 
*     ENTRY    SOCKID     = INTEGER VALUE OF A SOCKET.
*              BLCK       = BOOLEAN FOR BLOCKING SUPPORTED ON SOCKET. 
*              TIME       = TIME TO WAIT IF BLOCK SUPPORTED.
* 
*     EXIT     SOCKSTATUS = COMPLETION STATUS 
* 
*     METHOD   VERIFY THE SOCKET IS CONNECTED.  IF THE SOCKET HAS 
*              DISCONNECTED FROM NAM, RETURN AN ABORT STATUS. 
*              UPDATE THE SOCKID ENTRY WITH THE SUPPLIED STATUS OF
*              BLOCKING AND THE WAIT TIME.  THESE ARE USED WHILE
*              FOR NETWORK RESPONSES TO SEND AND RECEIVE REQUESTS.
# 
  
# 
**
# 
      ITEM SOCKID              I;      # SOCKET IDENTIFIER             #
      ITEM BLCK                B;      # BLOCKING SUPPORTED ON SOCKET  #
      ITEM TIME                I;      # TIME TO WAIT IF BLOCKING      #
      ITEM SOCKSTATUS S:SOCKSTAT;      # RETURNED SOCKET STATUS        #
      CONTROL EJECT;
# 
****  START MAIN PROCEDURE
# 
  
      IF (ACN$ABORT [SOCKID]) 
      THEN
        BEGIN                          # CONNECTION ABORTED            #
        SOCKSTATUS = S"ABORT";
        RETURN; 
        END 
  
      IF NOT ACN$CONNECT [SOCKID] 
      THEN
        BEGIN 
        SOCKSTATUS = SOCKSTAT"INVALIDST"; 
        RETURN; 
        END 
  
      IF TIME GR 4095 
      THEN
        BEGIN 
        ACN$WAITIME [SOCKID] = 4095;
        END 
      ELSE
        BEGIN 
        ACN$WAITIME [SOCKID] = TIME;
        END 
  
      ACN$BLOCK [SOCKID] = BLCK;
      SOCKSTATUS = S"OK"; 
  
      RETURN;                          # RETURN TO CALLER              #
  
      END                              # IPPSETO                       #
  
      TERM
