Wow, thanks. It's really helpful. I think I somehow know how to start. What I want to do is to make Gentoo work with NM, which now they can't work together.
There's one extra question. I don't know clearly what features does ifcfg-rh or ifupdown provide. I think they can accept local configurations of hostname, DNS, ipv4 wired and wireless network. Is there any other feature they provide? I could make a plan according to that. It is more helpful if you could estimate for me which are simpler or more difficult. Thanks again for your help :-) On Wed, Mar 24, 2010 at 2:19 AM, Dan Williams <[email protected]> wrote: > On Tue, 2010-03-23 at 20:55 +0800, Mu Qiao wrote: > > Hello, > > > > I need to develop a plugin for NM to read local configuration files > > just like RH and Ubuntu do. (I'm not sure whether the plugin is > > ifcfg-rh and ifupdown) > > Great! > > > Where should I start? Where can I find documentations for developing > > plugin and source code of ifcfg-rh and ifupdown? > > The C interface is documented in: > > > http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/src/system-settings/nm-system-config-interface.h > > The 'keyfile' connection is probably the best example so far as it's > most complete: > > > http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/system-settings/plugins/keyfile > > But the ifcfg-suse plugin is actually the simplest one that just > provides persistent hostname support. > > Basically, you have a GObject subclass that implements > NM_TYPE_SYSTEM_CONFIG_INTERFACE, which is the first link I pasted. That > implements the actual plugin, which has a number of properties that > NetworkManager asks for like hostname and capabilities. > > That object then parses the config files, and for each distinct saved > network "profile" or whatever on your distro, you create an object > that's a subclass of NMSysconfigConnection as you can see in: > > > http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/system-settings/plugins/keyfile/nm-keyfile-connection.h > > NMSysconfigConnection provides a number of helpful class functions that > make your implementation a bit easier. In any case, your connection > subclass just wraps each distinct saved connection profile and watches > that profile for changes. The actual read/write work I usually put into > separate files since they are easier to link into the unit test > programs, plus the connection subclass can easily use them anyway. > > If you need more pointers, let me know. It does get somewhat > complicated when you do everything like reading and writing connections, > but starting simple and expanding from there should be an easier way to > go. > > Dan > > > -- Best wishes, Qiao Mu
_______________________________________________ NetworkManager-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/networkmanager-list
