
#460: find the http proxy on windows more reliably ---------------------------------+------------------------------------------ Reporter: duncan | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: cabal-install tool | Version: 1.2.3.0 Severity: normal | Keywords: Difficulty: hard (< 1 day) | Ghcversion: 6.8.3 Platform: | ---------------------------------+------------------------------------------ Some network setups (particularly corporate ones) do not use a static proxy set in the windows registry but use [http://msdn.microsoft.com/en- us/library/aa384240%28VS.85%29.aspx "AutoProxy"]. This is a rather complex protocol involving DHCP, dns and requires a !JavaScript interpreter. However the [http://msdn.microsoft.com/en- us/library/aa384273%28VS.85%29.aspx WinHTTP] library comes with Windows as of Win2k SP3, WinXP SP1, Win2k3 and Vista. It's got a bunch of functions for dealing with this AutoProxy stuff, [http://msdn.microsoft.com/en-us/library/aa384122(VS.85).aspx including sample code]. In particular the main function we want is [http://msdn.microsoft.com/en-us/library/aa384097(VS.85).aspx WinHttpGetProxyForUrl] So we could try either statically linking to this, or perhaps doing some dynamic !GetProcAddress funky stuff. Reading more closely, it seems that this only works if the setup is using an !AutoProxy setup. This documentation may be more relevant: * [http://msdn.microsoft.com/en-us/library/aa383660(VS.85).aspx Discovery Without an Auto-Config File] * [http://msdn.microsoft.com/en-us/library/aa384096(VS.85).aspx WinHttpGetIEProxyConfigForCurrentUser] * [http://msdn.microsoft.com/en-us/library/aa384095(VS.85).aspx WinHttpGetDefaultProxyConfiguration] It seems that there are some performance issues with !AutoProxy but any caching has to be fairly careful since the proxy information can change. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/460 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects