GSOC 2012/Student Application xelatex/Integrate Proxy Settings and Network Connections(Locations)

=Integrate Proxy Settings and Network Connections(Locations)=

Proposal Description
My proposal is as follows:

An overview of my proposal
The project "Integrate Proxy Settings and Network Connections(Locations)" focuses on a convinent fuction for NetworkManager (short for NM). The main description is listed in NM's TODO list (http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/TODO, section "Proxies"). To achieve this goal, I should first record all network connections (NM can record wireless connections now, I should add wired connection and VPN connection recording). Then for different system, I should design a handler to send the merged proxy configuration to OS.

Besides, I don't find the bridge configuration in NM (that's why sometimes I will turn off NM and use Linux's network manager). If I have enough time this summer, I want to apply bridge configure function to NM.

The need I believe it fulfills
This project supply a useful improvement to NM, which will let users conveniently set their proxy according to certain network automatically/manually.

Any relevant experience I have
I'm familiar to C programming and Linux-based software developing.

How do I intend to implement your proposal
I should firstly familiar to NM software architecture and relevant codes. Then I will refinement the demands of this project and fulfill the corresponding functions. The last step is testing. Because NM supports not only Fedora, so testing should be used in several Linux distribution.

Final deliverable of the proposal at the end of the period
The final deliverables of the proposal at the end of the period are:   Apply location detector for wired/wireless/VPN connection of NetworkManager   Proxy setting function applied for different Linux distributions.   Integration of the two functions above, and add the user interface of NetworkManager to set their proxy per connections.  

A rough timeline for my progress
Firstly I should familiar to the relevant codes of NM and design the detailed goal and function of this project, this may last for about 1 month from now on.

Secondly I will code for the first part (determine the network connections), until mid-term evaluation.

Then I will code for the second part (proxy setting and integration, maybe some work can be done before mid-term).

Any other details I feel you should consider
For software developing, sufficient API manual is a quick help for newcomer, thanks to Dan Winship's help, I have got some relevent martial for developers of NM. Maybe interfaces design and using is a challenging for me in this project.

Have I communicated with a potential mentor? If so, who?
Yes, my potential mentor is Dan Winship Dan Winship.