*DECK FCSCDFO 
USETEXT TEXTFCS;
      PROC FCSCDFO; 
*CALL COPYRITE
# TITLE FCSCDFO - PROCESS DISPLAY_FTP_OPTIONS COMMAND.                 #
  
      BEGIN                            # FCSCDFO                       #
  
# 
**    FCSCDFO - PROCESS DISPLAY_FTP_OPTIONS COMMAND.
* 
*     C. J. RAMSAY                     87/11/03 
* 
*     THIS PROCEDURE PROCESSES THE DISPLAY_FTP_OPTIONS COMMAND. 
* 
*     PROC FCSCDFO
* 
*     ENTRY   PARMS[1]   = STATUS VARIABLE (IGNORED). 
* 
*     EXIT    FTPERROR   = TRUE IF PROTOCOL ERROR DETECTED. 
*             FTPFAIL    = TRUE IF COMMAND FAILURE DETECTED.
*             FTPUSERE   = TRUE IF USER ERROR DETECTED. 
* 
*     METHOD  WRITE CURRENT FTP OPTIONS TO THE OUTPUT FILE. 
*             IF REMOTE CONNECTION EXISTS THEN
*               WRITE REMOTE HOST NAME. 
* 
# 
  
# 
****  PROC FCSCDFO - XREF LIST
# 
      XREF
        BEGIN 
        PROC FCSOWOF;                  # WRITE TO OUTPUT FILE          #
        PROC NETUCDA;                  # CONVERT DISPLAY CODE TO ASCII #
        PROC NETUCAS;                  # COPY AN ASCII STRING          #
        END 
# 
****
# 
      DEF HDRSIZ$        #  30 #;      # SIZE OF HEADERS IN CHARACTERS #
  
      DEF OALM           #   1 #;      # AUTO_LOGIN_MODE OPTION        #
      DEF ODM            #   2 #;      # DEBUG_MODE OPTION             #
      DEF OBM            #   3 #;      # BELL_MODE OPTION              #
      DEF ODCS           #   4 #;      # DEFAULT CODE SET              #
      DEF OEE            #   5 #;      # EXPRESSION_EVALUATION OPTION  #
      DEF OLBS           #   6 #;      # LOCAL_BYTE_SIZE OPTION        #
      DEF OIF            #   7 #;      # INPUT_FILE OPTION             #
      DEF OOF            #   8 #;      # OUTPUT_FILE OPTION            #
      DEF OPCM           #   9 #;      # PORT_COMMAND_MODE OPTION      #
      DEF OTF            #  10 #;      # TRANSFER_FORMAT OPTION        #
      DEF OTM            #  11 #;      # TRANSFER_MODE OPTION          #
      DEF OTS            #  12 #;      # TRANSFER_STRUCTURE OPTION     #
      DEF OTT            #  13 #;      # TRANSFER_TYPE OPTION          #
      DEF OVM            #  14 #;      # VERBOSE_MODE OPTION           #
      DEF OPTSIZ$        #  14 #;      # SIZE OF FTP OPTIONS INFO      #
  
      ITEM I             I;            # LOOP INDUCTION VARIABLE       #
      ITEM CRLF          U = X"0D0A00000000000";
      ITEM SPACING       U = O"55550000000000000000"; 
  
      ARRAY FTPOPT [01:OPTSIZ$] S(5); 
        BEGIN 
        ITEM FTPO$LINE   C(00,00,HDRSIZ$) = 
       ["AUTO_LOGIN_MODE            :  ", 
        "DEBUG_MODE                 :  ", 
        "BELL_MODE                  :  ", 
        "DEFAULT_CODE_SET           :  ", 
        "EXPRESSION_EVALUATION      :  ", 
        "LOCAL_BYTE_SIZE            :  ", 
        "INPUT_FILE                 :  ", 
        "OUTPUT_FILE                :  ", 
        "PORT_COMMAND_MODE          :  ", 
        "TRANSFER_FORMAT            :  ", 
        "TRANSFER_MODE              :  ", 
        "TRANSFER_STRUCTURE         :  ", 
        "TRANSFER_TYPE              :  ", 
        "VERBOSE_MODE               :  "];
        ITEM FTPO$VALUE  C(03,00,10); 
        ITEM FTPO$ZBYTE  U(04,00,60) = [OPTSIZ$(0)];
        END 
  
      ARRAY REMOTEHN [00:00] S(3);     # REMOTE HOST NAME TEMPLATE     #
        BEGIN 
        ITEM REMHN       C(00,00,HDRSIZ$) = 
       ["REMOTE_HOST_NAME           :  "];
        END 
      CONTROL EJECT;
