Re: Interfacing with NetworkManagerUserSettings



On Wed, 2010-02-24 at 16:31 -0800, Greg Suarez wrote:
> On Feb 24, 2010, at 4:23 PM, Dan Williams wrote:
> 
> > 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.
> > 
> 
> If I write a program similar to the nm-connection-editor and add a new connection in gconf would nm-applet see the new connection
> and prompt for security credentials?

Yeah, just adding the connection to GConf in the manner which nm-applet
expects would do the trick.  Look in the applet's sources in
src/gconf-helpers/ to see how it translates the NMSetting keys to
various GConf values.

Dan




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