Hi,

After a couple of RFC rounds, the VPN patches are more or less
usable. This patchset provides drop-in replacement for current
VPN functionality, so the ConnectProvider and RemoveProvider
APIs in net.connman.Manager object still work but are marked
as deprecated (could be removed at ConnMan 2.0 release).
The user (or UIs) should use the new net.connman.vpn.Manager interface
when configuring the VPN. The VPN service should be connected via
the connman service API like all the other services.

This version of the patchset does not yet utilize the agent
interface so VPN passwords etc are not asked from the user
via agent but that feature is in the todo list.

The VPN functionality has been tested with OpenVPN, Openconnect,
L2TP and PPTP providers. Everything was working fine in my tests
but I am sure there is still need for some tweaking.

TODO:
- add agent support to VPN providers (ask username/password etc)
- add IPSec support
- add VPN autoconnect support


Cheers,
Jukka

PS. I have a rpm spec file (for Fedora) that supports new vpnd.
I could send it separately to ml if someone wants to try the new
VPN stuff in real environment. Everything works quite smoothly
with latest UI (one just needs to disable NetworkManager first).
The ConnMan UI for gnome3.4 can be get from extensions.gnome.org or
if it is not there yet, then directly from
https://github.com/connectivity/gnome-extension-connman/tree/gnome3.4


