Re: bug in Release( entry *VE ) RH 7.3
Ezra Nugroho <[email protected]> 11 Jun 2003 15:35:32 -0500
| Newsgroups | gmane.comp.apache.mod-wackamole.general |
|---|---|
| Message-ID | <[email protected]> |
Theo and others,
Here is what I concluded after hours of playing arround with the code.
As you said earlier, the ioctl call seems to be somewhat screwy.
However it works perfectly from ife.
I noticed that interface that was passed to if_down from ife is much
simpler, it only has the ip address.
I have changed the interface passed by wackamole to if_down to be as
simple as the one in ife, but it didn't fix it.
ioctl seems to require only the interface name to pass flags to in:
(ife-sockpacket.c)
strcpy(ifr.ifr_name, ifs[i].ifname);
ifr.ifr_flags &= ~(IFF_RUNNING | IFF_UP);
ioctl(_if_sock, SIOCSIFFLAGS, (char *)&ifr)
There must be something with the calls above in wackamole that breaks
it. Maybe it's a bug in ioctl if it is called by a daemon. Maybe
something else...
I might try implementing wackamole on a different linux with different
glibc to see if that solves it.
Has anyone ever gotten wackamole to work with more than 1 VIP in linux?
Please tell me what distro, what kernel and what glibc.
I would appreciate it much.
I saw another implementation of if_down in ife-bpf.c file.
The ioctl call is different:
ioctl(_if_sock, SIOCDIFADDR, &toup)
Is it not working? What was it (originally) for?
Now, the simple (,somewhat stuppid) solution to this problem could be
simply acquiring ips that was accidentally lost.
So wackamole on the server to get up first would work like this:
Acquire all ips
if other boxes to come up
release ips that are requested by other box
(accidentally give up too many)
compare actual interfaces with what the box should have retain.
acquire those lost ips.
Is that acceptable?
I don't like it too much because some IPs are still lost for some time.
However that's better than nothing.
Thanks,