provider: Function to set the immutable flag
[platform/upstream/connman.git] / TODO
diff --git a/TODO b/TODO
index 7fa2df4..9926658 100644 (file)
--- a/TODO
+++ b/TODO
@@ -8,6 +8,7 @@ Background
    lowest complexity. Complexity is a function of both task 'complexity'
    and task 'scope'.
 
+
 Core
 ====
 
@@ -54,29 +55,76 @@ Core
    and get rid of the unnecessary ones.
 
 
-- Disable logging to syslog when run in foreground
+- Support for multiple agents
+
+  Priority: Medium
+  Complexity: C2
+
+  Allow to register multiple agents. Each unique system bus name owner
+  however is only allowed to register one agent.
+
+  The selection of which agents is used  should be matched by bus name
+  owner if possible or first come first serve. A graceful fallback to
+  the next agent should be also used in case of malfunctional agents.
+
+- Remove --nobacktrace option
+
+ Priority: Medium
+ Complexity: C1
+ When: 2.0
+
+ Remove the --nobacktrace option or change it to --backtrace depending on the
+ level of systemd integration or other factors.
+
+
+- Clean up type definitions
 
    Priority: Medium
    Complexity: C1
 
-   When ConnMan is run in foreground mode, disable logging to syslog. If not
-   disabled, systemd will log everything twice, once via syslog and once on
-   standard error.
+   Go through variable types and use the following:
+   * uint8_t instead of connman_uint8_t, unsigned char
+   * uint16_t instead of connman_uint16_t, unsigned short
+   * bool from <stdbool.h> instead of connman_bool_t and gboolean, in the
+     latter case in those places it makes sense
 
 
-- Favorite service migration removal
+- Clean up data structure usage
 
-  Priority: Medium
-  Complexity: C1
-  When: 12/2012
+   Priority: Medium
+   Complexity: C4
+
+   Use hash tables, queues and lists in the code. Replace GSequences with
+   simpler structures. At the same time do a check on the currently used
+   data structures and see if something can be simplified.
+
+
+- Unit tests for DHCP, DNS and HTTP
 
-  Remove service migration code that moves services from default.profile
-  to the current directory-based structure.
+   Priority: Medium
+   Complexity: C4
+
+   Create unit tests for these components starting with DHCP. Use gtest
+   from GLib for this task similarly to what has been done for OBEX in Bluez
+   and oFono in general.
 
 
 WiFi
 ====
 
+- Clean up WiFi data structure usage
+
+   Priority: Medium
+   Complexity: C2
+
+   Struct wifi_data is passed as a pointer in some of the wifi plugin
+   callbacks. For example removing a WiFi USB stick causes RTNL and
+   wpa_supplicant to call the wifi plugin at the same time causing the
+   freeing of the wifi data structure. Fix up the code to have proper
+   reference counting or other handling in place for the shared wifi data
+   and the members in the data structure.
+
+
 - EAP-AKA/SIM
 
    Priority: Medium
@@ -114,6 +162,13 @@ WiFi
 Bluetooth
 =========
 
+- Remove Bluez 4.x support
+
+  Priority: Low
+  Complexity: C1
+
+  Remove plugins/bluetooth-legacy.c support in about 6 month (July 2013) or
+  when Bluez 4.x usage becomes minimal.
 
 Cellular
 ========
@@ -128,19 +183,16 @@ VPN
    Complexity: C4
    Owner: Jukka Rissanen <jukka.rissanen@linux.intel.com>
 
-
-WiMAX
-=====
-
-- WiMAX removal
+- L2TP & PPTP compatibility prefix removal
 
    Priority: Medium
    Complexity: C1
-   When: 12/2012
-
-   WiMAX plugin is unmaintained. Remove WiMAX plugin, service type definitions
-   and associated code.
+   When: connman 2.0
 
+   The VPN config file provisioning patchset contains code that makes
+   PPP options to be marked by "PPPD." prefix. The code supports also
+   old "L2TP." and "PPTP." prefix for PPP options. Remove the compatibility
+   code and only allow "PPPD." prefix for PPP options.
 
 Tools
 =====