# 
*     START MAIN PROCEDURE
# 
      FTPO$VALUE[OALM] = FTPAUTOM;     # STORE AUTO_LOGIN_MODE         #
      FTPO$VALUE[ODM]  = FTPDBUGM;     # STORE DEBUG_MODE              #
      FTPO$VALUE[OBM]  = FTPBELLM;     # STORE BELL_MODE               #
      FTPO$VALUE[ODCS] = FTPDCSET;     # STORE DEFAULT_CODE_SET        #
      FTPO$VALUE[OEE]  = FTPEXPEM;     # STORE EXPESSION_EVALUATION    #
      FTPO$VALUE[OLBS] = FTPBYTE;      # STORE LOCAL_BYTE_SIZE         #
      FTPO$VALUE[OIF]  = FTPINPUT;     # STORE INPUT_FILE              #
      FTPO$VALUE[OOF]  = FTPOUTPUT;    # STORE OUTPUT_FILE             #
      FTPO$VALUE[OPCM] = FTPPORTM;     # STORE PORT_COMMAND_MODE       #
      FTPO$VALUE[OTF]  = FTPFORM;      # STORE TRANSFER_FORMAT         #
      FTPO$VALUE[OTM]  = FTPMODE;      # STORE TRANSFER_MODE           #
      FTPO$VALUE[OTS]  = FTPSTRU;      # STORE TRANSFER_STRUCTURE      #
      FTPO$VALUE[OTT]  = FTPTYPE;      # STORE TRANSFER_TYPE           #
      FTPO$VALUE[OVM]  = FTPVERBM;     # STORE VERBOSE_MODE            #
# 
*     DISPLAY CURRENT PARAMETER SETTINGS. 
# 
      FOR I = 1 STEP 1
        WHILE I LQ OPTSIZ$ DO 
        BEGIN                          # LOOP THRU ALL LINES OF TABLE  #
        FCSOWOF (FTPOPT[I], INTERNAL$);# WRITE LINE TO OUTPUT FILE     #
        END 
# 
*     IF REMOTE CONNECTION EXISTS THEN DISPLAY THE HOST NAME. 
# 
      IF FTPSTATE LAN FTPUOPEN NQ 0 
      THEN
        BEGIN                          # CONNECTION TO REMOTE HOST     #
        OUTLEN = 0;                    # INITIALIZE OUTPUT LENGTH      #
        NETUCDA (REMOTEHN, 0, HDRSIZ$, OUTBUF,
                 OUTLEN, FALSE);       # COPY REMOTE HOST NAME TEMPLATE#
        NETUCAS (FTPHOST, 0, FTPHSIZE,
                 OUTBUF, OUTLEN);      # COPY HOST NAME                #
        NETUCAS (CRLF, 0, 2,
                 OUTBUF, OUTLEN);      # COPY CR + LF                  #
        FCSOWOF (OUTBUF, OUTLEN);      # WRITE LINE TO OUTPUT FILE     #
        END 
  
      FCSOWOF (SPACING, INTERNAL$);    # WRITE BLANK LINE TO OUTPUT    #
  
      RETURN;                          # RETURN TO CALLER              #
  
      END                              # FCSCDFO                       #
  
      TERM
