Search code examples
emacselisphttp-proxy

Is it possible to tell emacs on Windows to use the IE http proxy settings?


See also: Emacs behind HTTP proxy

Is it possible to tell emacs to automatically use whatever proxy settings are in use by IE?

The url.el package says I can explicitly specify a proxy like this:

(setq url-using-proxy t)
(setq url-proxy-services  '(("http" . "proxyserver:3128")))

Is it possible for this to happen sort of auto-magically, when I change the IE proxy settings?


Solution

  • Yes, it's possible.

    The basic idea is to define before-advice for the URL functions, and set those variables to appropriate values. This requires being able to retrieve the IE proxy settings from Windows, from within elisp.

    The w32-registry package does this.

    Therefore, on Windows, you can do this:

    (eval-after-load "url"
      '(progn
         (require 'w32-registry)
         (defadvice url-retrieve (before
                                  w32-set-proxy-dynamically
                                  activate)
           "Before retrieving a URL, query the IE Proxy settings, and use them."
           (let ((proxy (w32reg-get-ie-proxy-config)))
             (setq url-using-proxy proxy
                   url-proxy-services proxy)))))