Jukka Rissanen (34):
  doc: VPN daemon API descriptions
  ipconfig: Move IP address API into separate ipaddress.c file
  device: Move device creation func into device.c
  log: Give program name and version in log init
  vpn: New vpn daemon that handles vpn connections and clients
  test: Renamed old VPN scripts
  test: New VPN test script that connect to connman-vpnd
  provider: Provider disconnect function made available to plugin
  provider: Add more driver interface functions needed by vpnd plugin
  provider: Remove obsolete stuff
  provider: Support functions added
  plugin: Add VPN plugin that will interact with vpnd
  provider: Initially provider ipconfigs are now OFF
  provider: Move around server and user route handling
  vpn: Resolve vpn hostname if necessary
  vpnd: Add -r option which enables route handling in vpnd
  vpn: Hash provider data using the ident instead of path
  doc: Example configuration file for vpnd
  vpn: Introduce config file for vpnd
  agent: Split agent code into generic and service specific parts
  vpn: Add agent support
  manager: Deprecating connect/remove provider API
  ipconfig: Add ipconfig unref function
  vpn: Free allocated ipconfig struct
  provider: Removed the connect part from the create() function
  vpn-provider: Send ConnectionAdded signal when needed
  provider: Add callback when creating vpn provider
  storage: Add function to remove provider files
  provider: Do not remove the provider as it would remove it from
    storage
  vpn-provider: Send ConnectionRemoved signal when needed
  vpn-provider: Remove vpn provider from storage when needed
  l2tp: Remember the connection password
  pptp: Remember the connection password
  vpnd: Make sure provider is taken to ready state

 .gitignore                     |    4 +
 Makefile.am                    |  104 ++-
 Makefile.plugins               |  123 +--
 configure.ac                   |    9 +-
 doc/manager-api.txt            |    6 +-
 doc/vpn-connection-api.txt     |  140 +++
 doc/vpn-manager-api.txt        |   50 ++
 doc/vpn-overview.txt           |   60 ++
 include/agent.h                |   73 ++
 include/device.h               |    1 +
 include/inet.h                 |    1 -
 include/ipaddress.h            |   56 ++
 include/ipconfig.h             |   19 +-
 include/provider.h             |   24 +
 include/vpn-dbus.h             |   58 ++
 plugins/iwmxsdk.c              |    4 +-
 plugins/l2tp.c                 |  532 -----------
 plugins/openconnect.c          |  281 ------
 plugins/openvpn.c              |  310 -------
 plugins/pptp.c                 |  338 -------
 plugins/vpn.c                  | 1812 ++++++++++++++++++++++++++++++-------
 plugins/vpn.h                  |   48 -
 plugins/vpnc.c                 |  343 --------
 src/agent-connman.c            |  627 +++++++++++++
 src/agent.c                    |  838 ++++--------------
 src/connman.h                  |   16 +-
 src/detect.c                   |    2 +-
 src/device.c                   |  178 ++++
 src/dhcp.c                     |    4 +-
 src/inet.c                     |  173 ----
 src/ipaddress.c                |  200 +++++
 src/ipconfig.c                 |  167 +---
 src/log.c                      |    5 +-
 src/main.c                     |    6 +-
 src/manager.c                  |   10 +-
 src/plugin.c                   |    2 +-
 src/provider.c                 | 1054 +++-------------------
 src/service.c                  |   64 +-
 src/storage.c                  |   47 +
 src/tethering.c                |    4 +-
 test/connect-provider          |   73 ++
 test/connect-vpn               |   73 --
 test/disconnect-vpn            |   21 -
 test/remove-provider           |   21 +
 test/vpn-connect               |   24 +
 test/vpn-disconnect            |   24 +
 test/vpn-get                   |   43 +
 unit/test-nat.c                |    2 +-
 vpn/connman-vpn.conf           |    8 +
 vpn/connman-vpn.service.in     |   11 +
 vpn/main.c                     |  344 ++++++++
 vpn/net.connman.vpn.service.in |    5 +
 vpn/plugins/l2tp.c             |  540 ++++++++++++
 vpn/plugins/openconnect.c      |  282 ++++++
 vpn/plugins/openvpn.c          |  311 +++++++
 vpn/plugins/pptp.c             |  346 ++++++++
 vpn/plugins/vpn.c              |  550 ++++++++++++
 vpn/plugins/vpn.h              |   63 ++
 vpn/plugins/vpnc.c             |  344 ++++++++
 vpn/vpn-dbus.conf              |   15 +
 vpn/vpn-ipconfig.c             |  467 ++++++++++
 vpn/vpn-manager.c              |  189 ++++
 vpn/vpn-polkit.conf            |   11 +
 vpn/vpn-polkit.policy          |   29 +
 vpn/vpn-provider.c             | 1911 ++++++++++++++++++++++++++++++++++++++++
 vpn/vpn-provider.h             |  121 +++
 vpn/vpn-rtnl.c                 | 1185 +++++++++++++++++++++++++
 vpn/vpn-rtnl.h                 |   65 ++
 vpn/vpn.h                      |  102 +++
 vpn/vpn.ver                    |    8 +
 70 files changed, 10662 insertions(+), 4319 deletions(-)
 create mode 100644 doc/vpn-connection-api.txt
 create mode 100644 doc/vpn-manager-api.txt
 create mode 100644 doc/vpn-overview.txt
 create mode 100644 include/agent.h
 create mode 100644 include/ipaddress.h
 create mode 100644 include/vpn-dbus.h
 delete mode 100644 plugins/l2tp.c
 delete mode 100644 plugins/openconnect.c
 delete mode 100644 plugins/openvpn.c
 delete mode 100644 plugins/pptp.c
 delete mode 100644 plugins/vpn.h
 delete mode 100644 plugins/vpnc.c
 create mode 100644 src/agent-connman.c
 create mode 100644 src/ipaddress.c
 create mode 100755 test/connect-provider
 delete mode 100755 test/connect-vpn
 delete mode 100755 test/disconnect-vpn
 create mode 100755 test/remove-provider
 create mode 100755 test/vpn-connect
 create mode 100755 test/vpn-disconnect
 create mode 100755 test/vpn-get
 create mode 100644 vpn/connman-vpn.conf
 create mode 100644 vpn/connman-vpn.service.in
 create mode 100644 vpn/main.c
 create mode 100644 vpn/net.connman.vpn.service.in
 create mode 100644 vpn/plugins/l2tp.c
 create mode 100644 vpn/plugins/openconnect.c
 create mode 100644 vpn/plugins/openvpn.c
 create mode 100644 vpn/plugins/pptp.c
 create mode 100644 vpn/plugins/vpn.c
 create mode 100644 vpn/plugins/vpn.h
 create mode 100644 vpn/plugins/vpnc.c
 create mode 100644 vpn/vpn-dbus.conf
 create mode 100644 vpn/vpn-ipconfig.c
 create mode 100644 vpn/vpn-manager.c
 create mode 100644 vpn/vpn-polkit.conf
 create mode 100644 vpn/vpn-polkit.policy
 create mode 100644 vpn/vpn-provider.c
 create mode 100644 vpn/vpn-provider.h
 create mode 100644 vpn/vpn-rtnl.c
 create mode 100644 vpn/vpn-rtnl.h
 create mode 100644 vpn/vpn.h
 create mode 100644 vpn/vpn.ver

-- 
1.7.11.4

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to