As some of you may have seen, I announced ( http://mail.gnome.org/archives/desktop-devel-list/2007-January/msg00390.html ) a proof of concept for proxy configuration. This is of course just a proof of concept and not an actual release. Currently, gnome-proxy makes heavy use of gconf. However, with NM moving away from gconf, I thought I would write to see if there is any interest in having similar functionality in NM itself.
This functionality would be limited to: 1. Proxy autoconfiguration (PAC) 2. PAC autodetection (WPAD) 3. Per-network proxy settings 4. GUI to configure per-network proxy settings (optional) Though I'm not sure if some of this may go against the "no-profiles" design goal of NetworkManager, it should generally JustWork. Here are some use cases: John is a consultant. Each time he arrives at a different firm, he has to configure using their local proxy settings. Most of these sites are WPAD enabled. He wishes that when he plugged in or connected via Wifi that his computer would JustWork. John occasionally has a client FooCorp who has a proxy but doesn't support WPAD. Each time he connects to the client's Wifi, he has to manually adjust his proxy settings. He wishes that he could specify "use proxy.foo.com as the proxy for the FooCorp wireless network" and that every time he connected to that network, it would setup the proxy for him. John has a client BarCo whose WPAD enabled wireless network has a stale PAC that returns a bogus proxy server. He wishes he could say "Ignore the PAC on the BarCo wireless network." Some outline of the current design is in order. libwpad http://code.google.com/p/wpad/ does all the heavy WPAD/PAC lifting. Everything else is pretty much just a matter of per-network settings. PAC requires that the PAC script be run for each URL requested, so a D-Bus method to do this is probably in order (see org.gnome.Proxy.getProxy(url) in gnome-proxy). That method would probably return a struct like: { char *pac_url; // The URL of the discovered PAC (if any) int cacheability; // 0 = no cache, 1 = cache for this protocol, etc char *proxy_host; // The host of the proxy to use (if any) int proxy_port; // The port of the proxy to use int proxy_type; // 0 = http, 1 = socks, etc } Anyway, I look forward to hearing your comments. Nathaniel _______________________________________________ NetworkManager-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/networkmanager-list
