guys- the apache runtime (apr.apache.org) doesn't support multicast although it supports UDP sockets. i've added the multicast support but it raises a few issues.
the latest snapshot is at http://matt-massie.com/ganglia/ganglia-apr-2.6.0.tar.gz i've tested it on linux and solaris. unfortunately, the workstation that i installed freebsd on is temporarily hosed (bad fan) so i wasn't able to test it there. the only file that i added can be found in ./srclib/apr/network_io/unix/mcast.c. if you look at the source you'll see i need to include a header file from the apr source (#include "apr_arch_networkio.h"). i need the structures defined in this header file in order to setup the multicast sockets. unfortunately, this is a private header file which is not installed during an apr installation. my hope is that over time the multicast cast code will be included into the apr code base. until then.. we might have problems with packages who want to use the current apr library ... since it will not have multicast support. if any of you have time and want to test non-linux/solaris systems, i'd appreciate it. to test this snapshot. 1. cd into ./gmond 2. open gmond.c and edit the parameters of the create_mcast_server_socket() call... the first three are mcast_channel, mcast_port, mcast_if. 3. ./configure and make when you run ./gmond/gmond you should get scrolling messages saying that it got a multicast message. i also have another question about the ganglia configuration file. i know that we've used dotconf in the past and it suited our needs but i'm worried about it's limitations. for example, it used an apache-like section syntax but it can only be one-level deep and the API is VERY awkward to work with. <Section> name "First Section" </Section> is allowed but <Section> name "First Section" <Section> name "Second Section" </Section> </Section> is not allowed. i think that could bite us in the arse in the future. does anyone have a favorite configuration file parser? i've found and tested libconfuse (http://www.nongnu.org/confuse/) and found it to work pretty well. the syntax would look more like... Section { name "Section One" Section { name "Section Two" } } which IS allowed. ideas? -matt -- PGP fingerprint 'A7C2 3C2F 8445 AD3C 135E F40B 242A 5984 ACBC 91D3' They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety. --Benjamin Franklin, Historical Review of Pennsylvania, 1759
signature.asc
Description: This is a digitally signed message part