[Bro] appending to a vector

Seth Hall seth at icir.org
Wed Jun 19 09:42:26 PDT 2013

On Jun 19, 2013, at 12:14 PM, David Mandelberg <david at mandelberg.org> wrote:

> What's the recommended way to append to a vector?

Many (most?) of us strongly dislike vectors in Bro.  It's likely something that will be improved in the next couple of releases if I had to make a guess. :)

> 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
> };

Hm, I don't know about this if you add more than a single element at a time because the length wouldn't be right.

If you are using our git master you can use a new construct that was recently added for creating types containers.

type DoubleVector: vector of double;
const foo = DoubleVector([0] = 42.0, [1] = 43.0, [2] = 44.0);

Generally though you're going to run into weird poorly defined edge cases like this with vectors, when they were added to Bro it was in a sort of ad-hoc fashion and not fully thought out except for the use case in which they were originally used. (the code I gave above may not even work, I haven't tested it!)


Seth Hall
International Computer Science Institute
(Bro) because everyone has a network

More information about the Bro mailing list