David Humphrey writes:
No, on this one, all of the interfaces have only one address w/no
overloading. Could I ask what bug you are referring to? If it is the
question I am chasing after, I can't seem to localize the code down to
where this problem is arising.
There's a bug in rfc1035_ifconf(), but it should be triggered only by
multiple interfaces with the same IP address.
Index: rfc1035/rfc1035ifconf.c
===================================================================
RCS file: /cvsroot/courier/libs/rfc1035/rfc1035ifconf.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -U3 -r1.1 -r1.2
--- rfc1035/rfc1035ifconf.c 24 Jun 2002 18:52:32 -0000 1.1
+++ rfc1035/rfc1035ifconf.c 5 Oct 2002 05:16:21 -0000 1.2
@@ -13,7 +13,7 @@
#include <unistd.h>
#endif
-static const char rcsid[]="$Id: rfc1035ifconf.c,v 1.1 2002/06/24 18:52:32 mrsam
Exp $";
+static const char rcsid[]="$Id: rfc1035ifconf.c,v 1.2 2002/10/05 05:16:21 mrsam
Exp $";
#if HAVE_SIOCGIFCONF
@@ -74,10 +74,13 @@
rfc1035_ntoa(&(*ifconf)->ifaddr, ipaddr2);
if (strcmp(ipaddr, ipaddr2) == 0)
- continue; /* Already have this IP addr */
+ break;
ifconf= &(*ifconf)->next;
}
+
+ if ( *ifconf )
+ continue; /* Already have this IP addr */
if ( (ifcptr=malloc(sizeof(struct rfc1035_ifconf))) == NULL ||
(ifcptr->ifname=strdup(ifreq_buf[i].ifr_name)) == NULL)