mirror of
https://github.com/zeek/zeek.git
synced 2025-10-16 13:38:19 +00:00
Remove value serialization.
Note - this compiles, but you cannot run Bro anymore - it crashes immediately with a 0-pointer access. The reason behind it is that the required clone functionality does not work anymore.
This commit is contained in:
parent
9b49c7cbc6
commit
474efe9e69
78 changed files with 58 additions and 9185 deletions
|
@ -128,12 +128,8 @@ struct val_converter {
|
|||
}
|
||||
case TYPE_OPAQUE:
|
||||
{
|
||||
SerializationFormat* form = new BinarySerializationFormat();
|
||||
form->StartRead(a.data(), a.size());
|
||||
CloneSerializer ss(form);
|
||||
UnserialInfo uinfo(&ss);
|
||||
uinfo.cache = false;
|
||||
return Val::Unserialize(&uinfo, type->Tag());
|
||||
// Fixme: Johanna
|
||||
return nullptr;
|
||||
}
|
||||
default:
|
||||
return nullptr;
|
||||
|
@ -511,12 +507,8 @@ struct type_checker {
|
|||
case TYPE_OPAQUE:
|
||||
{
|
||||
// TODO
|
||||
SerializationFormat* form = new BinarySerializationFormat();
|
||||
form->StartRead(a.data(), a.size());
|
||||
CloneSerializer ss(form);
|
||||
UnserialInfo uinfo(&ss);
|
||||
uinfo.cache = false;
|
||||
return Val::Unserialize(&uinfo, type->Tag());
|
||||
// Fixme: johanna
|
||||
return false;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
|
@ -978,24 +970,10 @@ broker::expected<broker::data> bro_broker::val_to_data(Val* v)
|
|||
broker::vector rval = {p->PatternText(), p->AnywherePatternText()};
|
||||
return {std::move(rval)};
|
||||
}
|
||||
case TYPE_OPAQUE:
|
||||
{
|
||||
SerializationFormat* form = new BinarySerializationFormat();
|
||||
form->StartWrite();
|
||||
CloneSerializer ss(form);
|
||||
SerialInfo sinfo(&ss);
|
||||
sinfo.cache = false;
|
||||
sinfo.include_locations = false;
|
||||
|
||||
if ( ! v->Serialize(&sinfo) )
|
||||
return broker::ec::invalid_data;
|
||||
|
||||
char* data;
|
||||
uint32 len = form->EndWrite(&data);
|
||||
string rval(data, len);
|
||||
free(data);
|
||||
return {std::move(rval)};
|
||||
}
|
||||
// Fixme: johanna
|
||||
// case TYPE_OPAQUE:
|
||||
// {
|
||||
// }
|
||||
default:
|
||||
reporter->Error("unsupported Broker::Data type: %s",
|
||||
type_name(v->Type()->Tag()));
|
||||
|
@ -1131,42 +1109,6 @@ Val* bro_broker::DataVal::castTo(BroType* t)
|
|||
return data_to_val(data, t);
|
||||
}
|
||||
|
||||
IMPLEMENT_SERIAL(bro_broker::DataVal, SER_COMM_DATA_VAL);
|
||||
|
||||
bool bro_broker::DataVal::DoSerialize(SerialInfo* info) const
|
||||
{
|
||||
DO_SERIALIZE(SER_COMM_DATA_VAL, OpaqueVal);
|
||||
|
||||
std::string buffer;
|
||||
caf::containerbuf<std::string> sb{buffer};
|
||||
caf::stream_serializer<caf::containerbuf<std::string>&> serializer{sb};
|
||||
serializer << data;
|
||||
|
||||
if ( ! SERIALIZE_STR(buffer.data(), buffer.size()) )
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool bro_broker::DataVal::DoUnserialize(UnserialInfo* info)
|
||||
{
|
||||
DO_UNSERIALIZE(OpaqueVal);
|
||||
|
||||
const char* serial;
|
||||
int len;
|
||||
|
||||
if ( ! UNSERIALIZE_STR(&serial, &len) )
|
||||
return false;
|
||||
|
||||
caf::arraybuf<char> sb{const_cast<char*>(serial), // will not write
|
||||
static_cast<size_t>(len)};
|
||||
caf::stream_deserializer<caf::arraybuf<char>&> deserializer{sb};
|
||||
deserializer >> data;
|
||||
|
||||
delete [] serial;
|
||||
return true;
|
||||
}
|
||||
|
||||
broker::data bro_broker::threading_field_to_data(const threading::Field* f)
|
||||
{
|
||||
auto name = f->name;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue