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.
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
+
+ Use hash tables, queues and lists in the code. Check on the currently used
+ data structures and see if something can be simplified.
+
+
+- Unit tests for DHCP, DNS and HTTP
+
+ Priority: Low
+ 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.
+
+
+- Support other time sources than NTP
+
+ Priority: Low
+ Complexity: C2
+
+ Support other time sources like cellular, GPS in addition to NTP.
+
+
+- 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.
- Remove service migration code that moves services from default.profile
- to the current directory-based structure.
-- Support for multiple agents
+Tethering
+=========
- Priority: Medium
- Complexity: C2
+- Verify if bridge has been correctly created and configured
- Allow to register multiple agents. Each unique system bus name owner
- however is only allowed to register one agent.
+ Priority: Low
+ Complexity: C1
- 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.
+ 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
====
+- 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
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
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
=========
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
+ When: connman 2.0
- WiMAX plugin is unmaintained. Remove WiMAX plugin, service type definitions
- and associated code.
+ 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().
-User Interface
-==============
+ Function is_valid_protocol() must use openconnect_get_supported_protocols.
+ Also the static const char *protocols[] would be unnecessary.
-- GNOME3 UI
+ 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.
+
+ 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.