
ezran at goshen
Jun 9, 2003, 11:58 AM
Post #2 of 5
(740 views)
Permalink
|
Strange... The interface handling works as expected when I tried ife. So, it's looking like the problem is, as I thought earlier, in Release( entry *VE ) function. My C programing skill is really rustic, so, ehm.., I might need some help debuging it. Let's see: static void Release( entry *VE ) { int ic, n=0; struct interface idown, *nif; for(nif=&VE->pseudo_if; n<MAX_DEP_IF; nif = &(VE->extra_ifs[n++])) { if(nif->ipaddr.s_addr == 0) break; /* The releasing of the interfaces happen in a loop. Is it intentionally written to drop all interfaces? It's looking like it's going through all interfaces and dropping them one by one util it gets to the last interface or until it gets to the interface with ip_addr = 0. Why doesn't it drop just one? */ memcpy(&idown, nif, sizeof(struct interface)); idown.ipaddr.s_addr = htonl(idown.ipaddr.s_addr); idown.netmask.s_addr = htonl(idown.netmask.s_addr); idown.bcast.s_addr = htonl(idown.bcast.s_addr); ic = if_down(&idown); if(ic) { const char *em = if_error(); if(em && strlen(em)) { Alarm(PRINT, "%s", if_error()); } } else { char buffer[16]; snprintf(buffer, 16, inet_ntoa(idown.ipaddr)); Alarm(PRINT, "DOWN: %s:%s/%s", idown.ifname,buffer,inet_ntoa(idown.netmask)); } } My.num_allocated--; } On Fri, 2003-06-06 at 23:03, Theo Schlossnagle wrote: > > On Friday, Jun 6, 2003, at 16:08 US/Eastern, Ezra Nugroho wrote: > > At that time wackamole at first declares that > > "INTERFACE ETH0:1 64.255.110.80 DOWN" > > > > All the above makes sense, wackamole has balanced the VIP assignments > > accross two servers. However, apparently when wackamole brought eth0:1 > > on first, it accidentally took eth0:2 down without telling spread. > > Wackamole things that all VIP are acquired, but they are not! > > > > Could it be a bug in the Release( entry *VE ) function, particularly > > for > > RHN 7.3? > > I've seen that problem on Linux before. It has to do with Linux's > screwy interface system. > snipped...
|