[Bro] appending to a vector

David Mandelberg david at mandelberg.org
Wed Jun 19 15:13:11 PDT 2013


On 2013-06-19 18:00, Siwek, Jonathan Luke wrote:
> On Jun 19, 2013, at 11:14 AM, David Mandelberg <david at mandelberg.org> 
> wrote:
>
>> What's the recommended way to append to a vector? The documentation
>> says vectors are like tables, so I tried the below code, but it 
>> gives
>> some errors.
>>
>> const foo: vector of double = vector() &redef;
>>
>> redef foo += {
>>     [|foo|] = 42.0
>> };
>
> Appending to a vector can't currently be done w/ redef, but I don't
> think it would be difficult to implement if you want to add a ticket
> to the tracker.

I got number 1024 :D

http://tracker.bro.org/bro/ticket/1024


>> Maybe there's a better way to do what I want without vectors. I have 
>> a
>> somewhat complex record type and I want to store multiple records of
>> that type in a container of some sort. I want to be able to iterate 
>> over
>> the container, but I don't care about order (vector) or uniqueness
>> (set). When I tried using sets, I got the error below, so I switched 
>> to
>> vectors.
>>
>> internal error: over-ran key in CompositeHash::RecoverVals
>> Aborted
>
>
> Can you give an example script that reproduces that (create a
> bug/ticket for it) ?

If I can reproduce it, I'll file a bug.


>> I thought normal assignment to a const variable was supposed to 
>> fail. Isn't that a bug?
>
>
> I agree that it shouldn't be allowed, but just to explain how it's
> currently working:  the const applies to the variable, not the value
> bound it.  So you can't assign further values to the const variable,
> but its value may still be mutable depending on its type.

Gotcha.

-- 
David Eric Mandelberg / dseomn
http://david.mandelberg.org/



More information about the Bro mailing list