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

Reply via email to