[Bro] Type conversion and table initialization

Mike Dopheide dopheide at ncsa.uiuc.edu
Tue Feb 27 15:25:08 PST 2007


It's been a couple weeks since I had a problem, so now I've got two.  :)

1)  hex-string to addr type conversion

I've got a udp packet that contains an IP address in the packet
contents[*].  I can easily grab it with sub_bytes() and end up with a
string like "\x8d\x8e\xde!" [**].  I'd like to convert that to an addr 
so I can do comparisons easily.  After looking though the *.bif.bro 
files for conversion functions I'm stuck.  There's to_addr(), but the 
string would need to actually be the IP address and not a hex 
representation.


2) table of set initialization (curiosity)

I have something like this that works:
global myset: set[addr] = {192.168.1.1};
global mytable: table[string] of set[addr] = {
	["blaa"] = myset,
};

When I try to combine that into one it breaks:
global mytable: table[string] of set[addr] = {
	["blaa"] = 192.168.1.1,
};

bad tag in Val::CONVERTER (addr/table)

I read somewhere that 'bad tag' is an internal error and I should never 
see it.  I saw it.  :)

-Mike

[*] -- It's a klog request for afs-kaserver3 through kaforwarder and
fakeka.  So the originating requester's IP is stored in the epoch time
field of the RX packet.  Whee!

[**] -- 141.142.222.33



More information about the Bro mailing list