On 11/15/2010 05:16 PM, John Calcote wrote: > Roel, > > Yes, I wrote the DHCP client in openslp a long time ago - really before > I knew enough to do a good job. I've long known about the port conflict > issue you mentioned. The right way to do this is to have openslp use the > DHCP dbus channel to gather DHCP data on linux, and to use the microsoft > DHCP client interface on windows. > > I heartily approve of your change that allows DHCP to be disabled. I > don't have time to put it in for you, but perhaps one of the other > maintainers... ?? John, thanks for your approval and comments. Since I have svn write access myself, actually getting this patch in the repo is not much of an issue.
BR, Roel > My two cents, > John > > On 11/15/2010 01:44 AM, Roel van de Kraats wrote: >> Dear all, >> >> Does anyone have any objections for the patch below? It allows for >> disabling DHCP for scope and/or DA discovery on networks that don't use >> this mechanism. >> >> By the way, while I was working on this, I noticed a few things: >> >> * The DHCP mechanism doesn't work when there's already a dhcp client >> process running (at least on a Linux system). dhcpCreateBCSkt() in >> openslp/common/slp_dhcp.c can't bind to the 'IPPORT_BOOTPC' port in that >> case, without any notifications. >> * The DHCP mechanism should handle all used network interfaces >> separately. Now the request is sent from 'INADDR_ANY', causing only one >> (OS chosen) interface to be used. >> * I wondered why KnownDARefreshCache() in >> openslp/libslp/libslp_knownda.c stops as soon as any of the discover >> mechanisms does actually find anything. The other mechanisms are not >> called then anymore. >> >> BR, >> Roel >> >> >> Index: openslp/libslp/libslp_knownda.c >> =================================================================== >> --- openslp/libslp/libslp_knownda.c (revision 1650) >> +++ openslp/libslp/libslp_knownda.c (working copy) >> @@ -677,7 +677,8 @@ >> /* discover DAs */ >> if(KnownDADiscoverFromIPC(handle) == 0) >> if(KnownDADiscoverFromProperties(scopelistlen, scopelist, >> handle) == 0) >> - if(KnownDADiscoverFromDHCP(handle) == 0) >> + if (! >> SLPPropertyAsBoolean(SLPGetProperty("net.slp.useDHCP")) >> + || KnownDADiscoverFromDHCP(handle) == 0) >> KnownDADiscoverFromMulticast(scopelistlen, scopelist, >> handle); >> return SLP_TRUE; >> } >> @@ -889,7 +890,8 @@ >> /* Discover all DAs. */ >> if (KnownDADiscoverFromIPC(handle) == 0) >> { >> - KnownDADiscoverFromDHCP(handle); >> + if (SLPPropertyAsBoolean(SLPGetProperty("net.slp.useDHCP"))) >> + KnownDADiscoverFromDHCP(handle); >> KnownDADiscoverFromProperties(0,"", handle); >> KnownDADiscoverFromMulticast(0,"", handle); >> } >> @@ -976,7 +978,8 @@ >> /* Discover all DAs. */ >> if (KnownDADiscoverFromIPC(handle) == 0) >> { >> - KnownDADiscoverFromDHCP(handle); >> + if (SLPPropertyAsBoolean(SLPGetProperty("net.slp.useDHCP"))) >> + KnownDADiscoverFromDHCP(handle); >> KnownDADiscoverFromProperties(0,"", handle); >> KnownDADiscoverFromMulticast(0,"", handle); >> } >> Index: openslp/common/slp_property.c >> =================================================================== >> --- openslp/common/slp_property.c (revision 1650) >> +++ openslp/common/slp_property.c (working copy) >> @@ -165,6 +165,7 @@ >> {"net.slp.checkSourceAddr", "true", 0}, >> {"net.slp.broadcastAddr", "255.255.255.255", 0}, >> {"net.slp.port", "427", 0}, >> + {"net.slp.useDHCP", "true", 0}, >> >> /* Additional properties that are specific to IPv6 */ >> {"net.slp.useIPv6", "false", 0}, >> Index: openslp/slpd/slpd_property.c >> =================================================================== >> --- openslp/slpd/slpd_property.c (revision 1650) >> +++ openslp/slpd/slpd_property.c (working copy) >> @@ -139,6 +139,7 @@ >> G_SlpdProperty.DAHeartBeat = SLPD_AGE_INTERVAL; >> >> G_SlpdProperty.port = (uint16_t)SLPPropertyAsInteger("net.slp.port"); >> + G_SlpdProperty.useDHCP = SLPPropertyAsBoolean("net.slp.useDHCP"); >> >> /* set the net.slp.interfaces property */ >> if (SLPNetIsIPV4()&& SLPNetIsIPV6()) >> Index: openslp/slpd/slpd_property.h >> =================================================================== >> --- openslp/slpd/slpd_property.h (revision 1650) >> +++ openslp/slpd/slpd_property.h (working copy) >> @@ -113,6 +113,7 @@ >> int DAHeartBeat; >> int appendLog; >> int MTU; >> + int useDHCP; >> } SLPDProperty; >> >> extern SLPDProperty G_SlpdProperty; >> Index: openslp/slpd/slpd_knownda.c >> =================================================================== >> --- openslp/slpd/slpd_knownda.c (revision 1650) >> +++ openslp/slpd/slpd_knownda.c (working copy) >> @@ -685,7 +685,8 @@ >> /*-----------------------------------------------------------------*/ >> /* Discover DHCP DA's and add them to the active discovery list. */ >> /*-----------------------------------------------------------------*/ >> - SLPDKnownDAFromDHCP(); >> + if (G_SlpdProperty.useDHCP) >> + SLPDKnownDAFromDHCP(); >> >> /*------------------------------------------------------------------*/ >> /* Generate the list of our URLs */ >> Index: openslp/etc/slp.conf >> =================================================================== >> --- openslp/etc/slp.conf (revision 1650) >> +++ openslp/etc/slp.conf (working copy) >> @@ -168,6 +168,10 @@ >> # listening port will break compliance with RFC2608. (Default is 427). >> ;net.slp.port = 427 >> >> +# A boolean indicating whether DHCP should be used for DA discovery and/or >> +# scope discovery. (Default setting is true). >> +;net.slp.useDHCP = true >> + >> >> #---------------------------------------------------------------------------- >> # Security >> >> #---------------------------------------------------------------------------- >> >> >> ------------------------------------------------------------------------------ >> 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 ------------------------------------------------------------------------------ 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