diff --git a/policy/logging.bro b/policy/logging.bro index ed126f9950..3a08999a0b 100644 --- a/policy/logging.bro +++ b/policy/logging.bro @@ -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; diff --git a/src/LogMgr.cc b/src/LogMgr.cc index 62e74668a9..757db2183e 100644 --- a/src/LogMgr.cc +++ b/src/LogMgr.cc @@ -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; } diff --git a/src/LogMgr.h b/src/LogMgr.h index ca5e2b5c49..ce4de1ab5d 100644 --- a/src/LogMgr.h +++ b/src/LogMgr.h @@ -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;