Remove WPA2 and WPA3 service together
[platform/upstream/connman.git] / TODO
diff --git a/TODO b/TODO
old mode 100644 (file)
new mode 100755 (executable)
index 3d487ae..c10b8ce
--- a/TODO
+++ b/TODO
@@ -12,26 +12,10 @@ Background
 Core
 ====
 
-- Session API implementation
-
-   Priority: High
-   Complexity: C4
-   Owner: Daniel Wagner <daniel.wagner@bmw-carit.de>
-   Owner: Patrik Flykt <patrik.flykt@linux.intel.com>
-
-   The session API should provide a connection abstraction in order to
-   prioritize applications network accesses, prevent or allow network
-   and bearer roaming, or provide applications with a way to request
-   for periodic network connections. On-demand connections will be
-   implemented through this API as well.
-   See http://www.mail-archive.com/connman@connman.net/msg01653.html
-
-
 - Personal firewall
 
    Priority: Low
    Complexity: C8
-   Owner: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
 
    Discuss and implement a basic and safe firewalling strategy into
    Connman. Provide a D-Bus API for personal firewalling.
@@ -55,45 +39,78 @@ Core
    and get rid of the unnecessary ones.
 
 
-- Disable logging to syslog when run in foreground
+- Remove --nobacktrace option
 
    Priority: Medium
    Complexity: C1
+   When: 2.0
 
-   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.
+   Remove the --nobacktrace option or change it to --backtrace depending on
+   the level of systemd integration or other factors.
 
 
-- Favorite service migration removal
+- Clean up data structure usage
 
-  Priority: Medium
-  Complexity: C1
-  When: 12/2012
+   Priority: Medium
+   Complexity: C4
 
-  Remove service migration code that moves services from default.profile
-  to the current directory-based structure.
+   Use hash tables, queues and lists in the code. Check on the currently used
+   data structures and see if something can be simplified.
 
-- Support for multiple agents
 
-  Priority: Medium
-  Complexity: C2
+- Unit tests for DHCP, DNS and HTTP
 
-  Allow to register multiple agents. Each unique system bus name owner
-  however is only allowed to register one agent.
+   Priority: Low
+   Complexity: C4
 
-  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.
+   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.
 
-- Remove --nobacktrace option
 
- Priority: Medium
- Complexity: C1
- When: 2.0
+- Support other time sources than NTP
+
+   Priority: Low
+   Complexity: C2
+
+   Support other time sources like cellular, GPS in addition to NTP.
 
- Remove the --nobacktrace option or change it to --backtrace depending on the
- level of systemd integration or other factors.
+
+- Get interface names from src/device.c
+
+   Priority: Low
+   Complexity: C2
+
+   Instead of using ioctls in connman_inet_ifindex and connman_inet_ifname,
+   utilize the information already provided by netlink in src/device.c.
+
+
+- Support D-Bus ObjectManager
+
+   Priority: Medium
+   Complexity: C4
+
+   Support D-Bus ObjectManager by using functionality already present in
+   ./gdbus. Method calls and signals are already registered with gdbus, but
+   properties and replies especially in Agent are still handled with plain
+   dbus library function calls.
+
+   With this, Manager API is removed, and a WiFi P2P API based on
+   ObjectManager common to Linux desktops can be implemented.
+
+
+Tethering
+=========
+
+- Verify if bridge has been correctly created and configured
+
+   Priority: Low
+   Complexity: C1
+
+   When enabling tethering check if there was any error while creating and
+   configuring the bridge before continue. It has been done only for WiFi
+   technology, for other tethering technologies it should be evaluated
+   and implemented in case it is advantageous.
 
 
 WiFi
@@ -116,7 +133,6 @@ WiFi
 
    Priority: Medium
    Complexity: C2
-   Owner: Samuel Ortiz <sameo@linux.intel.com>
 
    This EAP is needed for SIM card based network authentication.
    ConnMan here plays a minor role: Once wpa_supplicant is set up for
@@ -130,22 +146,16 @@ WiFi
    Complexity: C1
 
 
-- WiFi p2p
-
-   Priority: Medium
-   Complexity: C2
-
-
 - Removing wpa_supplicant 0.7.x legacy support
 
   Priority: Low
   Complexity: C1
-  Owner: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
 
   Removing global country property setter in gsupplicant, and removing
   wifi's technology set_regdom implementation. Removing autoscan fallback.
   (Note: should be done around the end 2012)
 
+
 Bluetooth
 =========
 
@@ -161,43 +171,70 @@ VPN
 
    Priority: Medium
    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
-=====
 
-- Add Agent mode to connmanctl command line tool
+- Update VPNC and OpenVPN with Agent support
 
    Priority: Medium
    Complexity: C2
 
-   connmanctl should implement agent prompting when started with a suitable
-   command line option. Agent mode should also be enabled when in interactive
-   mode.
+   Update VPNC and OpenVPN with VPN Agent support to request possible user
+   ids and passphrases.
+
+
+- Change OpenConnect plugin to use libopenconnect
+
+   Priority: Medium
+   Complexity: C4
+
+   Current implementation of OpenConnect uses screenscraping and interactive
+   mode for accepting self signed certificates and reacting to PKCS pass
+   phrase requests. This should be replaced with libopenconnect use. It may be
+   worthwhile to attempt to replace the whole authentication with the use of
+   openconnect_obtain_cookie() whatever authentication type is used. This
+   would lead to using only the cookie when connecting (--cookie-on-stdin)
+   and would cleanup the code at run_connect().
+
+   The usage of stdout can be removed as unnecessary. Cookie should be
+   retrieved with openconnect_obtain_cookie(). Remove this also from
+   connman_task_run().
 
+   Function is_valid_protocol() must use openconnect_get_supported_protocols.
+   Also the static const char *protocols[] would be unnecessary.
 
-User Interface
-==============
+   Reading the stderr with byte-by-byte approach is to be removed, as well as
+   are the PKCS failures and requests in stderr IO channel processing.
 
-- GNOME3 UI
+   The use of interactive mode toggle is to be removed. Non-interactive mode
+   must be used, which leads to using --syslog with each authentication type
+   as task arg.
+
+   If the peer certificate cannot be verified with normal means it is because
+   the peer certificate is self signed and the user setting
+   "AllowSelfSignedCert" has to be used for the verify certificate callback
+   reply. The callback for certificate validation must return zero if user has
+   allowed self signed certificates. In such case save the SHA1 fingerprint of
+   server certificate as it is done now, otherwise indicate error to
+   libopenconnect.
+
+Tools
+=====
+
+- Add Clock API support to connmanctl
 
    Priority: Low
-   Complexity: C4
-   Owner: Alok Barsode <alok.barsode@linux.intel.com>
+   Complexity: C2
 
-   A GNOME3 shell user interface would make it easier for mainstream distros
-   users to use ConnMan.
+   The connmanctl command line tool should support Clock API.