;;; tramp-gw.el --- Tramp utility functions for HTTP tunnels and SOCKS gateways
-;; Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2012 Free Software Foundation, Inc.
;; Author: Michael Albinus <michael.albinus@gmx.de>
;; Keywords: comm, processes
(when (featurep 'xemacs)
(byte-compiler-options (warnings (- unused-vars)))))
+;; We don't add the following methods to `tramp-methods', in order to
+;; exclude them from file name completion.
+
;; Define HTTP tunnel method ...
;;;###tramp-autoload
(defconst tramp-gw-tunnel-method "tunnel"
(list "Default server" "socks" tramp-gw-default-socks-port 5))
;; Add a default for `tramp-default-user-alist'. Default is the local user.
-(add-to-list 'tramp-default-user-alist
- `(,tramp-gw-tunnel-method nil ,(user-login-name)))
-(add-to-list 'tramp-default-user-alist
- `(,tramp-gw-socks-method nil ,(user-login-name)))
+;;;###tramp-autoload
+(add-to-list
+ 'tramp-default-user-alist
+ (list (concat "\\`"
+ (regexp-opt (list tramp-gw-tunnel-method tramp-gw-socks-method))
+ "\\'")
+ nil (user-login-name)))
;; Internal file name functions and variables.
tramp-gw-vector 4
"Opening auxiliary process `%s', speaking with process `%s'"
proc tramp-gw-gw-proc)
- (tramp-set-process-query-on-exit-flag proc nil)
+ (tramp-compat-set-process-query-on-exit-flag proc nil)
;; We don't want debug messages, because the corresponding debug
;; buffer might be undecided.
(let (tramp-verbose)
:name (tramp-buffer-name aux-vec) :buffer nil :host 'local
:server t :noquery t :service t :coding 'binary))
(set-process-sentinel tramp-gw-aux-proc 'tramp-gw-aux-proc-sentinel)
- (tramp-set-process-query-on-exit-flag tramp-gw-aux-proc nil)
+ (tramp-compat-set-process-query-on-exit-flag tramp-gw-aux-proc nil)
(tramp-message
vec 4 "Opening auxiliary process `%s', listening on port %d"
tramp-gw-aux-proc (process-contact tramp-gw-aux-proc :service))))
(tramp-file-name-host gw-vec)))
;; Declare the SOCKS server to be used.
(socks-server
- (list "Tramp tempory socks server list"
+ (list "Tramp temporary socks server list"
;; Host name.
(tramp-file-name-real-host gw-vec)
;; Port number.
(setq tramp-gw-gw-proc
(funcall
socks-function
- (tramp-buffer-name gw-vec)
- (tramp-get-buffer gw-vec)
+ (tramp-get-connection-name gw-vec)
+ (tramp-get-connection-buffer gw-vec)
(tramp-file-name-real-host target-vec)
(tramp-file-name-port target-vec)))
(set-process-sentinel tramp-gw-gw-proc 'tramp-gw-gw-proc-sentinel)
- (tramp-set-process-query-on-exit-flag tramp-gw-gw-proc nil)
+ (tramp-compat-set-process-query-on-exit-flag tramp-gw-gw-proc nil)
(tramp-message
vec 4 "Opened %s process `%s'"
(case gw-method ('tunnel "HTTP tunnel") ('socks "SOCKS"))
(setq proc (open-network-stream
name buffer (nth 1 socks-server) (nth 2 socks-server)))
(set-process-coding-system proc 'binary 'binary)
- (tramp-set-process-query-on-exit-flag proc nil)
+ (tramp-compat-set-process-query-on-exit-flag proc nil)
;; Send CONNECT command.
(process-send-string proc (format "%s%s\r\n" command authentication))
(tramp-message
;; Trap errors to be traced in the right trace buffer. Often,
;; proxies have a timeout of 60". We wait 65" in order to
;; receive an answer this case.
- (condition-case nil
- (let (tramp-verbose)
- (tramp-wait-for-regexp proc 65 "\r?\n\r?\n"))
- (error nil))
+ (ignore-errors
+ (let (tramp-verbose)
+ (tramp-wait-for-regexp proc 65 "\r?\n\r?\n")))
;; Check return code.
(goto-char (point-min))
(narrow-to-region
;; * Provide descriptive Commentary.
;; * Enable it for several gateway processes in parallel.
-;; arch-tag: 277e3a81-fdee-40cf-9e6b-59626292a5e0
;;; tramp-gw.el ends here