For linux i would go for netlink notification sockets. I would implement it if you guys are ok with that idea.
Regards, Varun On Wednesday, November 10, 2010 10:49:47 pm Nick Wagner wrote: > I actually needed something like this for a windows project. I did not > submit it back to the group at the time because I didn't have time to create > a general solution for the rest of the platforms, and because I relied on > static linking to iphlpapi which would have been a new build dependency that > was not in all windows platforms at the time. I would love it if slpd > handled network changes on all platforms. > > I've attached my version of slpd_win32.c, just look for NJW comments. If > the attachment doesn't go through, the relevant code is pretty simple: > > I spawn a thread that uses iphlpapi to notify me whenever the network has > changed, at which I set a flag. In the main service loop where G_SIGALRM is > checked, I also check my new flag: > > /* NJW Handle our signal as well*/ > if (G_SIGRECON_DA) > { > //We don't want to lose any locally-registered services, but we want to > rediscover > //everyone. We'll reinit our socket lists, and then change our boot time > SLPDLog("Network changing, re-initializing sockets and re-discovering\n"); > SLPDPropertyInit(G_SlpdCommandLine.cfgfile); //We need to re-init the > network interfaces, also inits the DA timestamp and active/passive discovery > triggers > SLPDIncomingInit(); > SLPDOutgoingInit(); > > //Pretend we've rebooted and need to discover everyone > SLPDatabaseInit(&G_SlpdKnownDAs); > G_SIGRECON_DA = 0; > } > > I also needed to add an extern for G_SlpdKnownDAs to make it compile. > > --Nick > > > > On Wed, Nov 10, 2010 at 6:47 AM, Roel van de Kraats > <r...@advancedcargo.eu>wrote: > > > Dear all, > > > > Currently, slpd only looks for the available network interfaces once at > > start-up. In a situation where for instance dhcp is used, but no IP > > address was obtained yet when slpd starts, a (manual) restart of slpd is > > required to bind to that interface afterwards. Any local registrations > > (from applications using libslp) will be lost in that restart. > > > > Does anyone have the same experience? Do you happen to have any solution? > > > > A solution I can think of, is that slpd is notified with e.g. a signal > > to find the interfaces again, bind to the ones that were not already > > used before, locate DAs again, register services with the new address, etc. > > > > What are your ideas on this? > > > > Thanks in advance for thinking along.. > > > > Best regards, > > Roel > > > > > > ------------------------------------------------------------------------------ > > The Next 800 Companies to Lead America's Growth: New Video Whitepaper > > David G. Thomson, author of the best-selling book "Blueprint to a > > Billion" shares his insights and actions to help propel your > > business during the next growth cycle. Listen Now! > > http://p.sf.net/sfu/SAP-dev2dev > > _______________________________________________ > > Openslp-devel mailing list > > Openslp-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/openslp-devel > > > ------------------------------------------------------------------------------ Centralized Desktop Delivery: Dell and VMware Reference Architecture Simplifying enterprise desktop deployment and management using Dell EqualLogic storage and VMware View: A highly scalable, end-to-end client virtualization framework. Read more! http://p.sf.net/sfu/dell-eql-dev2dev _______________________________________________ Openslp-devel mailing list Openslp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openslp-devel