Re: [Openslp-devel] Patches for openslp
Brought to you by:
jcalcote
From: Ian N. <in...@gm...> - 2014-03-26 16:37:59
|
Hi John. I don't think any of us here do. The person you might be remembering is Matt Pendlebury. On 26 Mar 2014 15:04, "John Calcote" <joh...@gm...> wrote: > Hi Richard, > > Thanks so much for all the work you've done. Don't take this wrong, but > don't you have an employee there at Thales that has commit rights to our > repo? Matthew Hird, I believe. Or has he left the company? Just curious. > > Thanks, > John Calcote > > > -----Original Message----- > > From: Richard Porter [mailto:Ric...@th...] > > Sent: Tuesday, March 25, 2014 8:18 AM > > To: ope...@li... > > Cc: joh...@gm... > > Subject: Patches for openslp > > > > Hi > > > > Here are some more patches we've developed for openslp v2.0. Most are > > bug fixes; but the largest implements network interface change monitoring > > on Linux, using netlink. > > > > These build on top of the patches I sent to the list in December 2012 > (though > > I'm not sure those ever made it through mailman, so I'm attaching the > email > > again here.) They probably need to be applied in order too - or at least > with > > the netlink one last. > > > > > > The files and associated change details are: > > > > 01-regfile-memory-corruption: > > > > If you're going to increment the buffer pointer, be sure to not then > memcpy > > off the end of the buffer... > > > > > > 02-invalid-adverts-segfault: > > > > When registering a database entry, if the attribute parsing fails then > > fail the registration. This prevents a NULL pointer being assigned as > > the attribute list, which will be dereferenced subsequently on database > > lookups later. > > > > > > 03-da-adverts-iface-down: > > > > Don't send DA advertisements for addresses of interfaces that aren't > active. > > > > Only add active interfaces to the list. > > > > Only add active interfaces to the default list too > > > > The interface active check needs the address family to be set, so make > > sure it's set before calling. > > > > When comparing IPv6 addresses, also compare the scope ID. > > > > > > 05-try-all-das: > > > > When finding servers, make SLPFindSrvs() try again if there are more DAs > > available to query. > > > > Add the same retry loop to findattrs as was added to findsrvs. > > > > KnownDABadDA() is expecting a sockaddr* not an in_addr* > > > > > > 06-sin6_scope_id: > > > > Manage sin6_scope_id when dealing with link-local IPv6 addresses. This > > is especially important for listening on multicast addresses. > > > > Don't destroy the IPv6 multicast sockets until the last instance of a > > particular service type has been removed from the database. > > > > Avoid a memory leak when reinitialising network interfaces. > > > > Add const qualifier to SLPIfaceGetIndex() to satisfy windows compiler > > > > Move the definition of SLPDDatabaseSrvtypeUsed to before it's now used. > > Shuts up the windows compiler. > > > > > > 07-getaddrinfo-segfault: > > > > Check the return value of getaddrinfo() before dereferencing the pointer > > it allocates when successful. > > > > > > 08-netlink: > > > > Integrate libnl interface and address caches into the slpd IO loop. > > > > Manage the sin6_scope_id when binding IPv6 sockets > > > > When the netlink cache is updated, call HandleSigHup to get slpd to > > rejig its interfaces > > > > Move the netlink cache management to the common/slp_iface.c file. > > > > Need to initialise the netlink cache before calling SLPDPropertyInit() > > > > Use the netlink cache for all network configuration lookup > > > > Add a set of callbacks between slpd_main and slp_iface to signal when > > interfaces or addresses change. Reset the interface list when signalled > > by the callbacks. > > > > The database entries will time out as normal, so some 'stale' > > registration entries might hang around for a few seconds. Similarly, > > entries for new addresses will be added at the next registration update. > > > > slptool needs to initialise the netlink caches. > > > > Require libnl-3.2.19 > > > > Make sure G_SlpdProperty.interfaces is correctly set in > > SLPDPropertyReinit() even if there are no known interfaces > > > > Fix a memory leak in SLPDIncomingReinit() when getting interface > > information > > > > Add some extra logging when scanning interfaces > > > > If we're using netlink, there's a small window between receiving a new > > IPv4 address notification and being able to actually bind to that > > address. bind(2) will fail with EADDRNOTAVAIL if the kernel's > > Forwarding Information Base hasn't been updated to know that the address > > is local. IP_FREEBIND allows us to bind anyway. This is safe here, as > > we are careful to only use addresses that we know are local. > > > > > > 09-attribute-value-div-10: > > > > The fancy method that figures out how many digits are needed to > > represent an integer failed when the integer was divisible exactly by 10. > > > > > > (04 was going to be a fix for slptool, but that has already been fixed > > by change 1767.) > > > > > > - Richard > > > > ------------------------------------------------------------------------------ > Learn Graph Databases - Download FREE O'Reilly Book > "Graph Databases" is the definitive new guide to graph databases and their > applications. Written by three acclaimed leaders in the field, > this first edition is now available. Download your free book today! > http://p.sf.net/sfu/13534_NeoTech > _______________________________________________ > Openslp-devel mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/openslp-devel > |