Re: Perl script bug?

Ian Eiloart <[email protected]> Fri, 07 Jul 2006 18:11:23 +0100
Newsgroups gmane.comp.apache.mod-wackamole.general
Message-ID <[email protected]>

--On 7 July 2006 11:37:24 -0400 Theo Schlossnagle <[email protected]> wrote:

> Can you try checking out the CVS version and seeing if that exhibits  the
> same problem?

OK. I had to fix my perl scripts, so they don't expect null terminated 
strings! So, that fix seems good. I didn't try this before, since I'm not 
familiar with CVS and I wasn't too bothered about the null terminated 
strings.

In both the CVS and release versions, I had to fix defines.h. I reversed 
the definition order of

#include <net/bpf.h>
#include <pcap.h>

That fixed the release version, but not the CVS version. I used the fixed 
release version

Now, lets see if it works!

Well, the behaviour is changed. After wackatrl -f, the down script (only) 
is called repeatedly. It's called for the VIF that just went down, twice. 
Then it's called for the other VIF (which was always held by the other 
host), twice. Then there's a four or five second pause and the whole 
sequence is repeated, apparently endlessly.

After wackatrl -s the up script is called twice with a 10 second interval 
between the calls, on the correct interface. I can see that the interface 
is up on both calls (my perl script calls ifconfig to find out if the 
interface really is available, and logs the result. Between the two calls 
to onup, I see ondown continues to be called. After the second call of 
onup, the ondown calls cease.

The passive host seems to behave OK.

The only really worrying thing about this is the repeated calls to stop 
services. I guess it isn't a killer - if the interface is down, who cares 
what happens to its services. And, if I stop wackamole, the behaviour 
obviously isn't bad.

I'll have another look at this on Monday. Thanks for your help, Theo!

> On Jul 7, 2006, at 11:32 AM, Ian Eiloart wrote:
>
>>
>>
>> --On 7 July 2006 14:22:15 +0100 Ian Eiloart <[email protected]> wrote:
>>
>>>
>>> My problem is this. When I test wackamole with wackatrl -f and
>>> wackatrl
>>> -s, the IP addresses come up and down as expected. But, whether I say
>>> "wackatrl -f" or "wackatrl -s", BOTH onup() and ondown() get
>>> executed.
>>> So, my services get started and stopped at the same time.
>>>
>>
>> Oh, I lied. On closer observation - what actually seems to be
>> happening is that all my functions are being run only when an
>> interface comes up. An interface going down doesn't trigger any
>> function execution at all.
>>
>> That seems to accord with my reading of the code. Unfortunately,
>> I'm not sure I know how to fix it.
>>
>>
>> --
>> Ian Eiloart
>> IT Services, University of Sussex
>>
>> _______________________________________________
>> wackamole-users mailing list
>> [email protected]
>> http://lists.backhand.org/mailman/listinfo/wackamole-users
>
> // Theo Schlossnagle
> // CTO -- http://www.omniti.com/~jesus/
> // OmniTI Computer Consulting, Inc. -- http://www.omniti.com/
> // Ecelerity: Run with it.
>
>



-- 
Ian Eiloart
IT Services, University of Sussex