|
Revision 4220, 2.7 kB
(checked in by miyoshi, 9 months ago)
|
Sync up with Emacs22.2.
|
| Line | |
|---|
| 1 |
|
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
|
|---|
| 9 |
|
|---|
| 10 |
|
|---|
| 11 |
|
|---|
| 12 |
|
|---|
| 13 |
|
|---|
| 14 |
|
|---|
| 15 |
|
|---|
| 16 |
|
|---|
| 17 |
|
|---|
| 18 |
|
|---|
| 19 |
|
|---|
| 20 |
|
|---|
| 21 |
|
|---|
| 22 |
|
|---|
| 23 |
|
|---|
| 24 |
|
|---|
| 25 |
|
|---|
| 26 |
(require 'url-parse) |
|---|
| 27 |
(autoload 'url-warn "url") |
|---|
| 28 |
|
|---|
| 29 |
(defun url-default-find-proxy-for-url (urlobj host) |
|---|
| 30 |
(cond |
|---|
| 31 |
((or (and (assoc "no_proxy" url-proxy-services) |
|---|
| 32 |
(string-match |
|---|
| 33 |
(cdr |
|---|
| 34 |
(assoc "no_proxy" url-proxy-services)) |
|---|
| 35 |
host)) |
|---|
| 36 |
(equal "www" (url-type urlobj))) |
|---|
| 37 |
"DIRECT") |
|---|
| 38 |
((cdr (assoc (url-type urlobj) url-proxy-services)) |
|---|
| 39 |
(concat "PROXY " (cdr (assoc (url-type urlobj) url-proxy-services)))) |
|---|
| 40 |
|
|---|
| 41 |
|
|---|
| 42 |
|
|---|
| 43 |
(t |
|---|
| 44 |
"DIRECT"))) |
|---|
| 45 |
|
|---|
| 46 |
(defvar url-proxy-locator 'url-default-find-proxy-for-url) |
|---|
| 47 |
|
|---|
| 48 |
(defun url-find-proxy-for-url (url host) |
|---|
| 49 |
(let ((proxies (split-string (funcall url-proxy-locator url host) " *; *")) |
|---|
| 50 |
(proxy nil) |
|---|
| 51 |
(case-fold-search t)) |
|---|
| 52 |
|
|---|
| 53 |
|
|---|
| 54 |
|
|---|
| 55 |
(if (listp proxies) |
|---|
| 56 |
(setq proxy (car proxies)) |
|---|
| 57 |
(setq proxy proxies)) |
|---|
| 58 |
(cond |
|---|
| 59 |
((string-match "^direct" proxy) nil) |
|---|
| 60 |
((string-match "^proxy +" proxy) |
|---|
| 61 |
(concat "http://" (substring proxy (match-end 0)) "/")) |
|---|
| 62 |
((string-match "^socks +" proxy) |
|---|
| 63 |
(concat "socks://" (substring proxy (match-end 0)))) |
|---|
| 64 |
(t |
|---|
| 65 |
(url-warn 'url (format "Unknown proxy directive: %s" proxy) 'critical) |
|---|
| 66 |
nil)))) |
|---|
| 67 |
|
|---|
| 68 |
(defun url-proxy (url callback &optional cbargs) |
|---|
| 69 |
|
|---|
| 70 |
|
|---|
| 71 |
(setq url-using-proxy (url-generic-parse-url url-using-proxy)) |
|---|
| 72 |
|
|---|
| 73 |
(cond |
|---|
| 74 |
((string= (url-type url-using-proxy) "http") |
|---|
| 75 |
(url-http url callback cbargs)) |
|---|
| 76 |
(t |
|---|
| 77 |
(error "Don't know how to use proxy `%s'" url-using-proxy)))) |
|---|
| 78 |
|
|---|
| 79 |
(provide 'url-proxy) |
|---|
| 80 |
|
|---|
| 81 |
|
|---|
| 82 |
|
|---|
| 83 |
|
|---|