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 )


Reply via email to