Logging fixes.

- Now compiles in v6 mode.

- Loading logging.bif.*bro* in logging.bro for consistency.
This commit is contained in:
Robin Sommer 2011-04-21 18:50:11 -07:00
parent f945bd5b7f
commit 5fba6d144e
3 changed files with 20 additions and 13 deletions

View file

@ -138,7 +138,7 @@ export {
# We keep a script-level copy of all filters so that we can manipulate them.
global filters: table[ID, string] of Filter;
@load logging.bif # Needs Filter and Stream defined.
@load logging.bif.bro # Needs Filter and Stream defined.
module Log;

View file

@ -212,13 +212,11 @@ bool LogVal::Read(SerializationFormat* fmt)
fmt->Read(&addr[3], "addr3")) )
return false;
#ifdef BROv6
val.addr_val[0] = addr[0];
#ifdef BROv6
val.addr_val[1] = addr[1];
val.addr_val[2] = addr[2];
val.addr_val[3] = addr[3];
#else
val.addr_val = addr[0];
#endif
return true;
}
@ -300,10 +298,13 @@ bool LogVal::Write(SerializationFormat* fmt) const
case TYPE_SUBNET:
{
#ifdef BROv6
uint32* net = val.subnet_val;
#else
uint32 net[4];
#ifdef BROv6
net[0] = val.subnet_val.net[0];
net[1] = val.subnet_val.net[1];
net[2] = val.subnet_val.net[2];
net[3] = val.subnet_val.net[3];
#else
net[0] = val.subnet_val.net;
net[1] = net[2] = net[3] = 0;
#endif
@ -317,11 +318,13 @@ bool LogVal::Write(SerializationFormat* fmt) const
case TYPE_NET:
case TYPE_ADDR:
{
#ifdef BROv6
uint32* addr = val.addr_val;
#else
uint32 addr[4];
addr[0] = val.addr_val;
addr[0] = val.addr_val[0];
#ifdef BROv6
addr[1] = val.addr_val[1];
addr[2] = val.addr_val[2];
addr[3] = val.addr_val[3];
#else
addr[1] = addr[2] = addr[3] = 0;
#endif
return fmt->Write(addr[0], "addr0") &&
@ -997,7 +1000,11 @@ LogVal* LogMgr::ValToLogVal(Val* val, BroType* ty)
case TYPE_ADDR:
{
addr_type t = val->AsAddr();
copy_addr(&t, &lval->val.addr_val);
#ifdef BROv6
copy_addr(t, lval->val.addr_val);
#else
copy_addr(&t, lval->val.addr_val);
#endif
break;
}

View file

@ -38,7 +38,7 @@ struct LogVal {
union _val {
bro_int_t int_val;
bro_uint_t uint_val;
addr_type addr_val;
uint32 addr_val[NUM_ADDR_WORDS];
subnet_type subnet_val;
double double_val;
string* string_val;