-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 01/09/16 22:14, debbie10t wrote: > * If it sounds too good to be true .. then it probably is.
There's a good intro to D-Bus programming here, with focus on C: <https://leonardoce.wordpress.com/2015/04/01/dbus-tutorial-a-simple-serv er/> Here's one I haven't looked too careful at, but related to Python: <https://georgemuraruc.wordpress.com/2015/07/16/d-bus-tutorial-for-pytho n/> And for some good shell fun: (this should work on most modern Linux distros) $ gdbus call --system -d org.freedesktop.NetworkManager \ -o /org/freedesktop/NetworkManager \ -m org.freedesktop.NetworkManager.GetDevices Returns on my laptop: ([objectpath '/org/freedesktop/NetworkManager/Devices/0', '/org/freedesktop/NetworkManager/Devices/1', '/org/freedesktop/NetworkManager/Devices/2'],) To query everything about one of the devices, to see all methods, signals and properties available you do this: $ gdbus introspect --system -d org.freedesktop.NetworkManager \ -o /org/freedesktop/NetworkManager/Devices/1 Through gdbus, you can do a lot of fun stuff. If you are on a systemd based system, you can even start and stop services through D-Bus calls - - if you have the right privileges. D-Bus has been around for over a decade and is very stable and widely used, at least on the Linux side - but I believe it's a requirement if you use GNOME or KDE too, regardless if it is Linux or not. > If it is possible; a run time option eg. --dbus enabled|disabled or > at least a compile time option --enable-dbus might be preferable. Okay, there will be two ways to enable/disable. D-Bus will be disabled by default. To enable D-Bus you must first compile it with D-Bus support, that will be done via ./configure --enable-dbus Then to enable the D-Bus API, where OpenVPN will connect and register to the D-Bus, you will need --management-dbus in your config. This option will only be available if built with --enable-dbus when running ./configure. > For me personally, it sounds like a lot of openvpn 'control' is > being handed over to another entity and I am not convinced that is > ideal. It is completely optional. Without activating D-Bus, OpenVPN will work just as before. But there are use cases where the interfacing possibilities to managing OpenVPN are very limited - and if not limited, it is hard to accomplish. I want to lower this barrier, to allow simpler integration with tools and which is more agnostic to programming languages and scripts. D-Bus is first of all an API for interprocess communication (IPC), but it has standardised how services are offered through that API so you don't need to re-invent the wheel each time you want to do anything new. In regards to handing over 'control', this is not much more different than using the script hooks or enabling third-party plugins. The difference is that you can integrate using an API which is available through the most common programming and scripting languages (C/C++, Java, C#, golang, Python, Ruby, Perl, Haskel, Erlang, LUA, etc, etc). And I emphasize again: D-Bus provides a much better control over whom can do what on services provided over the D-Bus. Every user or process accessing a service is authenticated and access control is managed through polkit policies. Thus you can actually improve the overall security by using D-Bus compared to using script hooks or even plug-ins - where they at least run with the same privileges as the openvpn process, if they haven't fork()ed out a root process (like the down-root plugin does). - -- kind regards, David Sommerseth -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIcBAEBAgAGBQJXyJYQAAoJEIbPlEyWcf3yfcEP/jjF4tjk2dTjhcJMVyZMCotH vM5uApgA6uGmV7DcR4MXTxzn29rqS1nppoqlRNtC+znqvraeXJjddhrCUFq5QRmr fowjbtRDMyXGTC5QZeDqfKO0CmqUzh6B+zqNrMeDU/vbaLVcL6NGHXP4yWTNyvmz 9lPGAuiwv195/vDf0mlKq5OM9m+peyTY3eGp+lEzDVaKdlb1CatXYEnVbSK7wCUl daZPEaxKTKEVdGDs7DQdSMLDU+ix76KZ/CZSTmKaXAPtjGB9aQ2WiRSFp5PWkRLB jkCmd9eyyEsGvsqgBlkVJ6rOXhpv+nQpHGYyTm3uQ+hSqcA8QKHK9S13j+5NYZbs OOG2H9PM9AoGNWYRBi9BaW3LYyAS7r6o+P3VSeBRhHvZXmKkuEZVYhVpn/OAjokX bUzVyYhc5PXCkRKAmviPm7aQBipP7KofM4T9+y4MBThw00PMm1UWrnkHm53qck6+ apcBx74mbF3ySW1xZIiRupTREBuca57UJ5Agh+cf2L6q5BWaXCbsnQkgKzgfx0Cf mQXJSmnYNoVQBmb9TSps1J1ShL9rBkS27TbIcVHYsihibDHjaG/5PpyEa9cTxkya o0alVbButYE6nqy5KCWEjxPFDImQM9MEOyC7LMzsZTuDzUNu+ADy+3xBFETqdqfV RVXpwSkxIPYWAWbUeU17 =Rmzu -----END PGP SIGNATURE----- ------------------------------------------------------------------------------ _______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel