GSOC 2012/Student Application thecreationist/Integrating Proxy Settings and Network Connections

Overview:
The project is based on the idea given on the project proposal given on the fedora GSoc 2012 ideas page i.e. “Integrate Proxy Settings and Network Connections (Locations)”. As given on the ideas page, the idea is to integrate the proxy and other network configurations with the concept of network locations. The goal is to automate the task of activating location specific network settings based on the current network the user is connected to, saving user from every time selecting a network location.

The benefit:
The obvious benefit is to save the user from hassles of selecting network locations every time the system moves to a different network. The benefit becomes more obvious in a university kind of setting where there are multiple networks and the user keeps switching networks on the fly based on which network is transmitting with better strength at a particular location inside the campus. Here, user would have to switch the network locations, for changing the proxy settings, every time the connected network changes.

Experience:
Since I have been using Fedora for quite a while, I have been playing around with most of its components, including the networking. e.g. Before, the "use as hotspot" option was introduced in NetworkManager, I wrote a small script to configure my laptop as a dhcp enabled wifi router for internet connection sharing. I have experience with the programming languages like C, C++, python etc.

Implementation:
I plan on following an implementation strategy similar to the one suggested in NetworkManager TODO (at http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/TODO). The idea is to provide user the option to define two types of proxy configurations. One is the global configuration and the other is network specific (essid specific) configuration. Whenever NetworkManager switches to a different network, it calculates a fusion of the particular network’s local configuration and the global configuration (obviously the local getting priority). The fused settings are then enforced system-wide. However, for applications that have the option of defining their own proxy configuration, the application specific configuration is preferred. The specification of these network profiles can easily be decided as some logical superset of the generally used options (like those in firefox).

The handling of these networking profiles can be done by extending the NMSettings class for handling proxies, as suggested in the TODO document.

Timeline:
I believe the specification of the network profiles and the protocol for working with proxy handlers, along with system specification can be done in a month or so. The task of coding is not huge that might take at most 20-30 days. The main task of integrating, testing and debugging might take another month. So, I believe the work may take around 3 months. However, any hard timeline is difficult to predict.

Have you communicated with a potential mentor? If so, who?
Ans. No