[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: no-proxy



At Fri, 08 Mar 2002 21:30:24 +0900,
山岡さん wrote:
> 
> しかし当初の目的であった、ホスト毎に proxy を使うかどうかを決め
> るためには、ユーザーがいささか複雑な正規表現を設計しなければなら
> ないので、w3m-no-proxy-hosts というオプションでもっと簡単に設定
> することもできるようにしました。例えば
> 
> (setq w3m-no-proxy-hosts
>       '("www.local.net" "www.neighbor.net"))
> 
> のようにしておくと、このリストに含まれるホストに接続するときは
> w3m コマンドの引数に "-no-proxy" を追加します。ぼくの場合、実は
> これだけで事足りるのですが。^^;;

ぼくも前から proxy 指定の機能がほしかったのでうれしいです。
ありがとうございます。

ところで、個人的には、いくつかのドメイン内のホストの時に no-proxy にしたい
ので、w3m-no-proxy-*hosts* でなく w3m-no-proxy-*domains* になってるほうが
うれしいのですがいかがでしょう。

こんなかんじ?

(defun w3m-additional-command-arguments (url)
  "Return a list of additional arguments passed to the w3m command.
You may specify additional arguments for the particular urls using the
option `w3m-command-arguments-alist', or using `w3m-no-proxy-domains' to
add the option \"-no-proxy\"."
  (let ((defs w3m-command-arguments-alist)
	def args host)
    (while (and defs
		(null args))
      (setq def (car defs)
	    defs (cdr defs))
      (when (string-match (car def) url)
	(setq args (cdr def))))
    (when (and w3m-no-proxy-domains
	       (not (member "-no-proxy" args))
	       (string-match "^[a-z]+://\\([^/]+\\)" url)
	       (catch 'domain-match
		 (setq host (match-string 1 url))
		 (dolist (domain w3m-no-proxy-domains)
		   (when (string-match (concat (regexp-quote domain) "$")
				       host)
		     (throw 'domain-match t)))))
      (push "-no-proxy" args))
    args))

--
Yuuichi Teranishi (寺西裕一) <teranisi@gohome.org>
PGP 5.0i Public Key: http://www.gohome.org/pgp5/teranisi.key
"So we sailed out of the sun till we found the see of green..."