2004-07-27 Dan Williams <dcbw@redhat.com>
[NetworkManager.git] / TODO
1 TODO items for NetworkManager
2 -----------------------------
3
4 Any of these items are of course fair game for anyone, patches are greatly welcome.  It also serves as a "what still needs to be done" list.
5
6 - Honor "cancelled" Wireless Networks
7
8 When a user cancels the request for a WEP key, NetworkManagerInfo returns "***cancelled***" as the WEP key, which we need to trap and honor.  One method to do this could be to add a boolean value 'invalid' to NMAccessPoint, and upon a cancel message set 'invalid' to TRUE.  NM would not attempt to associate with 'invalid' access points.  The 'invalid' marker would be cleared when the AP it was for had any value changed in GConf, or when the AP it was for went out of range.  This means more complicated logic in the wireless scanning, since we have to retain 'invalid' state across scans (the scanned AP list is destroyed every scan).
9
10
11 - Alert user of new Wireless Networks
12
13 This would again require preserving some state across wireless scans.  We may need to hold the last scan while doing another, and diff the two structures at the end.  We should also send DBUS signals onto the bus when wireless networks appear/disappear from a device.  This would allow the UI portion (NetworkManagerInfo) to pop up some notification, and possibly ask the user whether he/she wants to add new wireless networks to the "allowed network" list
14
15
16 - Allow user-chosen Wireless Networks
17
18 If the user decides to associate with one particular wireless network, via a wireless network applet or something, we need to temporarily suspend device switching until that wireless network drops out.  One way to do this might be a boolean value in the NMData structure that stops device switching, which would be cleared when the wireless network that the active_device is associated with disappears.
19
20
21 - Access Point link checking thresholds
22
23 Wireless link checking could be enhanced to check the signal strength of an access point and switch of the current access point a wireless card is associated with has dropped below say, 20%.
24
25
26 - Gracefully recover from dbus/hal and NetworkManagerInfo dropouts
27
28 There is currently no logic to gracefully recover from a crashed/killed dbus or hal.  While we don't depend as heavily on NetworkManagerInfo, we need to make sure that we can operate effectively when it's not there.  There are dbus functions for notification when services come up and go away which could be used here.  Remeber that when dbus dies, hal also dies at the moment.
29
30
31 - Deal with blank ESSIDs
32
33 Access points can be set not to broadcast their ESSIDs, which the client must know.  These appear as blank ESSIDs to cards doing wireless scanning, even though the rest of the AP's information is known (channel, rate, etc).  There has to be a way to deal with this as many companies do not broadcast ESSIDs for security measures.  Workarounds for this practice could include brute-forcing the Allowed Networks list if no suitable wireless network is found to begin with.  Obviously, there would be no way to detect if a WEP key was wrong, because unless the ESSID and WEP key are both correct, we cannot associate with the access point to see if we have a link.  Code exists to do this for wireless cards that do not support wireless scanning, and this code could be adapted.
34
35 - Shorten standoff time between Pending and Active device promotion
36
37 Currently, there is a 2 second wait between when a device is set as the Pending device, to when it may be promoted to Active device.  2 seconds is not technically necessary, the only reason to wait is that the GLib main loop must run at least once to deliver and receive queued up messages.  This wait is also only necessary for wireless cards, where we may need to request a key from the user.  This wait should be eliminated without breaking the Pending/Active device mechanism.
38
39
40 - Support static IP addresses
41
42 We need to support static IP addresses for interfaces.  This should be done by parsing the normal /etc/sysconfig/network-scripts/ifcfg-* files.
43
44
45 - Store Allowed Network WEP keys in gnome-keyring
46
47 These keys should probably be encrypted, rather than being stored in GConf.
48
49
50 - Support 40/64 bit passphrases
51
52 Allow user to enter passphrases and convert them to 40/64 bit WEP keys on the fly.  Unfortunately, the algorithm for 40/64 bit passphrases is kind of messy.
53