HP3000-L Archives

December 2009, Week 1

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
cathlene mcrae <[log in to unmask]>
Reply To:
cathlene mcrae <[log in to unmask]>
Date:
Fri, 4 Dec 2009 17:33:17 -0500
Content-Type:
multipart/mixed
Parts/Attachments:
text/plain (365 bytes) , SFTPPUT.txt (49 kB)
This Secure FTP on MPE/iX refers to a command file SFTPPUT.   
http://www.docs.hp.com/en/14248/Securing-FTP-Whitepaper.pdf

I have attached a copy of this file,  it's the same file which was on Jazz. 


Best Regards
Cathlene McRae 



* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *



PARM localfiles=? remotesystem=? remoteuser=? remotedir=* encrypt=true & remoteSysT="MPE/iX" remSysHasCrypt="y" entry=main # # This script transfers, via FTP/iX, "localfiles" from the host MPE system to # the "remotesystem". Depending on the "encrypt" parameter and the type of # file (needs to be ASCII) the file(s) may be encrypted, via the POSIX crypt # utility, before it is transferred. If the remote system is an MPE system a # job will be streamed, via the 'site stream' FTP command, which automatically # decrypts the file. If the remote system is not an MPE system then the key, # assuming the file is encrypted, is displayed to $stdlist for use to manually # decrypt the file via POSIX crypt. To force this script to evaluate the # remote system type enter "*" as the value of 'remoteSysT'. # # FTP PASSIVE mode is used to increase the chances of being able to connect # through client firewalls. # # Parameters are defined in the HELP section at the end of this script. # An important note on crypt and IO redirection via the C library is at the end # of the script. # if '!entry' = 'main' then    # main entry point: validate parms, prompt for remote user password if,    # needed, etc.    echo    setvar _ftp_me basename(hpfile)    echo --- !_ftp_me --- version X.08    echo                                                                                     # Help/usage needed?    if pos('?','!localfiles!remotesystem!remoteuser') > 0 then       xeq !hpfile !localfiles, !remotesystem, "!remoteuser" ;entry=help       escape    endif                                                                                     # validate "encrypt" parm    if typeof(!encrypt) <> 3 then       echo *** Error: expected a TRUE or FALSE for the "encrypt" parm.       echo This parameter controls whether or not to encrypt the file prior       echo to FTP'ing it to the remote system.       escape    endif                                                                                     # some MPE machines don't have the crypt utility installed.    if !encrypt and not finfo('crypt.hpbin.sys','exists') then       echo *** Error: encryption file: CRYPT.HPBIN.SYS missing.       echo Please download this file from http://jazz.external.hp.com/src       escape    endif                                                                                     # validate "remoteSysT" parm    setvar _ftp_remSysT ups("!remoteSysT")    if lft(_ftp_remSysT,3) = "MPE" then       # any variation of MPE is acceptable       setvar _ftp_remSysT "MPE/IX"    elseif not(_ftp_remSysT="*" or _ftp_remSysT="UNIX" or &               _ftp_remSysT="WINDOWS") then       echo *** Error: expected values for "remoteSysT" (remote system type) &            parm are:       echo "MPE/iX" or "Unix" or "Windows" or "*" (meaning unknown).       echo Specifying this parameter as non-* improves performance since the       echo system type for the remote system does not need to be detected.       escape    endif                                                                                     # validate "remSysHasCrypt" parm    setvar _ftp_remCrypt dwns(lft("!remSysHasCrypt",1))    if not (_ftp_remCrypt = "y" or _ftp_remCrypt = "n") then       echo *** Error: expected values for "remSysHasCrypt" parameter are "Y" &            or "N".       echo This parameter indicates if the remote MPE system has the crypt &             utility.       escape    endif    setvar _ftp_remCrypt (_ftp_remCrypt = "y")                                                                                     # Handle embedded remote system's user's password(s).    # Syntaxes supported are: username[:[pass]] or, for non-MPE users,    # username[/[pass]]. MPE username is "user.acct". MPE embedded passwords    # can be specified as: "user/upass.acct/apass" or "user.acct:upass,apass",    # but NOT "user.acct/upass,apass".    setvar _ftp_user "!remoteuser"    setvar _ftp_pass "*"    if pos(".",_ftp_user) > 0 then       # we better have an MPE user.acct       # capture and remove embedded passwords, if any       setvar _ftp_u_pwd ""       setvar _ftp_a_pwd ""       setvar _ftp_u word(_ftp_user,".")       setvar _ftp_a word(_ftp_user,".",-1)       if pos("/",_ftp_u) > 0 or pos("/",_ftp_a) > 0 then          # format is: user[/upass].acct[/apass]          if pos("/",_ftp_u) > 0 then             setvar _ftp_u_pwd word(_ftp_u,"/",-1)             setvar _ftp_u word(_ftp_u,"/")          endif          if pos("/",_ftp_a) > 0 then             setvar _ftp_a_pwd word(_ftp_a,"/",-1)             setvar _ftp_a word(_ftp_a,"/")          endif          setvar _ftp_user _ftp_u+"."+_ftp_a          setvar _ftp_pass _ftp_u_pwd+","+_ftp_a_pwd       elseif pos(":",_ftp_user) > 0 then          # format is: user.acct[:[[upass][,apass]]]          # note: _ftp_a (acct name) already contains ':[password(s)]'          setvar _ftp_a word(_ftp_a,":")          setvar _ftp_pass word(_ftp_user,":",-1)          setvar _ftp_user word(_ftp_user,":")          # break apart MPE passwords for possible stream job          if pos(",",_ftp_pass) > 0 then             setvar _ftp_u_pwd word(_ftp_pass,",")             setvar _ftp_a_pwd word(_ftp_pass,",",-1)          else             setvar _ftp_u_pwd _ftp_pass          endif       #else, no embedded MPE password(s)       endif                                                                                     else       # non-MPE user name. Format is: user[:pass] or user[/pass]       if delimpos(_ftp_user,":/") > 0 then          setvar _ftp_pass word(_ftp_user,":/",-1)          setvar _ftp_user word(_ftp_user,":/")       endif    endif                                                                                     # password(s) provided? If not, prompt.    # Note: a null, '', password is allowed in the remoteuser parm and will not    # trigger a prompt. Null passwords are specified as: "username:" or    # "username/".    if _ftp_pass = "*" and hpinteractive then       set echo=off       if pos(".",_ftp_user) > 0 then          # assume MPE user.acct          echo Password for !_ftp_user on !remotesystem?          setvar _ftp_pass &                repl(input(" (MPE password syntax is 'user,acct') ")," ","")          # remove quote marks from in case user enters literally "upass,apass"          setvar _ftp_pass repl(repl(_ftp_pass,'"',''),"'","")          if setvar(_ftp_u_pwd,word(_ftp_pass,",")) <> _ftp_pass then             # extract acct password             setvar _ftp_a_pwd word(_ftp_pass,",",-1)          endif       else          setvar _ftp_pass &                repl(input("Password for !_ftp_user on !remotesystem ")," ","")       endif       set echo=on       echo    endif                                                                                     # convert "remotedir" to POSIX syntax, if needed    setvar _ftp_logonGrp ""    if setvar(_ftp_remDir,ltrim(rtrim("!remotedir"))) <> "*" and &       alpha(lft(_ftp_remDir,1)) then       # convert assumed MPE group[.acct] name to POSIX syntax       if pos(".",setvar(_ftp_remDir,ups(_ftp_remDir))) = 0 then          # qualify MPE group name          setvar _ftp_remDir _ftp_remDir+"."+hpaccount       endif       setvar _ftp_remDir "/"+word(_ftp_remDir,".",-1)+"/"+word(_ftp_remDir,".")       setvar _ftp_logonGrp "," + word(_ftp_remDir,"/",-1)    endif                                                                                     errclear    continue    listfile !localfiles,6;seleq=[object=file] >flist    if hpcierr <> 0 then       echo *** Error: LISTFILE !localfiles       print flist       purge flist;temp       escape    endif                                                                                     # FTP the files contained in flist.    continue    xeq !hpfile !localfiles, !remotesystem, "!_ftp_user", !remotedir, !encrypt &        !remoteSysT, entry=put <flist                                                                                     # clean up    purge flist;temp # ###deletevar _ftp_@    return                                                                                                                                                                   elseif '!entry' = 'put' then    # The 'put' entry point reads the output of the listfile,6, optionally    # encrypts each file, and FTP's it to the remotesystem. If the remote    # system is MPE then we decrypt the transferred file by creating a stream    # job, sending it across, and executing it via "site stream". There are also    # some considerations regarding crypt mentioned in the intro comments.    # Note: only ASCII files with an eof > 0 are encrypted.    #    setvar _ftp_total setvar(_ftp_cnt,finfo(hpstdin,'eof'))    setvar _ftp_xfer setvar(_ftp_cryptCnt,0)                                                                                     # see if we need to determine the remote system type.    if _ftp_remSysT = "*" then       # get remote sys type via FTP's syst command       echo > ftpin EXITONERROR       echo >>ftpin OPEN !remotesystem       echo >>ftpin USER !_ftp_user !_ftp_pass       echo >>ftpin PASSIVE       echo >>ftpin SYST       echo >>ftpin :setvar _ftp_remSysT FTPLASTREPLY       echo >>ftpin BYE       continue       xeq ftp.arpa.sys <ftpin >ftplist       if FTPLASTERR >= 0 then          setvar _ftp_remSysT ups(word(_ftp_remSysT,,2))          echo Remote system type is: !_ftp_remSysT          echo       elseif FTPLASTERR = -66 then          echo *** FTP error 66: cannot connect to "!remotesystem".          escape       elseif FTPLASTERR = -65 then          echo *** FTP error 65: invalid user ID or password.          escape       else          echo Warn: cannot determine remote system type. Default is "unkn".          echo *** FTP $stdlist follows:          echo          pause 2          print ftplist          setvar _ftp_remSysT "*"       endif    endif                                                                                     # If the remote system is MPE/iX and the encrypt parm is true then we'll    # likely need to decrypt the file on the remote MPE machine.    # First we need to create a version of crypt without PH cap, see crypt note.    if (not _ftp_remCrypt) and _ftp_remSysT = "MPE/IX" and !encrypt then       # make local copy of crypt w/o PH cap       setvar _ftp_cryptF 'crypt.hpbin.sys'       setvar hpcierr 0       continue       copy crypt.hpbin.sys,crypt01;yes       if hpcierr = 0 then          setvar _ftp_cryptF 'crypt01'          setvar hpcierr 0          setjcw CJCW 0          continue          xeq linkedit.pub.sys "altprog crypt01;cap=ia,ba" >$null          if hpcierr <> 0 or CJCW <> 0 then             echo Warn: unable to remove PH cap from crypt. Decryption on remote             echo system may fail if remote group lacks PH.          endif       endif    endif                                                                                                                                                                      # *** main loop ***    # read filenames from $stdin input file, encrypt if necessary, and transfer    # file to remote system.    while setvar(_ftp_cnt,_ftp_cnt-1) >= 0 and &          setvar(_ftp_file,ltrim(rtrim(input()))) <> "" do                                                                                        # convert MPE filenames to POSIX       if lft(_ftp_file,1) <> "/" then          setvar _ftp_file "/" + word(_ftp_file,".",-1) + "/" + &                 word(_ftp_file,".",2) + "/" + word(_ftp_file,".")       endif                                                                                        setvar _ftp_baseN basename(_ftp_file)       setvar _ftp_putAs ""       if _ftp_remDir <> '*' then          setvar _ftp_putAs _ftp_remDir+"/"       endif                                                                                        # create FTP's $stdin temp file       echo >ftpin OPEN !remotesystem       echo >>ftpin USER !_ftp_user !_ftp_pass       echo >>ftpin PASSIVE                                                                                        # encrypt file?       setvar _ftp_did_crypt false       if !encrypt and &           pos("ASCII",setvar(_ftp_fopts,finfo(_ftp_file,'fmtfopt'))) > 0 and &           finfo(_ftp_file,'eof') > 0 then          # add the suffix ".enc" and encrypt the file in the CWD. However,          # since some of the file xfers will be from/to MPE groups, limit the          # encrypted file's name to 16 characters (when remote sys is MPE).          if _ftp_remSysT = "MPE/iX" then              setvar _ftp_encF "./"+lft(_ftp_baseN,16-4)+".enc"          else              setvar _ftp_encF "./"+_ftp_baseN+".enc"          endif                                                                                           # create key based on MPE file properties          setvar _ftp_key &                    decimal(finfo(_ftp_file,'eof'))+ &                    decimal(setvar(_ftp_rsize,finfo(_ftp_file,'recsize')))+ &                    decimal(finfo(_ftp_file,'bytefilesize'))                                                                                           echo ** encrypting file : !_ftp_file          # set up the file equations necessary to get crypt to work correctly -          # see IO redirection note near the end of this script.          file cryptin=!_ftp_file,old          file cryptout=!_ftp_encF;rec=-1,,b,ascii;disc=2147483647          setvar hpcierr 0          setjcw CJCW 0          continue          xeq crypt.hpbin.sys "!_ftp_key" <*cryptin >*cryptout          if not (setvar(_ftp_did_crypt,&                  (CJCW=0 and HPCIERR=0 and finfo(_ftp_encF,'exists')))) then             echo *** Error: encryption of !_ftp_file failed...             escape          endif          setvar _ftp_cryptCnt _ftp_cryptCnt+1                                                                                           echo >>ftpin PUT !_ftp_encF !_ftp_putAs!_ftp_encF          echo >>ftpin :setvar _ftp_lastreply FTPLASTREPLY                                                                                           if _ftp_did_crypt and _ftp_remSysT = "MPE/IX" then             # special case where source and target systems are MPE.             # The goal is to be able to automatically decrypt, on the remote             # system, the file just FTP'd over. To do this we do the following:             # 1) xfer the crypt pgm in case not present on remote system (note             # if the remote sys has crypt this step is skipped),             # 2) create a jobstream (JCL) file which decrypts the file,             # 3) xfer this jobstream file,             # 4) execute this jobstream via FTP's 'site stream' command.             if not _ftp_remCrypt then                echo >>ftpin PUT !_ftp_cryptF !"_ftp_putAs"CRYPT01             endif             echo >>ftpin PUT strmin !"_ftp_putAs"JDECRYPT             echo >>ftpin SITE STREAM !"_ftp_putAs"JDECRYPT                                                                                              # create stream job to be sent to the remote system and             # executed there via SITE STREAM.             xeq !hpfile !localfiles, !remotesystem, "!remoteuser" ;entry=job &                 >strmin          else             # remote system is not MPE             echo KEY: !_ftp_key          endif                                                                                        else          # no encryption done          echo >>ftpin PUT !_ftp_file !_ftp_putAs!_ftp_baseN          echo >>ftpin :setvar _ftp_lastreply FTPLASTREPLY       endif                                                                                        # **** do the actual ftp file transfer ****       echo >>ftpin QUIT       echo ** transferring file: !_ftp_file       continue       xeq ftp.arpa.sys <ftpin >ftplist                                                                                        if (FTPLASTERR = 0) and (FTPXFERFILES > 0) and &          (FTPREQFILES = FTPXFERFILES) then          # requested number of files were transferred.          setvar _ftp_xfer _ftp_xfer+1       else          # FTP connection or transfer error...          echo          echo *** Error transferring file: !_ftp_file          if _ftp_did_crypt then             echo (actual file for FTP 'put' is: !_ftp_encF)          endif          if FTPLASTERR = -66 then             echo *** FTP error 66: cannot connect to "!remotesystem".             escape          elseif FTPLASTERR = -65 then             echo *** FTP error 65: invalid user ID or password.             escape          elseif pos('pathname specified does not exist.',_ftp_lastreply)>0 then             # remote dir/group name is not valid, so all xfers will fail...             echo *** Remote directory !_ftp_PutAs is invalid.             escape          elseif pos('SITE STREAM',FTPLASTMSG) > 0 then             # assume site stream cmd failed. Could be remote system is not MPE             echo *** SITE Stream failed on remote system. Script expects &                      "!remotesystem"             echo to be an MPE/iX system.             escape          else             # ok to continue with the script even with this xfer error             echo FTP $stdlist follows:             pause 2             echo ...             print ftplist;start=-10             echo             if _ftp_cnt > 0 then                echo continuing...                echo             endif          endif       endif                                                                                        if _ftp_did_crypt then          # delete the local encrypted file          purge !_ftp_encF;temp       endif    endwhile                                                                                     # report some stats    echo    echo =====================================================    if _ftp_xfer = 1 then       echo 1 file transferred successfully.    else       echo !_ftp_xfer files transferred successfully.    endif    if _ftp_xfer <> _ftp_total then       echo *** Error: ![_ftp_total-_ftp_xfer] out of !_ftp_total files not &            transferred.    endif    if _ftp_cryptCnt = 1 then       echo 1 file was encrypted.    else       echo !_ftp_cryptCnt files were encrypted.    endif    echo                                                                                     # delete crypt01 file, if created.    purge crypt01 >$null    return                                                                                                                                                                   elseif '!entry' = 'job' then    # The 'job' entry point creates a job stream to be executed on the remote    # MPE system. This jobs main purpose is to automatically decrypt the    # encrypted file just FTP'd across. STDLIST has been redirected to the    # name of the job stream(JCL) file.    # echo !!job FTPCRYPT,!_ftp_u/!_ftp_u_pwd.!_ftp_a/!_ftp_a_pwd!_ftp_logonGrp;&      outclass=,2 echo !# This job was created by !hpfile to decrypt file echo !# !_ftp_file sent from !hpsysname at IP: !hplocipaddr. echo !# Job create time: !hpdatef !hptimef echo !# Job created by user: !hpuser.!hpaccount echo !# echo !!if not finfo("!_ftp_encF","exists") then echo ! tell !_ftp_user; Encrypted file !_ftp_encF missing. Job stopped. echo ! escape 1 echo !!endif echo !!setvar _decryptf "./"+basename("!_ftp_encF",".enc")+".dec" echo !!echo Decrypting !_ftp_encF as !!_decryptf echo !!setvar _rootfile "./!_ftp_baseN" echo !# remember FTP overwrites the target file, if it exists echo !!purge !!_rootfile !>$null echo !# decrypt the file based on the same key echo !# local copy of crypt.hpbin.sys sent as "/CWD/CRYPT01" echo !# but crypt01 can be purged by a copy of this job echo !# running simultaneously. Try to handle this... echo !!setvar _cryptF "CRYPT01" echo !!if not finfo(_cryptF,"exists") then echo ! setvar _cryptF "CRYPT.HPBIN.SYS" echo ! if not finfo(_cryptF,"exists") then echo ! tell !_ftp_user; Missing CRYPT program to decrypt file. echo ! tell !_ftp_user; Can't find CRYPT01 or CRYPT.HPBIN.SYS. echo ! tell !_ftp_user; !_ftp_encF needs to be decrypted. Job stopped. echo ! escape 2 echo ! endif echo !!endif echo !# set up file equations for crypt echo !!file jcryin=!_ftp_encF,old echo !!file jcryout=!!_decryptf;rec=-1,,b,ascii;disc=2147483647 echo !!setjcw CJCW 0 echo !!setvar HPCIERR 0 echo !!continue echo !!xeq !!_cryptF "!_ftp_key" !<*jcryin !>*jcryout echo !!if not (CJCW=0 and HPCIERR=0 and &               finfo(_decryptf,'exists')) then echo ! tell !_ftp_user; Decryption failed on !_ftp_encF. Job stopped. echo ! escape 3 echo !!endif echo !# save decrypted file for either FCOPY or the rename below echo !!purge !!_decryptf !>$null echo !!save !!_decryptf echo !# don't fcopy the file if it was a bytestream file to begin with.                                                                                  if pos('BYTESTREAM',_ftp_fopts) = 0 then  # original file was not a bytestream file so ok to convert back to it's  # original file properties.  echo !# convert decrypted file from bytestream to fixed/variable file  # fcopy FROM=file eq  echo !!file fcin=!!_decryptf,old  # fcopy TO=file eq, need to create rec= & disc= side of file eq  echo !!file fcout=!!_rootfile,new &              ;rec=!_ftp_rsize,,![lft(word(_ftp_fopts,,2),1)],ascii &              ;disc=![finfo(_ftp_file,'limit')] &              ;code=![finfo(_ftp_file,'fcode')]  echo !# create a temp "YES" input file for fcopy  # note: don't need fcopy input "yes" file when run in batch for truncation  # prompt.  echo !!setvar HPCIERR 0  echo !!continue  echo !!fcopy from=*fcin;to=*fcout !>$null  echo !!if not (HPCIERR=0 and finfo(_rootfile,'exists')) then  echo ! tell !_ftp_user; FCOPY failed on !!_decryptf. HPCIERR=!!hpcierr. &                Job stopped.  echo ! escape 4  echo !!endif  echo !!purge !!_decryptf                                                                                  else  # original file was BS, no fcopy but need the right final name.  echo !!rename !!_decryptf, !!_rootfile  echo !!echo rename !!_decryptf, !!_rootfile endif                                                                                  echo !# clean up echo !!purge !_ftp_encF echo !!purge jdecrypt !>$null echo !!purge crypt01 !>$null echo !!eoj    return                                                                                                                                                                   elseif '!entry' = 'help' then    # The 'help' entry point displays help/usage text.    # echo !_ftp_me transfers one or more files, via FTP/iX, to the specified remote echo system. Most commonly the file(s) will be encrypted prior to being echo transferred using the POSIX 'crypt' utility. echo echo Usage: echo !_ftp_me fileset, remoteSystem, remoteUser, remoteDir, echo encrypt, remoteSysType, remSysHasCrypt echo where: echo 'fileset' (required) a single file or wildcarded fileset which can echo supplied in MPE or POSIX syntax. Eg. F@, ./f#, /ACCT/dir/f2 echo echo 'remotesystem' (required) the name or IP address of the system where the echo file is being transferred. The remote system can be all flavors of echo Unix, Windows or MPE, as long as the remote system can decrypt echo encrypted files via the POSIX crypt utility. The decryption is done echo automatically for MPE systems; whereas, non-MPE systems will need echo to run the crypt utility using the key which is displayed to echo $stdlist. echo echo 'remoteuser" - (required) the user name which FTP will use to connect to echo the remote system. The syntax is: "username[:password]" or echo "username[/password]". To suppress password prompting the username echo should terminate with a ":" or "/", meaning a null password, eg. echo 'foo:'. For MPE remote systems the username field consists of echo "user.account". If passwords are embedded in MPE user names the echo format is: "user/upass.acct/apass" or "user.acct:upass,apass". If all echo passwords are omitted the user may be prompted for the passwords. echo The expected user response for MPE passwords is: "userpass,acctpass". echo NOTE: the comma form of an MPE password causes quotes to be required echo for this parameter so that it is treated as a single token. echo echo 'remotedir' - (optional) the name of the directory (or group.account) on echo the remote system where the file will be sent. Syntax: "/dir", echo "./dir" "../dir", "~user", "group.acct", or "group". If omitted the echo remote user's home directory is assumed. echo echo 'encrypt' - (optional) TRUE (default) means to encrypt text files. FALSE echo means no encryption. However, even if 'encrypt' is TRUE, only non- echo empty ASCII files will be encrypted. echo echo 'remoteSysT' - (optional) "MPE/iX", default, means the remote system is echo known to be an MPE system. "Unix" means the remote system is known to echo be a Unix system. '*' means the remote system type will be determined echo by this script, which is extra overhead. If the file is encrypted and echo the remote system is MPE system then a job will be streamed on the echo remote system to decrypt the file and do some minor cleanup. echo echo 'remSysHasCrypt' - (optional) only applies when the remote system is MPE. echo "Y" (default) indicates that the remote system already has the crypt echo utility, and thus it does not need to be FTP'd across the wire. "N" echo means the remote MPE system does not have Crypt, in which case, a echo non-PH version is FTP'd to the remote system, executed, and then echo removed. If the remote system is not MPE this parameter is ignored. echo    return                                                                                  else    # Invalid entry point -- assume extra parm error...    echo *** Error: extra parameter '!entry'.    echo Enter !_ftp_me with no parameters for help text.    echo    return endif                                                                                  ################ Version History and Notes ####################                                                                                  Notes on crypt: crypt requires PH capability to load thus the group and   account containing crypt must have PH -- it doesn't seem to matter if the   user has PH or not. However, crypt does not NEED PH in order to run   properly, it was just linked with PH to make life interesting... Thus, crypt   is copied locally, PH is removed, and this copy is sent to the remote   system.                                                                                  Note on IO redirection: Crypt also as some strangeness around IO redirection.   It appears that a redirected filename cannot contain a leading "./" or "/"   when running crypt directly from the CI via an info= string. This may be an   artifact of the C library as other programs in hpbin.sys have similar   behavior. One solution is to run the shell with an input file which contains   the crypt command. In this case the filename can be absolute pathnames.   Another idea is to run the shell from the CI with a "-c crypt <name1 >name2"   but if "name1" or "name2" are absolute pathnames we get the same IO   redirection mentioned in the 1st sentence above. The solution chosen saves a   process create (the shell) and uses the CI's IO redirection via file   equations which create bytestream files and allow absolute pathnames. Be   CAREFUL if you change this part of the script!                                                                                  X.00 - Initial version based on scripts written by Murali. (JV) X.01 - uncommented the !EOJ line in the job and some minor cleanup. (JV) X.02 - some minor bug fixes based on testing in a "clean" group, improved        summary reporting, strip quotes from prompted passwords, detect FTP        error -66 indicating can't connect remote system. (JV) X.03 - fix test for crypt failing in temp job stream. Place ".enc" suffix file        in /tmp/_PIN-filename.enc to avoid problems with longer filenames under        an MPE group. (JV) X.04 - using PASSIVE ftp now to increase chances of transfer working across        client firewalls, display script version ID, some ftp connection error        fixes, changed previous versions to "X" since script is not ready for        customers yet, redirect ftp stdlist to a TEMP file for better error        messaging, which means no longer using /tmp/_PIN..., detect ftp xfer        errors by comparing ftpxferfiles with ftpreqfiles variables due to ftp        bug where >16 char filenames appear to be xfer'd to an MPE group (can't        due to fname length) but they aren't -- no ftp error reported in vars or        $stdlist. (JV) Note: this is not an ftp bug. It turns out that, even if        you ftp CD to a different location, when you PUT an absolute pathname        with no second name on the PUT line, FTP places the file in the location        defined by the full pathname-- ignoring the CD. This is how ftp works on        HP-UX too. X.05 - allow any string beginning with "mpe" to indicate the remote sys is MPE,        replace frombyte with FCOPY to preserve source file attributes, created        a 'job' entry to improve readability and increase performance. (JV) X.06 - don't call finfo to get 'recsize' twice, display encryption key for non-        MPE remote systems, redirect fcopy output to $null to make spoolfiles        less cluttered, detect bad remote dir and stop transfers, detects site        stream error, no longer use EXITONERR (in order for these errors to be        detectable), don't truncate ".enc" name for non-MPE remote systems. (JV) X.07 - minor spelling and help text fixes. (JV) X.08 - remotesysT now defaults to "mpe/ix", added new parm to indicate that        crypt exists on remote system, per BT queen djg. (JV) * To join/leave the list, search archives, change list settings, * * etc., please visit http://raven.utc.edu/archives/hp3000-l.html *

ATOM RSS1 RSS2