;ELC
;;; Compiled
;;; in Emacs version 26.1
;;; with all optimizations.
;;; This file uses dynamic docstrings, first added in Emacs 19.29.
;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(byte-code "\300\301!\210\302\303\304\"\210\305\306\307\310\311\312\313\314\315\316& \210\317\320\321\322\315\306\323\324&\207" [require custom defalias socks-split-string split-string custom-declare-group socks nil "SOCKS support." :version "22.2" :prefix "socks-" :group processes custom-declare-variable socks-server (list "Default server" "socks" 1080 5) #1="" :type (list (string :format #1# :value "Default server") (string :tag "Server") (integer :tag "Port") (radio-button-choice :tag "SOCKS Version" :format "%t: %v" (const :tag "SOCKS v4 " :format "%t" :value 4) (const :tag "SOCKS v5" :format "%t" :value 5)))] 10)
(defconst socks-version 5)
(defvar socks-debug nil)
(defconst socks-connect-command 1)
(defconst socks-bind-command 2)
(defconst socks-udp-associate-command 3)
(defconst socks-authentication-null 0)
(defconst socks-authentication-failure 255)
(defconst socks-response-success 0)
(defconst socks-response-general-failure 1)
(defconst socks-response-access-denied 2)
(defconst socks-response-network-unreachable 3)
(defconst socks-response-host-unreachable 4)
(defconst socks-response-connection-refused 5)
(defconst socks-response-ttl-expired 6)
(defconst socks-response-cmd-not-supported 7)
(defconst socks-response-address-not-supported 8)
(defvar socks-errors '("Succeeded" "General SOCKS server failure" "Connection not allowed by ruleset" "Network unreachable" "Host unreachable" "Connection refused" "Time-to-live expired" "Command not supported" "Address type not supported"))
(defconst socks-address-type-v4 1)
(defconst socks-address-type-name 3)
(defconst socks-address-type-v6 4)
(defvar socks-timeout 5)
(defvar socks-connections (make-hash-table :size 13))
(defvar socks-authentication-methods nil)
(defvar socks-username (user-login-name))
(defvar socks-password nil)
(defalias 'socks-register-authentication-method #[(id desc callback) " \236\211\203 \n\fB\241\202 \fBB B\211)\207" [id socks-authentication-methods old desc callback] 4])
(defalias 'socks-unregister-authentication-method #[(id) " \236\211\205 \303\n \"\211)\207" [id socks-authentication-methods old delq] 4])
(socks-register-authentication-method 0 "No authentication" 'identity)
(defalias 'socks-build-auth-list #[nil "\303\304\305\306\307\n!\"\210\310\311 #*\207" [retval num socks-authentication-methods 0 "" mapc #[(x) "\303AA!\205 \304\305 @#\nT\211\207" [x retval num fboundp format "%s%c"] 4] reverse format "%c%s"] 4])
(defconst socks-state-waiting-for-auth 0)
(defconst socks-state-submethod-negotiation 1)
(defconst socks-state-authenticated 2)
(defconst socks-state-waiting 3)
(defconst socks-state-connected 4)
(defalias 'socks-wait-for-state-change '(macro . #[(proc htable cur-state) "\303\304\305\306\307E E\310\311\nD\312BBE\313\n\314BBE\207" [htable cur-state proc while and = gethash 'state memq process-status ('(run open)) accept-process-output (socks-timeout)] 6]))
(defalias 'socks-filter #[(proc string) "\306 \"\307\211\211\211\204 \310\311\"\210\306\304
\"\211U\203V \312\313\306\313
\"P
#\210\306\313
\"\211G\314W?\205N\312\315\316H
#\210\312\313\314\307O
#\210\312\304
#\202N\f U\206N\f!U\206N\f\"U\203J\312\313\306\313
\"P
#\210\306\313
\"\306\317
\"\211\320\267\202F\321\322\"\205N\312\304#
#\210\312\323\324
#\210\312\325
#\202NG\314W?\205N\326G\nW?\205N\316H\211\327U\203\311 \324\312\304#
#\210\312\323
#\210\312\325
#)\202NG\330W?\205N\331\332H$U\203\371 \330\202\"\332H%U\203\333\202\"\332H&U\205\"G\334W\203\335\202\"\330HT\\G\nW?\205N\312\304#
#\210\312\323\316H
#\210\312\325
#\202N\307\202N\f#U,\207" [proc socks-connections desired-len version state info gethash nil error "socks-filter called on non-SOCKS connection %S" puthash scratch 2 authtype 1 server-protocol #s(hash-table size 3 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (http 136 4 166 5 225)) string-match "
\n
\n" reply 0 response 8 90 4 6 3 16 5 255 socks-state-waiting-for-auth string socks-state-submethod-negotiation socks-state-authenticated socks-state-waiting socks-state-connected socks-address-type-v4 socks-address-type-v6 socks-address-type-name] 7])
#@86 Whether to overwrite the `open-network-stream' function with the SOCKSified
version.
(defvar socks-override-functions nil (#$ . 4623))
(byte-code "\301\302!\210\303\304!\204 \305\304\306K\"\210\203 \305\306\307\"\210\301\207" [socks-override-functions require network-stream fboundp socks-original-open-network-stream defalias open-network-stream socks-open-network-stream] 3)
(defalias 'socks-open-connection #[(server-info) "\212\306\307\310A@\3118$\312\313\314\"\310\211\315\f\316\"\210\317\f\310\"\210\320\f
#\210\320\321)#\210\320\302*#\210\320\322\3238#\210\320\324A@#\210\3238\211\325\232\204\375 \326\232\204\375 \327\232\203\375 \330\f\331\332+\333 #\"\210\334\321\")U\203 \335\f!\336>\203 \337\f,\"\210\202d \334\302\"\211-U\203\227 .\203\361 \340\341!\210\202\361 \n*U\203\245 \342\343!\210\202\361 \334\302\"/\344/0\"\2111\205\273 1AA21\205\306 1A@3\315\f\310\"\2102\203\340 \3452!\203\340 2\f!\204\360 \346\f!\210\342\3473\206\354 \350/#\210,\320\3214#\210\315\f\316\"\210\f-\207" [server-info version authtype info proc socks-connections socks-original-open-network-stream "socks" nil 2 make-hash-table :size 13 set-process-filter socks-filter set-process-query-on-exit-flag puthash state server-protocol 3 server-name http 4 5 process-send-string format "%c%s" socks-build-auth-list gethash process-status (run open) accept-process-output message "No authentication necessary" error "No acceptable authentication methods found" assoc fboundp delete-process "Failed to use auth method: %s (%d)" "Unknown" socks-state-waiting-for-auth socks-authentication-failure socks-version socks-timeout socks-authentication-null socks-debug auth-type socks-authentication-methods auth-handler auth-func auth-desc socks-state-authenticated] 7 nil nil])
(defalias 'socks-send-command #[(proc command atype address port) " U\204\f \nU\203 \202# \fU\203 \306\307G#\202# \310\311\"\312
$\"\313\211%&'('\204< |