Problem with source labels
Carter Bullard
carter at qosient.com
Fri Dec 6 17:11:03 EST 2013
Hey David,
Thanks for dogging this down !!! I’ll make bug fixes this weekend !!!
Carter
On Dec 6, 2013, at 4:21 PM, David <lists at edeca.net> wrote:
> On 05/12/2013 20:03, Carter Bullard wrote:
>> Hey David,
>> Its not the client code, they will do the right thing if argus identifies the format of the source id correctly.
>> Do you have an /etc/argus.conf file that defines the source id ?
>> If you run argus this way, does it get better ?
>>
>> argus -Xe \”1234\” -w - | ra -s +srcid
>>
>> The X tells argus not to parse the /etc/argus.conf file.
>
> Carter,
>
> This isn't the problem. It appears to be a behaviour (perhaps bug) in
> argus itself, rather than the clients.
>
> This works:
>
> argus -X -e '"1234"' -i eth0 -w - | ra -s srcid
>
> This does not:
>
> argus -X -i eth0 -e '"1234"' -w - | ra -s srcid
>
> ArgusWarning: 06 Dec 13 17:49:15.373979 started
> ArgusWarning: 06 Dec 13 17:49:15.393885 ArgusGetInterfaceStatus:
> interface eth0 is up
> SrcId
> 50.49.66.65
>
> That is if the -i option precedes -e then srcid labels are printed
> incorrectly. Above the srcid of AB12 is printed as 50.49.66.65.
>
> When I first looked I assumed it was being interpreted as an IP address,
> but a closer look shows that these are actually the decimal values of
> the ASCII characters (reversed).
>
> Looking in common/argus_client.c it switches on
> trans->hdr.argus_dsrvl8.qual (line ~1850). This is correctly set to
> 0x21 (ARGUS_TYPE_STRING) in the working example but is 0 when the
> interface argument comes first.
>
> Adding debug messages for ArgusUpdateBasicFlow() in argus/ArgusModeler.c
> shows:
>
> # Working
> 06 Dec 13 21:10:47.177515 ArgusUpdateBasicFlow() device->idtype: 33
>
> # Non-working
> 06 Dec 13 21:11:27.867861 ArgusUpdateBasicFlow() device->idtype: 0
>
> Because this is set to 0 the switch statement in the clients falls
> through to the default and is treated as an integer, see below debug
> output from ra:
>
> ra[31960]: 17:47:29.816258 In case ARGUS_TYPE_IPV4, value 842089025
> ra[31960]: 17:47:29.816274 String would be: AB12
> 50.49.66.65
>
> So when the -i option is provided before -e it appears that the srcid
> type is being incorrectly set to 0, which does not appear to be a valid
> ARGUS_TYPE_* value.
>
> I have tested this on x86 and x64 and dropped gcc to -O2 just to be
> sure. Using argus-3.0.7.5 and argus-clients-3.0.7.18.
>
> Is the above expected behaviour?
>
> David
>
More information about the argus
mailing list