Function: ange-ftp-gwp-start

ange-ftp-gwp-start is a byte-compiled function defined in ange-ftp.el.gz.

Signature

(ange-ftp-gwp-start HOST USER NAME ARGS)

Documentation

Login to the gateway machine and fire up an FTP process.

Source Code

;; Defined in /usr/src/emacs/lisp/net/ange-ftp.el.gz
(defun ange-ftp-gwp-start (host user name args)
  "Login to the gateway machine and fire up an FTP process."
  ;; If `non-essential' is non-nil, don't reopen a new connection.  It
  ;; will be caught in Tramp.
  (when non-essential
    (throw 'non-essential 'non-essential))
  (let (;; It would be nice to make process-connection-type nil,
	;; but that doesn't work: ftp never responds.
	;; Can anyone find a fix for that?
	(proc (let ((process-connection-type t))
		(start-process name name
			       ange-ftp-gateway-program
			       ange-ftp-gateway-host)))
	(ftp (mapconcat 'identity args " ")))
    (set-process-query-on-exit-flag proc nil)
    (set-process-sentinel proc 'ange-ftp-gwp-sentinel)
    (set-process-filter proc 'ange-ftp-gwp-filter)
    (with-current-buffer (process-buffer proc)
      (goto-char (point-max))
      (set-marker (process-mark proc) (point)))
    (setq ange-ftp-gwp-running t
	  ange-ftp-gwp-status nil)
    (ange-ftp-message "Connecting to gateway %s..." ange-ftp-gateway-host)
    (while ange-ftp-gwp-running		;perform login sequence
      (accept-process-output proc))
    (unless ange-ftp-gwp-status
      (ange-ftp-error host user "unable to login to gateway"))
    (ange-ftp-message "Connecting to gateway %s...done" ange-ftp-gateway-host)
    (setq ange-ftp-gwp-running t
	  ange-ftp-gwp-status nil)
    (process-send-string proc ange-ftp-gateway-setup-term-command)
    (while ange-ftp-gwp-running		;zap ^M's and double echoing.
      (accept-process-output proc))
    (unless ange-ftp-gwp-status
      (ange-ftp-error host user "unable to set terminal modes on gateway"))
    (setq ange-ftp-gwp-running t
	  ange-ftp-gwp-status nil)
    (process-send-string proc (concat "exec " ftp "\n")) ;spawn ftp process
    proc))