Re: Interfacing with NetworkManagerUserSettings



On Wed, 2010-02-24 at 16:10 -0800, Greg Suarez wrote:
> On Feb 24, 2010, at 3:57 PM, Dan Williams wrote:
> 
> > On Fri, 2010-02-19 at 16:34 -0800, Greg Suarez wrote:
> >> Hi,
> >> 
> >> I'm writing a program to manage wifi profiles and wish to communicate
> >> the Connection objects to the NetworkManager.
> >> I can't seem to find documentation on the communication between the
> >> NetworkManager the the program providing the user settings.
> >> Can someone point me to where I can get this information or describe
> >> what I need to do?
> > 
> > http://projects.gnome.org/NetworkManager/developers/spec-08.html
> > 
> > you're looking for anything that starts with:
> > 
> > org.freedesktop.NetworkManagerSettings
> > 
> > Both the system settings and user settings services implement this D-Bus
> > interface.  Essentially, your program needs to respond to the
> > ListConnections method with an array of the object paths of it's
> > Connection objects.  Then it also implements the GetSettings method for
> > each of those connection objects so NM can get the actual connection
> > details.  You'll also want to implement the .Secrets interface there so
> > that NM can get network passwords.  Let me know if more you need more
> > explanation.
> > 
> > Dan
> > 
> > 
> Thanks Dan,
> 
> Would my program need to request the dbus name org.freedesktop.NetworkManagerUserSettings or can I use another name?
> If I need to use org.freedesktop.NetworkManagerUserSettings wouldn't that interfere with nm-applet?

Yes, your program needs to request the
org.freedesktop.NetworkManagerUserSettings bus name if you wish to be a
user settings service.  And yes, if nm-applet already has that name, you
can't get it.

You'd said "I'm writing a program to manage wifi profiles and wish to
communicate the Connection objects to the NetworkManager.", which I took
to mean that you wanted to write your own settings service to provide
network connection data to NM.

If you want to co-exist with nm-applet, that's not very easy right now
because for security reasons, only one user settings service is allowed
to provide network connection data to NetworkManager.  If any process
could do it, there'd be nothing to stop trojan horse programs from doing
it too, or from reading your passwords, etc.

We hope to fix this in the future by providing the full D-Bus interface
in the user settings service, which would allow other programs to
manipulate the connection data.  That needs more work in the UI though
to alert users to the program that is requesting their passwords or
modifying network settings, and allow the user to either approve the
other program, deny it, etc.

Dan




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]