Function: socks--open-network-stream
socks--open-network-stream is a byte-compiled function defined in
socks.el.gz.
Signature
(socks--open-network-stream ORIG-FUN NAME BUFFER HOST SERVICE &rest PARAMS)
Source Code
;; Defined in /usr/src/emacs/lisp/net/socks.el.gz
(defun socks--open-network-stream (orig-fun name buffer host service &rest params)
(let ((route (and socks-override-functions
(socks-find-route host service))))
(if (not route)
(apply orig-fun name buffer host service params)
;; FIXME: Obey `params'!
(let* ((proc (socks-open-connection route))
(version (process-get proc 'socks-server-protocol))
(atype
(cond
((equal version 4)
(setq host (socks-nslookup-host host))
(if (not (listp host))
(error "Could not get IP address for: %s" host))
(setq host (apply #'unibyte-string host))
socks-address-type-v4)
(t
socks-address-type-name))))
(socks-send-command proc
socks-connect-command
atype
host
(if (stringp service)
(or
(socks-find-services-entry service)
(error "Unknown service: %s" service))
service))
(process-put proc 'socks-buffer buffer)
(process-put proc 'socks-host host)
(process-put proc 'socks-service service)
(set-process-filter proc nil)
(set-process-buffer proc (if buffer (get-buffer-create buffer)))
proc))))