Thanks. Replacing with getStagingCfg() worked well. On Wed, Aug 23, 2017 at 11:32 PM, Marcin Siodelski <[email protected]> wrote:
> That's because the load() function is called as a result of parsing > server configuration when your hook library is loaded. At this point > there is no committed server configuration yet (because server > configuration is being parsed). What you could try is: > > ConstCfgIfacePtr cfg = CfgMgr::instance().getStagingCfg()->getCfgIface(); > > instead of > > ConstCfgIfacePtr cfg = CfgMgr::instance().getCurrentCfg()->getCfgIface(); > > because "staging" configuration should already contain the information > about interfaces (the interfaces parser is launched before the hooks > libs parser). > > Give it a try. > > Marcin > > On 23.08.2017 19:57, Gokulakrishnan Gopalakrishnan wrote: > > Marcin, > > When I placed the code in "load(LibraryHandle&), I'm getting empty > > interface list, whereas if I keep the code in another hook like > > pkt4_send, I'm getting the proper list of interfaces. > > Actually, I'd be needing this info while initializing the Kea Process > > itself. Can we get it somehow? > > > > On Wed, Aug 23, 2017 at 8:02 PM, Gokulakrishnan Gopalakrishnan > > <[email protected] <mailto:[email protected]>> > > wrote: > > > > Thanks Marcin. It worked > > > > On Wed, Aug 23, 2017 at 4:28 PM, Marcin Siodelski <[email protected] > > <mailto:[email protected]>> wrote: > > > > You'd rather need to link with this: > > > > libdhcp_user_chk_la_LIBADD += > > $(top_builddir)/src/lib/dhcpsrv/libkea-dhcpsrv.la > > <http://libkea-dhcpsrv.la> > > > > In most cases you'd also need to link with libkea-dhcpsrv.la > > <http://libkea-dhcpsrv.la> > > dependencies which you can find it its Makefile.am. > > > > As for the automake error it seems to me that you're missing > > automake-1.14. Perhaps you have some different version? > > automake-1.15? > > > > Maybe go to Kea root directory and run autoreconf --install && > > ./configure ... && make > > > > again. > > > > Marcin > > > > On 23.08.2017 12:41, Gokulakrishnan Gopalakrishnan wrote: > > > Thanks Marcin, I just did what you mentioned in the code and > > > printed *iface_configuation->str()* and it prints an empty > array > > > interface. Probably because I didn't link the hook user_chk > > > with *libkea-dhcpsrv*. > > > I tried linking* **libkea-dhcpsrv *by adding > > > > > > libdhcp_user_chk_la_LIBADD += > > $(top_builddir)/src/lib/hooks/libkea-dhcpsrv.la > > <http://libkea-dhcpsrv.la> <http://libkea-dhcpsrv.la> > > > > > > in src/hooks/dhcp/user_chk/Makefile.am <http://efile.am> and > > did a make. > > > > > > I'm getting automake-1.14: command not found. Every time > editing > > > Makefile.am, I'm getting this error. Am I doing the linking > > correctly? > > > Am I missing something here? Please correct me if I'm wrong > > > > > > > > > > > > > > > On Wed, Aug 23, 2017 at 3:09 PM, Marcin Siodelski > > <[email protected] <mailto:[email protected]> > > > <mailto:[email protected] <mailto:[email protected]>>> wrote: > > > > > > On 23.08.2017 11:24, Gokulakrishnan Gopalakrishnan wrote: > > > > "interfaces-config": { > > > > > > > > "interfaces": [ "eth0" ] > > > > > > > > } > > > > > > > > Can we get the list of interface name in hooks code? In > > the example > > > > mentioned above, can we get the value "eth0" in hooks > > code in > > > > <int load(LibraryHandle&)> function? > > > > > > > > > > > > > > To retrieve server configuration information you'd need to > > link your > > > hook library with libkea-dhcpsrv and do something like > this: > > > > > > #include <dhcpsrv/cfg_iface.h> > > > > > > ConstCfgIfacePtr cfg = > > > CfgMgr::instance().getCurrentCfg()->getCfgIface(); > > > ElementPtr iface_configuation = cfg->toElement(); > > > > > > The iface_configuration will now hold the conifguration > > structure you're > > > looking for. > > > > > > Marcin Siodelski > > > ISC > > > > > > > > > > > > > >
_______________________________________________ Kea-users mailing list [email protected] https://lists.isc.org/mailman/listinfo/kea-users
