matt massie wrote:
Today, Steven Wagner wrote forth saying...
(ignoring the major aclocal/autoconf/automake-fu)
let me know the details of the autoconf et al changes and i'll be happy to
update it OR are the changes simply because of a unique build environment?
No, this was purely a case of local funkiness. I only brought it up
because it might help to know that issue exists in case someone asks on the
general list. And also because it makes me look like a total chimp.
I'm not sure where this metric should come from, honestly. libdnet
seems like it would know about the MTU on a wide variety of
interfaces, and specifically about the one that gmond is
listening/broadcasting on. Anyone have any ideas on how to expose
that as the MTU metric?
the linux.c find_mtu() function should work for you on solaris as well
since it just make calls to the libdnet library. have you tried that?
Just did. *ding!* And it works (well, 1500 *is* correct, but not an
unusual value for my Netra to be reporting ... ).
that is my bad! sorry. on linux "lo" is the last interface so i just
ass_med (notice there is no U because i'm the only ass here). i'll code
it up now .. it's easy enough.
Hmmm. Still not working when I remove the mcast_if config directive.
Works great when I pop it back in though.
For some reason, it's seeing loopback as multicast_enabled.
Aha, good thing there's a dnet flag for loopback. I just tested this and
it works real good.
Try this (forgive word wrap, if applicable):
--- /tmp/monitor-core/gmond/interface.c Tue Aug 13 11:39:26 2002
+++ /tmp/gmond-rc1/gmond/interface.c Tue Aug 13 12:06:47 2002
@@ -7,8 +7,9 @@
uint32_t mask;
int i;
- /* We only want interfaces that are up and multicast-enabled */
+ /* We only want interfaces that are up and multicast-enabled and NOT
loopback */
if (! (entry->intf_flags & INTF_FLAG_UP) ||
+ (entry->intf_flags & INTF_FLAG_LOOPBACK) ||
! (entry->intf_flags & INTF_FLAG_MULTICAST) )
return (0);
@@ -44,16 +45,14 @@
static int
get_first_multicast_interface_callback(const struct intf_entry *entry,
void *arg)
{
+ print_intf(entry, NULL);
if ( *(struct intf_entry **)arg != NULL )
return 0;
if (! (entry->intf_flags & INTF_FLAG_UP) ||
+ (entry->intf_flags & INTF_FLAG_LOOPBACK) ||
! (entry->intf_flags & INTF_FLAG_MULTICAST) )
return 0;
-
- /* Skip the "lo" loopback interface */
- if (! strcmp(entry->intf_name, "lo") )
- return 0;
*(struct intf_entry**)arg = (struct intf_entry *) malloc (
sizeof(struct intf_entry) );
if (! *(struct intf_entry**)arg )