Hello, I want to implement system-wide connection support for KNM. I'm trying to understand the code for some time, and writing down the questions and the bugs I've found.
Here is what I understand from the code: * plasma applet gets activatable list from org.kde.networkmanagement and uses Solid::Control interface to activate/deactivate connections, enable/disable network and catch the events about the network and interfaces. * KCModule, just reads/writes connections to networkmanagementrc conf file and details about the connections to apps/networkmanagement/connections directory and calls the configure dbus method of kded module to make it aware of changes. * kded module reads configuration files (networkmanagementrc), and get system- wide connection list from NM. Also monitors interfaces and AP's to update its activatable list. Now, if I understand the code correctly, we need to decide the way we implement system-wide connection support. If we want KCModule to add/remove/change system-wide connections it must use org.freedesktop.NetworkManagerSystemSettings interface of NM (or an interface of NM kded module that actually uses NM's interface). Here are the alternatives for solution of that: 1- Add a 'AddConnection' method to org.freedesktop.NetworkManagerSettings interface of KNM kded module, just like NM (version 0.8), and make KNM KCModule use AddConnecion/ListConnections and Update/Delete methods of both org.freedesktop.NetworkManagerUserSettings and org.freedesktop.NetworkManagerSystemSettings. So, KCModule does not read or write networkmanagementrc and connection files, just calls specific DBus methods of NM (for system-wide connections) and KNM kded module (for user wide connections). This solution make KCModule code NM dependant but I don't know if this is a wanted behaviour. 2- In addition to the ListActivatable method of KNM kded module, we may add a few methods like AddConnection(with a parameter specifiying whether the connection is system-wide or user-wide), ListConnections, DeleteConnection, UpdateConnection so on. Then, KCModulde uses org.kde.networkmanagement to do its job and again does not read or write to networkmanagementrc and connection files. In this solution KCModule code does not depend on NM, but we need to implement more DBus methods than the first solution. 3- We may add AddConnection/UpdateConnection methods to Solid::Control::NetworkManager library, but I don't know the details of library. Any ideas? -- Gökçen Eraslan _______________________________________________ kde-networkmanager mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-networkmanager
