home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 May / PCW596.iso / wtest / clico / sunsoft / pcnfs51 / pcnfs51.lzh / TELNETW.ZOO / kertrans.ecf < prev    next >
Text File  |  1994-08-27  |  8KB  |  246 lines

  1. set nover
  2. !-------------------------------------------------------------------------------
  3. !                   TELNET/TELNETW KERMIT File Transfer Utility
  4. !-------------------------------------------------------------------------------
  5. !
  6. !-------------------------------------------------------------------------------
  7. !            General KERMIT file transfer utility
  8. !    This EM command file transfers files to or from the HOST using Kermit
  9. !    Server mode. It will login if necessary, start kermit, transfer the
  10. !    file(s) and leave the HOST in the same state as it was found, logged
  11. !    in, at the Command Prompt or in Kermit mode. It can be called
  12. !    from a DOS batch file or from an EM cmd file. Modification of this
  13. !    command file may be necessary to work with HOST systems other then
  14. !    a VAX or with kermit versions other then Kermit32.
  15. !
  16. !        PARAMETERS:
  17. !        [p1] = Username ("ANSWERBACK" uses SEND/ANSWERBACK string)
  18. !        [p2] = Password ("ANSWERBACK" uses SEND/ANSWERBACK string)
  19. !        p3 = 1 if called from EM, 0 if called from DOS
  20. !        p4 = kermit command
  21. !        p5 = File transfer type [(A)scii, (B)inary, (F)ixed]
  22. !             (Default = Ascii)
  23. !        p6 = Source file name,
  24. !        p7 = Destination file name
  25. !        [p8] = Host node name (Option must include username/password)
  26. !        DOS EXAMPLE:
  27. !         DOS batch file VSEND.BAT -
  28. !            @KERBIN [USER] [PASSWORD] 0 SEND BINARY %1 %2 [NODE]
  29. !         ECL command file ESEND.ECF -
  30. !            @KERBIN [USER] [PASSWORD] 1 SEND BINARY p1 p2 [NODE]
  31. !-------------------------------------------------------------------------------
  32. !    Note:    A USERNAME and/or PASSWORD of "ANSWERBACK" forces the command
  33. !        SEND/ANSWERBACK to be used to send a consealed username/password
  34. !        or password. Make sure that the ANSWERBACK string ends with a
  35. !        RETURN or the login will fail.
  36. !-------------------------------------------------------------------------------
  37.  
  38. on abort then goto done
  39. set abort
  40.  
  41. !    If no username or password, reset p3 - p8
  42.  
  43. if (p1 .nes. "0") .and. (p1 .nes. "1") then goto check_p
  44. p8 = p6
  45. p7 = p5
  46. p6 = p4
  47. p5 = p3
  48. p4 = p2
  49. p3 = p1
  50. p2 = ""
  51. p1 = ""
  52.  
  53. !    If no password, reset p3 - p8
  54.  
  55. check_p:
  56. if (p2 .nes. "0") .and. (p2 .nes. "1") then goto set_type
  57. p8 = p7
  58. p7 = p6
  59. p6 = p5
  60. p5 = p4
  61. p4 = p3
  62. p3 = p2
  63. p2 = ""
  64. !    Get file transfer type
  65.  
  66. set_type:
  67. ftype = "ASCII"
  68. if f$ext(0,1,"''p5'") .eqs. "B" then ftype = "BINARY"
  69. if f$ext(0,1,"''p5'") .eqs. "F" then ftype = "FIXED"
  70.  
  71. !*******************************************************************************
  72. !*            *** PROMPT VARIABLES ***
  73. !* The following symbols may need changing for different host systems *
  74. host_prompt = "<null>"                !* Host prompt *
  75. server_prompt = "local> "            !* Server prompt *
  76. server_connect = "c"                !* Server connect command *
  77. user_prompt = "Username:"            !* User prompt *
  78. password_prompt = "Password:"            !* Passwod prompt *
  79. kermit_prompt = "32"                !* Kermit prompt *
  80. logout_cmd = "logout"                !* Logout command *
  81. exit_cmd = "exit"                !* Exit kermit or other cmd *
  82. abort_signal = ""                !* Xoff, Abort or break signal *
  83. !*******************************************************************************
  84.  
  85. !*        * set kermit file type command *
  86. set_file_type_cmd = "write host ""set file type ''ftype'"""
  87.  
  88. p3 = p3                        !set p3 numeric
  89. login_fl = 0
  90. ker_label := ker_exit
  91.  
  92. if "''p6'" .eqs."" then goto nofile
  93.  
  94. on warning then goto error
  95. set on
  96. display "EM-I-TRANSETUP, File transfer SETUP in progress"
  97.  
  98. !    Synchronize to HOST command input mode
  99.  
  100. set noon                    !suppress timeout error msg
  101. wait /nodisp /nomessage /time=1            !flush for 1 seconds
  102. set on
  103.  
  104. !-------------------------------------------------------------------------------
  105. !            Check for login
  106. !-------------------------------------------------------------------------------
  107.  
  108. login:
  109. if p1 .eqs. "" then goto nologin_prompt        !check for username/password
  110. if p8 .eqs. "" then goto login1            !check for network connect
  111. set noon
  112. set host 'p8'                    !connect to network
  113. set on
  114. login1:
  115. write host                    !send return for login prompt
  116. set noon                    !suppress timeout error msg
  117. wait /error=nouser /nodisp /nomessage /time=3 user_prompt
  118. goto gotprompt
  119. nouser:
  120. write host abort_signal                !send abort or break
  121. write host                    !send return for login prompt
  122. wait /error=server_prompt /nodisp /nomessage /time=3 user_prompt
  123. goto gotprompt
  124. server_prompt:
  125. write host                    !send return for server prompt
  126. wait /error=nologin_prompt/nodisp /nomessage /time=3 server_prompt
  127. write host server_connect
  128. write host                    !send return for login prompt
  129. wait /error=nologin_prompt /nodisp /nomessage /time=3 user_prompt
  130. gotprompt:
  131. set noabort
  132. if p1 .eqs. "ANSWERBACK" then goto send_answerback
  133. write host "''p1'"                !send username
  134. wait /error=nologin /nodisp /nomessage /time=3 password_prompt
  135. set on
  136. if p2 .nes. "ANSWERBACK" then goto send_pass
  137. send_answerback:
  138. send /answerback                !send ANSWERBACK string
  139. goto wait_prompt
  140. send_pass:
  141. write host "''p2'"
  142.  
  143. wait_prompt:
  144. set noon                    !suppress timeout error msg
  145. write host                    !send return for login prompt
  146. !        wait for host prompt
  147. wait /error=noprompt /nodisp /nomessage /time=10 host_prompt
  148. set on
  149. login_fl = 1
  150. goto kermit
  151.  
  152. nologin_prompt:
  153. set noon                    !suppress timeout error msg
  154. write host                    !send return for login prompt
  155. !        Wait for host prompt
  156. wait /error=noprompt /nodisp /nomessage /time=10 host_prompt
  157. set on
  158.  
  159. !-------------------------------------------------------------------------------
  160. !        KERMIT file transfer routine
  161. !-------------------------------------------------------------------------------
  162.  
  163. kermit:
  164. set nover
  165. on abort then goto error
  166. on warning then continue
  167. on error then goto error
  168. set abort
  169. set on
  170. write host "kermit"
  171. set noon                    !suppress timeout error msg
  172. !        Wait for kermit prompt
  173. wait /error='ker_label' /nodisp /nomessage /time_out=5 kermit_prompt
  174. set on
  175. !*        * Set file type *
  176. set_file_type_cmd
  177. write host "server"
  178. set noon                    !suppress timeout error msg
  179. wait /nodisp /nomessage /time=1            !flush for 1 seconds
  180. set on
  181. kermit 'p4' 'p6' 'p7'
  182. if $statusid .eqs. "FILEOPEN" then delay/nodisp/nomess 3
  183. on warning then goto error
  184. kermit end
  185.  
  186. !    Exit routines
  187.  
  188. done:
  189. status_code = $status
  190.  
  191. exit:
  192. set noabort
  193. on error then goto exit_out
  194. write host exit_cmd                !exit if in kermit or other cmd
  195. if login_fl then write host logout_cmd        !logout
  196. set noon                    !suppress timeout error msg
  197. wait /nodisp /nomessage /time=1            !flush for 1 seconds
  198.  
  199. exit_out:
  200. if p3 then exit status_code
  201. exit/em status_code
  202.  
  203. !-------------------------------------------------------------------------------
  204. !            Exit and error handler
  205. !-------------------------------------------------------------------------------
  206.  
  207. error:
  208. on warning then goto error
  209. status_code = $status
  210. display "EM-I-TRANERROR, File transfer ERROR, exiting routine"
  211. on abort then goto abort_out
  212. delay/nodisp/nomess 3
  213. set abort
  214. kermit end
  215. goto exit
  216.  
  217. abort_out:
  218. write/nocr host abort_signal            !abort what ever
  219. goto exit
  220.  
  221. ker_exit:
  222. ker_label:=ker_cont_y
  223. write host exit_cmd                !exit if in kermit or other cmd
  224. goto kermit
  225.  
  226. ker_cont_y:
  227. ker_label:=error
  228. kermit end
  229. goto kermit
  230.  
  231. nologin:
  232. display "EM-W-BADLOGIN, Improper LOGIN response - check connection and try again"
  233. goto noprompt1
  234. noprompt:
  235. display "EM-W-NORESPONSE, Improper HOST prompt response - check program prompt variables"
  236. noprompt1:
  237. delay/nodisp/nomess 3
  238. if p3 then exit
  239. exit/em
  240.  
  241. nofile:
  242. display "EM-W-NOFILENAM, File name not specified"
  243. delay/nodisp/nomess 3
  244. if p3 then exit
  245. exit/em
  246.